55 lines
1.5 KiB
Plaintext
55 lines
1.5 KiB
Plaintext
(info: arc2: specify arc center, offset, angle)
|
|
|
|
; dir: 2 for cw, 3 for ccw
|
|
; inside: 1 for inside, else outside
|
|
|
|
; Specify:
|
|
; (xoff,yoff) == arc center
|
|
; (xctr,yctr) == center of rotation
|
|
; angle == anglular spread of arc
|
|
; width == width of arc
|
|
|
|
; calls arc1.ngc
|
|
|
|
o<arc2> sub
|
|
|
|
#<toolno> = #1 (=1)
|
|
#<dir> = #2 (=2 2:cw 3:ccw)
|
|
#<inside> = #3 (=1 1:inside 0:outside)
|
|
#<rpm> = #4 (=2000)
|
|
#<feedrate> = #5 (=100)
|
|
#<zincr> = #6
|
|
#<cutdepth> = #7
|
|
#<zsafe> = #8 (=0.25)
|
|
#<zstart> = #9 (=0)
|
|
#<width> = #10 (=.25)
|
|
#<angle> = #11 (=15)
|
|
#<xoff> = #12 (=2)
|
|
#<yoff> = #13 (=1)
|
|
#<xctr> = #14 (=0)
|
|
#<yctr> = #15 (=0)
|
|
#<scale> = #16 (=1)
|
|
#<spin_notify> = #17 (=0)
|
|
#<use_g43> = #18 (=1)
|
|
#<h_for_g43> = #19 (=0)
|
|
#<verbose> = #20 (=0)
|
|
|
|
#<min_separation> = .1
|
|
|
|
#<delx> = [#<xoff> - #<xctr>]
|
|
#<dely> = [#<yoff> - #<yctr>]
|
|
#<arc_r> = [SQRT[#<dely>*#<dely> + #<delx>*#<delx>]]
|
|
#<rotate> = [-90 + ATAN[#<dely>]/[#<delx>]]
|
|
|
|
o<if0> if [#<arc_r> LT #<min_separation>]
|
|
(print, arc2: separation too small: #<arc_r> - EXITING)
|
|
(debug, arc2: separation too small: #<arc_r> - EXITING)
|
|
(AXIS,notify, arc2: separation too small - EXITING)
|
|
m2
|
|
o<if0> endif
|
|
|
|
|
|
o<arc1>call[#<toolno>][#<dir>][#<inside>][#<rpm>][#<feedrate>][#<zincr>][#<cutdepth>][#<zsafe>][#<zstart>][#<width>][#<angle>][#<arc_r>][#<rotate>][#<xoff>][#<yoff>][#<scale>][#<spin_notify>][#<use_g43>][#<h_for_g43>][#<verbose>]
|
|
|
|
o<arc2> endsub
|