88 lines
1.7 KiB
Plaintext
Executable File
88 lines
1.7 KiB
Plaintext
Executable File
o<pocket_rect_lin> sub
|
|
; o<frame_rect> call [x1][y1] [x2][y2] [ztop][zbot] [mode] [radius]
|
|
|
|
#<M_CONVENTIONAL> = [FIX[#7/1] MOD 2 EQ 1]
|
|
#<M_BOTHWAYS> = [FIX[#7/2] MOD 2 EQ 1]
|
|
#<M_PLUNGE> = [FIX[#7/4] MOD 2 EQ 1]
|
|
#<M_OUTSIDE> = [FIX[#7/8] MOD 2 EQ 1]
|
|
#<M_CLIMB> = [FIX[#7/1] MOD 2 EQ 0]
|
|
#<M_ONEWAY> = [FIX[#7/2] MOD 2 EQ 0]
|
|
#<M_HELIX> = [FIX[#7/4] MOD 2 EQ 0]
|
|
#<M_INSIDE> = [FIX[#7/8] MOD 2 EQ 0]
|
|
|
|
G90 ; absolute x,y,z
|
|
G90.1 ; absolute i,j,k
|
|
M101 ; enable Z-axis (M102 disables)
|
|
G17 ; select XY plane for arcs
|
|
|
|
#<td> = #<_td>
|
|
#<tr> = [#<td>/2]
|
|
o1 if [EXISTS[#<_z_clearance>]]
|
|
#<z_clearance> = #<_z_clearance>
|
|
o1 else
|
|
#<z_clearance> = #5
|
|
o1 endif
|
|
o2 if [EXISTS[#<_rampang>]]
|
|
#<rampang> = #<_rampang>
|
|
o2 else
|
|
#<rampang> = 5 ; degrees
|
|
o2 endif
|
|
o3 if [EXISTS[#<_stepover>]]
|
|
#<stepover> = #<_stepover>
|
|
o3 else
|
|
#<stepover> = [#<td>*0.4]
|
|
o3 endif
|
|
|
|
#<z_down> = #6
|
|
#<z_lift> = [#6+#<td>*0.1]
|
|
|
|
#<minx> = #1
|
|
#<maxx> = #3
|
|
o11 if [#3 LT #1]
|
|
#<minx> = #3
|
|
#<maxx> = #1
|
|
o11 endif
|
|
|
|
#<miny> = #2
|
|
#<maxy> = #4
|
|
o12 if [#4 LT #2]
|
|
#<miny> = #4
|
|
#<maxy> = #2
|
|
o12 endif
|
|
|
|
#<xA> = [#<minx> + #<td>]
|
|
#<xB> = [#<maxx> - #<td>]
|
|
#<yA> = [#<miny> + #<td>]
|
|
#<yB> = [#<maxy> - #<td>]
|
|
|
|
|
|
|
|
G0 Z#<z_clearance>
|
|
G0 X[#<xA>] Y[#<yA>]
|
|
G0 Z[#5]
|
|
G1 Z[#6]
|
|
|
|
;#<y> = #<yA>
|
|
#<i> = 0
|
|
#<yT> = [#<yB>-#<yA>]
|
|
#<imax> = FUP[#<yT>/#<stepover>]
|
|
|
|
o100 while [#<i> LE #<imax>]
|
|
G1 Y[#<yA>+#<yT>/#<imax>*#<i>]
|
|
o101 if [#<i> MOD 2 EQ 0]
|
|
G1 X[#<xB>]
|
|
o101 else
|
|
G1 X[#<xA>]
|
|
o101 endif
|
|
|
|
#<i> = [#<i>+1]
|
|
o100 endwhile
|
|
|
|
o<frame_rect> call [#1][#2] [#3][#4] [#5][#6] [#7] [#8]
|
|
|
|
G0 Z#<z_clearance>
|
|
|
|
|
|
o<pocket_rect> endsub
|
|
|
|
M2 |