Originally Posted by
watchman
Thanks, I'll try Alan's amended routine as soon as I get a minute.. Ian
So how did you get on with this?
This thread was an eye opener for me. Like a 2 year old with a newly learned word, just can't resist trying to show off.
**while the more senior members snicker no doubt**
As I haven't quite grasped what you're doing, I expanded on Dan Falck's post.
The way I would have done this orginally
Code:
%
#100= 1000 (RPM)
#101= 1 (CIRCLE RADIUS)
#102= .375 (CUTTER RADIUS)
#103= 30 (FEED)
#104= 2 (X CENTER)
#105= 2 (Y CENTER)
#106= -.25 (DEPTH)
o100 sub
#107= [#101+#102] (PATH OF CUTTER)
G00 X#104 Y[[2*#102]+[#107+#105]]
G01 Z#106 F#103
G03 X#104 Y[#107+#105] R#102
G02 X[#107+#104] Y#105 R#107
X#104 Y[[-1*#107]+#105] R#107
X[[-1*#107]+#104] Y#105 R#107
X#104 Y[#107+#105] R#107
G03 X#104 Y[[2*#102]+[#107+#105]] R#102
o100 endsub
S#100 M03
G54 G00 X#104 Y[[2*#102]+[#107+#105]]
Z.1
o100 call
#101=.8
o100 call
#106=-.5
#101=1
o100 call
#101=.8
o100 call
G00 Z2
M02
%
using the "while" conditional trick
Code:
%
([1=first_cut.r] [2=cutter.r] [3=feed] [4=x center] [5=y center] [6=depth] [7=stepover] [8=finish.r])
o100 sub
o101 while [#8 LE #1]
#10= [#1+#2] (PATH OF CUTTER)
G00 X#4 Y[[2*#2]+[#10+#5]]
G01 Z#6 F#3
G03 X#4 Y[#10+#5] R#2
G02 X[#10+#4] Y#5 R#10
X#4 Y[[-1*#10]+#5] R#10
X[[-1*#10]+#4] Y#5 R#10
X#4 Y[#10+#5] R#10
G03 X#4 Y[[2*#2]+[#10+#5]] R#2
#1=[#1-#7]
o101 endwhile
o100 endsub
S1000 M03
G00 Z1
o100 call [1] [.375] [30] [0] [0] [-.25] [.1] [.8]
o100 call [1] [.375] [30] [0] [0] [-.5] [.1] [.6]
G00 Z2
M02
%
These programs are probably buggy as hell, but sure were fun to write.
Maybe there's something you can use in above somehow.