This commit is contained in:
67
trunk/eagle/hpgl2gcode.py
Normal file
67
trunk/eagle/hpgl2gcode.py
Normal file
@@ -0,0 +1,67 @@
|
||||
import sys
|
||||
import re
|
||||
|
||||
#open file passed as argument
|
||||
if len(sys.argv)>1:
|
||||
f = open(sys.argv[1],'r')
|
||||
else:
|
||||
print('usage: python hpgl2code.py inputfile.hpgl > outputfile.gcode')
|
||||
sys.exit(1)
|
||||
|
||||
#decoded commands
|
||||
#PA x,y; //pen advance xy unit=25um ie 40 units/mm
|
||||
#PU; //pen up - replace with G1 Z'up' (safe Z heigh constant)
|
||||
#PD; //pen down - - replace with G1 Z'dn' (engrawing depth constant)
|
||||
|
||||
#constants
|
||||
zup=1 # 5mm should be safe enough
|
||||
zdn=0 # using 0, for engraving negative values to be used
|
||||
upm=40.2 # hpgl units per mm (in theory should be 40.2)
|
||||
epm=0 # extrude per mm - in case I'm trying to plot with PLA
|
||||
feed="3000" #default feedrate
|
||||
|
||||
#init stuff
|
||||
print "(--------------------------------)"
|
||||
print "(- HPGL to G-Code Converter -)"
|
||||
print "(- (C)2016-10-12 - Paolo Iocco) -)"
|
||||
print "(--------------------------------)"
|
||||
print ""
|
||||
print "(CNC Setup)"
|
||||
print "G21" # units in mm
|
||||
print "M300 S50 (pen up)"
|
||||
print "G4 P150 (wait 150ms)"
|
||||
print "G1 X0.000 Y0.000 F"+feed
|
||||
print "(Plots a point in 0,0)"
|
||||
print "M300 S30 (pen down)"
|
||||
print "G4 P150 (wait 150ms)"
|
||||
print "M300 S50 (pen up)"
|
||||
print "G4 P150 (wait 150ms)"
|
||||
print "(-------------)"
|
||||
print "(- Start -)"
|
||||
print "(-------------)"
|
||||
|
||||
#process the input file
|
||||
pa = re.compile('^PA ([0-9]*),([0-9]*);') #regex for parsing PA command
|
||||
for line in f:
|
||||
if re.search('^PA',line):
|
||||
#parse a bit
|
||||
mpa=pa.match(line);
|
||||
x=float(mpa.group(1))/upm
|
||||
y=float(mpa.group(2))/upm
|
||||
print "G1 X"+"%.3f" % x," Y"+"%.3f" %y," F"+feed
|
||||
else:
|
||||
if re.search('^PU',line ):
|
||||
#print "G1 Z",zup," F"+feed
|
||||
print "M300 S50 (pen up)"
|
||||
print "G4 P150 (wait 150ms)"
|
||||
else:
|
||||
if re.search('^PD',line ):
|
||||
#print "G1 Z",zdn," F"+feed
|
||||
print "M300 S30 (pen down)"
|
||||
print "G4 P150 (wait 150ms)"
|
||||
print ""
|
||||
print "(-----------)"
|
||||
print "(- End -)"
|
||||
print "(-----------)"
|
||||
print "G1 X0.00 Y0.00 F500.0 (Go Home)"
|
||||
|
||||
Reference in New Issue
Block a user