aboutsummaryrefslogtreecommitdiffstats
path: root/nc_files/probe/basic_probe/macros/probe_z_minus_wco.ngc
blob: 71e45a49b4cf0a266f4aefdcc755ba551e6be986 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
(author: Chris P)
(version: 0.1)
(date: 04/25/19)

(Probe Z Minus direction and set Z 0 in current WCO)
(Start probe position is over stock within max z distance)
(ensure all settings have been set properly according to help diagrams)

o<probe_z_minus_wco> sub

  (uses NGCGUI style arg spec)
  (number after "=" in comment is default value)
  #<probe_tool_number> = #1    (=99)
  #<max_z_distance> = #2       (=0.5000)
  #<max_xy_distance> = #3      (=0.5000)
  #<xy_clearance> = #4         (=0.1000)
  #<z_clearance> = #5          (=0.1000)
  #<step_off_width> = #6       (=0.5000)
  #<extra_probe_depth> = #7    (=0.0000)
  #<probe_slow_fr> = #8        (=0.0)
  #<probe_fast_fr> = #9        (=10.0)
  #<calibration_offset> = #10  (=0.0000)
  #<x_hint> = #11              (=1.0000)
  #<y_hint> = #12              (=1.0000)
  #<diameter_hint> = #13       (=1.0000)
  #<edge_width> = #14          (=0.5000)
  #<probe_mode> = #15          (=0)

  (Cancel G92 offsets)
  G92.1

  #<workspace_z> = #[5203 + [20 * #5220]]

  (Probe Tool Safety Check)
  o<110> if [#5400 NE #<probe_tool_number>]
  (MSG, Specified probe tool #<probe_tool_number> not in spindle, aborting)
   o<probe_z_minus_wco> return
  o<110> endif

  (Current Z Position including offsets in current program units)
  #<z> = #5422

  (Initial Fast Z- Probe)
  G91
  F[#<probe_fast_fr>]
  G38.2 Z-[#<max_z_distance>]
  #<z_minus_probed> = #5063

  (Probe Error check, #5070 will be 0 if failed)
  o<120> if [#5070 EQ 0]
    (back to start point and feed)
    G90
    G0 Z#<z>
    F[#<probe_fast_fr>]
    (return from sub)
    o<probe_z_minus_wco> return
  o<120> endif

  (Move to z_clearance height for slow probe)
  G90
  G0 Z[#<z_minus_probed> + #<z_clearance>]

  (Slow Probe Rule, if Slow Probe FR is set to 0, Slow Probe is Bypassed)
  o<130> if [#<probe_slow_fr> GT 0]
    (Initiate Slow Z- Probe)
    G91
    F[#<probe_slow_fr>]
    G38.2 Z-[#<z_clearance> * 2]
    #<z_minus_probed> = #5063
;    (debug, Probed Pos: #5063 Z Pos: #<_z>)
    G90
    G0 Z[#<z_minus_probed> + #<z_clearance>]
  o<130> endif

  (defines the edge as z_probed_position for DRO reporting)
  #<z_minus_probed_position> = #<z_minus_probed>

  (analog aio output to gui DRO "Z PROBED POSITION")
  M68 E7 Q[#<z_minus_probed_position>]

  #<z_finish_height> = [#<z_minus_probed> + #<z_clearance>]

  (probe mode rule for WCO or probe position measuring only)
  o<140> if [#<probe_mode> EQ 0]
    (Record Z zero in selected WCO)
    G10 L2 P#5220 Z[#<z_minus_probed> + #<workspace_z>]
    o<probe_z_minus_wco> return
  o<140> endif

o<probe_z_minus_wco> endsub

M2 (end program)

bues.ch cgit interface