View difference between Paste ID: f52f0881a and
SHOW: | | - or go back to the newest paste.
1-
1+
# comments are preceded by # - the computer ignores anything following #
2
3
zmin = -0.05 # this is clearance past the end on the spindle side - never changes
4
zmax = 0.92 # length of piece at tailstock, determined by jogging over to its end
5
6
xmin = -0.125 # diameter of original part - where to start shaving passes
7
xmax = -0.26 # diameter of finished part - where to stop shaving passes
8
xclr = -0.32 # a back-out diameter to move to before and after all cutting work
9
xstp = 0.003 # how far to move in per-pass (went as high as 0.019" on Walnut)
10
11
print '%' # prog start (a necessary symbol for EMC2 - www.linuxcnc.org)
12
13
# clear and get in start position
14
print '(clear and get in start position)' # ( and ) surround comments in g-code
15
print 'F10' # feed speed of 10 (in/min, IIRC)
16
print 'G1 X%0.3F' % xclr # G1 means 'move at feed speed'
17
print 'G1 Z%0.3F' % zmax # this formatting is a Python thing, explained next...
18
19
# the Z will be printed in the previous line. %F in ""s or ''s will be replaced by
20
# a valid floating point number (or the value of a variable containing one) after
21
# the quotes and another % symbol to separate the two parts. Putting a 0.3 between
22
# the % and the F means to print it with 3 decimal places, rounding up, or padding
23
# with 0 if necessary. E.g. 0.5318 would become 0.532, and 0.12 would become 0.120
24
25
print '(begin cutting)'
26
# the next statement starts up a loop between the xmax and xmin values, with the 1000s
27
# being a convention to fix some problems with floating points that I can likely remove
28
for i in range(int(xmax * 1000), int(xmin * 1000 + xstp * 1000), int(xstp * 1000)):
29
	print 'F6' # slow down for pass each time
30
	# the next line will move to the final pass in X only if we're less than a step away
31
	if i / 1000.0 > xmin:
32
		print 'G1 X%0.3F' % xmin
33
	# otherwise just make each next pass
34
	else:
35
		print 'G1 X%0.3F' % (i / 1000.0)
36
	# make the cut
37
	print 'G1 Z%0.3F' % zmin
38
	print 'F15' # speed up for finish pass each time
39
	# make the finish pass back the other way
40
	print 'G1 Z%0.3F' % zmax
41
42
# clear and return to start position
43
print '(clear and return to start position)'
44
print 'G1 X%0.3F' % xclr
45
# for some reason, if I don't put the final line 2x, it doesn't run it - an EMC2 bug (?)
46
print 'G1 Z%0.3F' % zclr
47
print 'G1 Z%0.3F' % zclr
48
49
print '%' # prog end (another EMC2 convention - www.linuxcnc.org)