Skip to content

Writing gcode

Peter Boin edited this page Jul 28, 2017 · 1 revision

Writing GCode

Writing gcode from python object instances to text

>>> from pygcode import *
>>> gcodes = [
...     GCodeRapidMove(Z=5),
...     GCodeStartSpindleCW(),
...     GCodeRapidMove(X=10, Y=20),
...     GCodeFeedRate(200),
...     GCodeLinearMove(Z=-1.5),
...     GCodeRapidMove(Z=5),
...     GCodeStopSpindle(),
... ]
>>> print('\n'.join(str(g) for g in gcodes))

G00 Z5
M03
G00 X10 Y20
F200
G01 Z-1.5
G00 Z5
M05

To plot along a lines of vectors, you could write...

>>> from pygcode import *
>>> from euclid import Vector3

>>> vectors = [
...     Vector3(0, 0, 0),
...     Vector3(10, 0, 0),
...     Vector3(10, 20, 0),
...     Vector3(10, 20, 3),
...     Vector3(0, 20, 3),
...     Vector3(0, 0, 3),
...     Vector3(0, 0, 0)
... ]

>>> to_coords = lambda v: {'X': v.x, 'Y': v.y, 'Z': v.z}
>>> for v in vectors:
...     print("%s" % GCodeLinearMove(**to_coords(v)))

G01 X0 Y0 Z0
G01 X10 Y0 Z0
G01 X10 Y20 Z0
G01 X10 Y20 Z3
G01 X0 Y20 Z3
G01 X0 Y0 Z3
G01 X0 Y0 Z0
Clone this wiki locally