GCODE Parser for Python
pygcode-norm
script:
Added "Final Machine Actions:"
Final Machine Actions:
standardize what's done at the end of a gcode program.
--zero_xy, -zxy On completion, move straight up to
rapid_safety_height, then across to X0 Y0.
--zero_z, -zz On completion, move down to Z0 (done after zero_xy, if
set).
--rapid_safety_height RAPID_SAFETY_HEIGHT, -rsh RAPID_SAFETY_HEIGHT
Z value to move to before traversing workpiece (if not
set, max value will be attempted).
--spindle_off, -so On completion, turn spindle off.
Added ability to remove all codes & parameters that cannot be parsed.
--rm_invalid_modal, -rmim
Simply remove everything that isn't understood. Use
with caution.
Library Improvements
Machine.abs2work(<Position>)
and Machine.work2abs(<Position>)
position
converters, apply machine's offset to the given position without effecting
machine's current position.Machine.clean_block(<Block>)
removes content from a block that's not parsable (use with caution)Machine.ignore_invalid_modal
bool class parameter, if set, will continue on merrily while ignoring
anything not parsable (similarly to clean_block
)setup.py
(ie: alpha, beta, and so on)(none)
Moved to alpha
Improvements to read more versatile formats
lsenv
in deployment script.GCodeLineNumber
and GCodeProgramName
(in response to #5).GCodeCancelCannedCycle
sets machine mode to None
, and is run first in list of motion
gcodes.Word
, (eg: X-1.2
and X -1.2
are now both valid)Changes to accommodate implementation of grbl-stream
NullMachine
, NullState
, and NullMode
(not assuming any machine state)Block
length is the number of gcodes + 1 if modal parameters exists%
enclosed lines are considered to be macros when parsingABCXYZ
as valid parameters for G10
(eg: G10 L20 X0 Y0 Z0
)