big overhaul
This commit is contained in:
73
nc_files/subs/slot.ngc
Normal file
73
nc_files/subs/slot.ngc
Normal file
@@ -0,0 +1,73 @@
|
||||
; slot - slot/obround cut between two points (x1,y1) and (x2,y2).
|
||||
; Requires globals: #<_z_top>, #<_z_bot>
|
||||
; Requires tool loaded (uses #5410 for diameter)
|
||||
; Optional global: #<_z_clearance>
|
||||
o<slot> sub
|
||||
; o<slot> call [mode] [x1][y1] [x2][y2] [width] [fincut]
|
||||
; #1=mode #2=x1 #3=y1 #4=x2 #5=y2 #6=width #7=fincut
|
||||
|
||||
#<M_CONVENTIONAL> = [FIX[#1/1] MOD 2 EQ 1]
|
||||
#<M_CLIMB> = [FIX[#1/1] MOD 2 EQ 0]
|
||||
|
||||
G90
|
||||
G90.1
|
||||
M101
|
||||
G17
|
||||
|
||||
#<td> = #5410
|
||||
#<tr> = [#<td>/2]
|
||||
o1 if [EXISTS[#<_z_clearance>]]
|
||||
#<z_clearance> = #<_z_clearance>
|
||||
o1 else
|
||||
#<z_clearance> = #<_z_top>
|
||||
o1 endif
|
||||
|
||||
#<a> = [ATAN[#5-#3]/[#4-#2]]
|
||||
|
||||
G0 Z#<z_clearance>
|
||||
G0 X#2 Y#3
|
||||
G0 Z#<_z_top>
|
||||
G1 Z#<_z_bot>
|
||||
G1 X#4 Y#5
|
||||
|
||||
#<r> = [[#6-#5410]/2]
|
||||
|
||||
o100 if [#<M_CLIMB>]
|
||||
o101 if [#7 GT 0]
|
||||
G1 X[#4 +[SIN[#<a>]*[#<r>-#7]]] Y[#5 -[COS[#<a>]*[#<r>-#7]]]
|
||||
G3 X[#4 -[SIN[#<a>]*[#<r>-#7]]] Y[#5 +[COS[#<a>]*[#<r>-#7]]] I#4 J#5
|
||||
G1 X[#2 -[SIN[#<a>]*[#<r>-#7]]] Y[#3 +[COS[#<a>]*[#<r>-#7]]]
|
||||
G3 X[#2 +[SIN[#<a>]*[#<r>-#7]]] Y[#3 -[COS[#<a>]*[#<r>-#7]]] I#2 J#3
|
||||
G1 X[#4 +[SIN[#<a>]*[#<r>-#7]]] Y[#5 -[COS[#<a>]*[#<r>-#7]]]
|
||||
o101 endif
|
||||
|
||||
G1 X[#4 +[SIN[#<a>]*[#<r>]]] Y[#5 -[COS[#<a>]*[#<r>]]]
|
||||
G3 X[#4 -[SIN[#<a>]*[#<r>]]] Y[#5 +[COS[#<a>]*[#<r>]]] I#4 J#5
|
||||
G1 X[#2 -[SIN[#<a>]*[#<r>]]] Y[#3 +[COS[#<a>]*[#<r>]]]
|
||||
G3 X[#2 +[SIN[#<a>]*[#<r>]]] Y[#3 -[COS[#<a>]*[#<r>]]] I#2 J#3
|
||||
G1 X[#4 +[SIN[#<a>]*[#<r>]]] Y[#5 -[COS[#<a>]*[#<r>]]]
|
||||
|
||||
G0 X#4 Y#5
|
||||
G0 Z#<_z_top>
|
||||
o100 else
|
||||
o102 if [#7 GT 0]
|
||||
G1 X[#4 -[SIN[#<a>]*[#<r>-#7]]] Y[#5 +[COS[#<a>]*[#<r>-#7]]]
|
||||
G2 X[#4 +[SIN[#<a>]*[#<r>-#7]]] Y[#5 -[COS[#<a>]*[#<r>-#7]]] I#4 J#5
|
||||
G1 X[#2 +[SIN[#<a>]*[#<r>-#7]]] Y[#3 -[COS[#<a>]*[#<r>-#7]]]
|
||||
G2 X[#2 -[SIN[#<a>]*[#<r>-#7]]] Y[#3 +[COS[#<a>]*[#<r>-#7]]] I#2 J#3
|
||||
G1 X[#4 -[SIN[#<a>]*[#<r>-#7]]] Y[#5 +[COS[#<a>]*[#<r>-#7]]]
|
||||
o102 endif
|
||||
|
||||
G1 X[#4 -[SIN[#<a>]*[#<r>]]] Y[#5 +[COS[#<a>]*[#<r>]]]
|
||||
G2 X[#4 +[SIN[#<a>]*[#<r>]]] Y[#5 -[COS[#<a>]*[#<r>]]] I#4 J#5
|
||||
G1 X[#2 +[SIN[#<a>]*[#<r>]]] Y[#3 -[COS[#<a>]*[#<r>]]]
|
||||
G2 X[#2 -[SIN[#<a>]*[#<r>]]] Y[#3 +[COS[#<a>]*[#<r>]]] I#2 J#3
|
||||
G1 X[#4 -[SIN[#<a>]*[#<r>]]] Y[#5 +[COS[#<a>]*[#<r>]]]
|
||||
o100 endif
|
||||
|
||||
G0 X#4 Y#5
|
||||
G0 Z#<z_clearance>
|
||||
|
||||
o<slot> endsub
|
||||
|
||||
M2
|
||||
Reference in New Issue
Block a user