• Lars Kruse's avatar
    replaced toolpath handling with a more flexible approach · 8aceb43d
    Lars Kruse authored
    Toolpaths ("moves") are now created as simple lists containing a tuple
    of two values:
    - a type identifier (numeric constant) - e.g. "move", "move rapid", "safety move"
    - arguments (can be a tuple, as well)
    
    This structure allows the use of "filters" for GCode generation.
    A simple example:
    A "laser" GCode generator will turn all "safety move" items into
    "laser power on" and "laser power off" respectively.
    A milling machine GCode generator will turn all "safety move" items into
    rapid moves up, then sideways moves and then slow moves down to the next
    destination.
    
    Currently the following filters are implemented:
    - skip a safety move if a short sideways move does no harm (e.g. zigzag mode)
    - replace safety moves with the proper combination of normal and rapid moves
    - a simple example filter for machine settings (feedrate, metric system, ...)
    Tool change and touch off, as well as the missing startup settings are still
    open.
    8aceb43d
__init__.py 27.1 KB