aboutsummaryrefslogtreecommitdiffstats
path: root/nc_files/macros/lathe/chamfer.ngc
blob: ecb6b3c4b769fadc07e5387f0ac143931e2063fd (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
; MACROCOMMAND=X,SFM,DOC,Z,Tool Number,Chamfer size,Front Outside,Front Inside,Back Outside,Max RPM
; MACRODEFAULTS=1,300,.5,1,1,.015,true,false,false,1500
; MACROSVG=LatheMacro.svg,4

; O<chamfer>call [${chamfer.x-f}] [${chamfer.sf-f}] [0.5] [${chamfer.z-f}] [${chamfer.tool-s}] [${chamfer.size-f}]  [${chamfer.fo}] [${chamfer.fi}] [${chamfer.bo}]

; #1 chamfer x
; #2 surface speed *
; #3 doc 
; #4 chamfer z
; #5 tool number
; #6 chanfer size
; #7 front outside switch *
; #8 front inside switch *
; #9 back outside switch *
; #10 Max RPM

;chamfer

O<chamfer> sub

O107 IF [#<_imperial>]
    (MSG, IMPERIAL ON)
    #1 = [#1 * 25.4]; X
    #2 = [#2 * 304.8] ; sf/m to mm/m
    #3 = [#3 * 25.4]; doc?
    #4 = [#4 * 25.4]; Z
    #6 = [#6 * 25.4]; chanfer size
O107  ENDIF

M73 ; save/restore codes

G8 ; Lathe radius Mode
G18 ; XZ Plane
G21 ; Metric Units
G90 ; Absolute Distance


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

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

(MSG, Unpause To start Chamfer Macro)
m0

M6 T#5 G43

G96 D#10 S#2 ; Constant Surface Speed Mode
M3
g95 F0.1 ; Feed-Per-Rev Mode

#20 = 0
O101 if [#7 GT 0.5] ; front outside
	o100 while [[#20 + #3] lt #6]
	#20 = [#20 + #3]
	g0 x[#1 - #20] z#13
	g1 z#4
	g1 x#1 z[#4 - #20]
	g1 x #14
	g0 z#13
	o100 endwhile
	g0 x#14 z#13
	g0 x[#1 - #6]
	g1 z#4
	g1 x#1 z[#4 - #6]
	g1 x #14
	g0 z#13
O101 elseif [#8 GT 0.5] ; front inside
	o102 while [[#20 + #3] lt #6]
	#20 = [#20 + #3]
	g0 x[#1 + #20] z#13
	g1 z#4
	g1 x#1 z[#4 - #20]
	g1 x #14
	g0 z#13
	o102 endwhile
	g0 x#14 z#13
	g0 x[#1 + #6]
	g1 z#4
	g1 x#1 z[#4 - #6]
	g1 x #14
	g0 z#13
O101 elseif [#9 GT 0.5] ; back outside
	o103 while [[#20 + #3] lt #6]
	#20 = [#20 + #3]
	g0 x[#1 - #20] z#13
	g1 z#4
	g1 x#1 z[#4 + #20]
	g1 x #14
	g0 z#13
	o103 endwhile
	g0 x#14 z#13
	g0 x[#1 - #6]
	g1 z#4
	g1 x#1 z[#4 + #6]
	g1 x #14
	g0 z#13
O101 endif
G7
O<chamfer> endsub
m2
bues.ch cgit interface