from math import * from inspect import * from string import Template def g(text): "display gcode" s = Template(text) ss = s.safe_substitute(sys._getframe(1).f_locals) t = Template(ss) tt = t.safe_substitute(globals()) print tt def flowsnake( level, startX, startY, endX, endY ): if level == 0: g("g1 f10 x$endX y$endY ($Glevel)") else: p1X = ((startX * 2 + endX)/3) p1Y = ((startY * 2 + endY)/3) p2X = ((startX + endX)/2 + (endY - startY)/(sqrt(12.0))) p2Y = ((startY + endY)/2 - (endX - startX)/(sqrt(12.0))) p3X = ((startX + 2 * endX)/3) p3Y = ((startY + 2 * endY)/3) flowsnake ((level-1), startX, startY, p1X, p1Y) flowsnake ((level-1), p1X, p1Y, p2X, p2Y,) flowsnake ((level-1), p2X, p2Y, p3X, p3Y,) flowsnake ((level-1), p3X, p3Y, endX, endY,) print "S1M3" print "g0 z1" print "g0 x.25 y1.0" print "g1 f10 z0" Glevel = 2 flowsnake (Glevel, .25, 1.0, 3.75, 1.0) flowsnake (Glevel, 3.75, 1.0, 2.0, 3.95) flowsnake (Glevel, 2.0, 3.95, .25, 1.0) print "g0 z1" print "M5"