Skip to content

Commit

Permalink
Add generator script to make multiple toolhead touchdowns, to be used…
Browse files Browse the repository at this point in the history
… with a depth indicator to determine platform levelness.
  • Loading branch information
Matt Mets authored and Matt Mets committed Apr 22, 2011
1 parent 8e246cc commit 2522f04
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 4 deletions.
27 changes: 27 additions & 0 deletions scripts/gcode_generator/platform_leveler.py
@@ -0,0 +1,27 @@
#!/usr/bin/python

from toolpathgenerator import *

startCode = '''\
(*** Tool Path Generator ***)
G21 (set units to mm)
G90 (set positioning to absolute)
M103 (Make sure extruder is off)
(**** begin homing ****)
G162 Z F500 (home Z axis maximum)
G161 X Y F2500 (home XY axes minimum)
M132 X Y Z A B (Recall stored home offsets for XYZAB axis)
'''

gen = ToolpathGenerator()
gen.open('platform_leveler.gcode', startcode=startCode)
gen.moveToXYZ(0,0,20,1500)

for x in range(-40,41,40):
for y in range(-50,51,50):
gen.moveToXYZ(x,y,10,1500)
gen.moveToXYZ(x,y,0,1500)
gen.prompt("Ok.")
gen.moveToXYZ(x,y,10,1500)

gen.close(shutdowncode="")
16 changes: 12 additions & 4 deletions scripts/gcode_generator/toolpathgenerator.py 100644 → 100755
Expand Up @@ -42,8 +42,12 @@
M103 (extruder off)
'''

promptTemplate = Template('M1 ($msg)\n')

moveXYPointTemplate = Template('G1 X$xpos Y$ypos F$speed (move to point)\n')

moveXYZPointTemplate = Template('G1 X$xpos Y$ypos Z$zpos F$speed (move to point)\n')

class ToolpathGenerator:
""" simple state machine for a gcode generator """
def __init__(self):
Expand All @@ -58,14 +62,18 @@ def open(self, filename, startcode=""):
self.output = open(self.filename, 'w')
self.output.write(startcode)

def close(self, shutdowncode=""):
if (shutdowncode==""):
shutdowncode = defaultShutdownCode
def close(self, shutdowncode=defaultShutdownCode):
self.output.write(shutdowncode)
self.output.close()

def moveToXY(self, X, Y, S):
self.output.write(moveXYPointTemplate.substitute(xpos=X, ypos=Y, speed=S))

def moveToXYZ(self, X, Y, Z, S):
self.output.write(moveXYZPointTemplate.substitute(xpos=X, ypos=Y, zpos=Z, speed=S))

def prompt(self, message=""):
self.output.write(promptTemplate.substitute(msg=message))

def engageTool(self):
self.output.write(engageTool)
Expand Down Expand Up @@ -97,4 +105,4 @@ def makeXYZigZag(generator, startX, startY, lenX, lenY, speed, Zags):
x += lenX
generator.moveToXY(x,y,speed)

generator.disengageTool()
generator.disengageTool()

0 comments on commit 2522f04

Please sign in to comment.