Skip to content
boring.ngc 2.09 KiB
Newer Older
electrolab's avatar
electrolab committed
;boring
O<boring> sub

#<ccomp> = #<_ccomp>
#<metric> = #<_metric>
#<absolute> = #<_absolute>
#<feed> = #<_feed>
#<coord_system> = #<_coord_system>
#<lathe_diameter_mode> = #<_lathe_diameter_mode>
#<ijk_absolute_mode> = #<_ijk_absolute_mode>

G8    ; Lathe radius Mode
G90   ; Absolute Distance
G91.1 ; but not for arcs

; #1 X coord
; #2 surface speed
; #3 cut size
; #4 feed/rpm
; #5 Z coord
; #6 radius
; #7 angle
; #8 tool number
; #9 coolant

        O10 if [#9 EQ 1]
                M8
        O10 endif

;M6 T#8 G43
        O100 if [#8 NE #<_current_tool>]
                (MSG, ERROR : Set tool before use macro)
                 O<restore> call [#<metric>] [#<absolute>] [#<feed>] [#<ccomp>] [#<coord_system>] [#<lathe_diameter_mode>] [#<ijk_absolute_mode>]
        O100 return [-2] ; indicate failure to epilog
        O100 endif

#1 = [#1 / 2] ; because of radius mode

#14 = [#<_x>] (startinG X)
#13 = #<_z> (startinG Z)

#20 = [#6 * SIN[#7]]
#21 = [-#6 * COS[#7]]
#22 = [#6 / COS[#7]]
#23 = [#5 + #6 - #20]
#24 = [[#23 - #13] * TAN[#7]]

G96 D2500 S#2 ; Constant Surface Speed Mode
M3 ;Start Spindle
G95 F#4 ; Feed-Per-Rev Mode
G4P1 ; Wait to reach speed

(debuG, TurninG finish dia #1 start  dia #14 start lenGth #13 finish lenGth #5)
        O101 WHILE [#14 LT [#1 - #3]]
             G0 X #14
             #14=[#14 + #3]
             G1 X #14
             G1 Z #23 X[#14 + #24]
             
             o102 IF [#6 GT 0]
                  G3 Z#5 X[#14 + #24 + #21] I#21 K#20
        	        G1 X[#14 + #24 + #21 - #3]
             o102 ELSE	     
                  G1 X[#14 + #24 - [#3 * 1.5]]
             o102 ENDIF
              
             G0 Z[#13]
        O101 ENDWHILE

G0 X#1
G1 Z#23 X[#1 + #24]
	
        O103 IF [#6 GT 0]
             G3 Z#5 X[#1 + #24 + #21] I#21 K#20
        		 G1 X[#1 + #24 + #21 - #3]
        O103 ELSE
        	   G1 X[#1 + #24 - #3]
        O103 ENDIF

G0 Z#13
G0 X#1 ; For touch-off     

M5
M9

; restore g20/21, g90/g91, feed
	O<restore> call [#<metric>] [#<absolute>] [#<feed>] [#<ccomp>] [#<coord_system>] [#<lathe_diameter_mode>] [#<ijk_absolute_mode>]
	
O<boring> endsub

M2
%