aboutsummaryrefslogtreecommitdiffstats
path: root/nc_files/probe/basic_probe/macros/probe_front_right_inside.ngc
blob: 27eee2883061ea90f36474e0c7c49241302d0e20 (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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
(author: Chris P)
(version: 0.1)
(date: 04/23/19)

(Probe front right inside corner for x,y,z 0,0,0 position)
(Start probe position is over front right inside corner of stock)
(inside the step off width square and within max z distance)
(ensure all settings have been set properly according to help diagrams)

o<probe_front_right_inside> 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_x> = #[5201 + [20 * #5220]]
  #<workspace_y> = #[5202 + [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_front_right_inside_corner> return
  o<110> endif

  (Probe Diameter)
  #<probe_diameter> = #5410

  (Probing depth from the z probed clearance height, used for z moves)
  #<z_probe_stack> = [#<z_clearance> + #<probe_diameter> + #<extra_probe_depth>]

  (Call sub "probe_z_minus_sub" to Probe top of Workpiece)
  o<probe_z_minus_sub> call [#1][#2][#5][#8][#9][#15]

  (Probe X Positioning Move, Step Off Width X and Y)
  G91
  G0 X-[#<step_off_width>] Y[#<step_off_width>]

  (Probe X Positioning Move, to Probing Depth)
  F[#<probe_fast_fr>]
  G1 Z-[#<z_probe_stack>]

  G90
  (Current X Position including offsets in current program units)
  #<x_start> = #5420

  (Call sub "probe_x_plus" to Probe x+ side of Workpiece)
  o<probe_x_plus> call [#1][#3][#4][#8][#9][#10]

  #<x_plus_zero_edge> = #<_value>

 (value returned safety check, aborts if no value returned)
  o<120> if [#<probe_mode> EQ 1 AND #<_value_returned> NE 1]
    (MSG, Missing X Sub returned edge parameter, aborting)
    o<probe_front_right_inside_corner> return
  o<120> endif

  (move to X start Position)
  G90
  G0 X[#<x_start>]

  (Current Y Position including offsets in current program units)
  #<y_start> = #5421

  (Call sub "probe_y_minus" to Probe y- side of Workpiece)
  o<probe_y_minus> call [#1][#3][#4][#8][#9][#10]

  #<y_minus_zero_edge> = #<_value>

  (value returned safety check, aborts if no value returned)
  o<130> if [#<probe_mode> EQ 1 AND #<_value_returned> NE 1]
    (MSG, Missing Y Sub returned edge parameter, aborting)
    o<probe_front_right_inside_corner> return
  o<130> endif

  (move to Y start Position)
  G90
  G0 Y[#<y_start>]

  (Probe Completion Move to Z Clearance Plane, and X Zero, Y Zero)
  G91
  G0 Z[#<z_probe_stack>]
  G90
  G0 X[#<x_plus_zero_edge>] Y[#<y_minus_zero_edge>]

  (probe mode rules for WCO or probe position measuring only)
  o<140> if [#<probe_mode> EQ 0]
    (Record Zero in selected axes and WCO)
    G10 L2 P#5220 X[#<x_plus_zero_edge> + #<workspace_x>]
    G10 L2 P#5220 Y[#<y_minus_zero_edge> + #<workspace_y>]
    o<probe_front_right_inside_corner> return
  o<140> endif

o<probe_front_right_inside> endsub

M2 (end program)

bues.ch cgit interface