meerk40t 0.9.7930__tar.gz → 0.9.7940__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/PKG-INFO +1 -1
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/bindalias.py +12 -4
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/elements/files.py +1 -1
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/elements/shapes.py +1 -1
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/node/effect_hatch.py +8 -7
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/node/effect_warp.py +7 -2
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/node/effect_wobble.py +8 -2
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/node/op_image.py +79 -25
- meerk40t-0.9.7940/meerk40t/gui/help_assets/help_assets.py +701 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/plugin.py +12 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/tips.py +78 -41
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/wxmmain.py +92 -4
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/lihuiyu/driver.py +44 -4
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/main.py +1 -1
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/ruida/emulator.py +1 -1
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t.egg-info/PKG-INFO +1 -1
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/setup.cfg +1 -1
- meerk40t-0.9.7930/meerk40t/gui/help_assets/help_assets.py +0 -342
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/LICENSE +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/README.md +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/__init__.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/balormk/__init__.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/balormk/balor_params.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/balormk/clone_loader.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/balormk/controller.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/balormk/cylindermod.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/balormk/device.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/balormk/driver.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/balormk/galvo_commands.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/balormk/gui/__init__.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/balormk/gui/balorconfig.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/balormk/gui/balorcontroller.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/balormk/gui/baloroperationproperties.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/balormk/gui/corscene.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/balormk/gui/gui.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/balormk/livelightjob.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/balormk/mock_connection.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/balormk/plugin.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/balormk/usb_connection.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/camera/__init__.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/camera/camera.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/camera/gui/__init__.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/camera/gui/camerapanel.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/camera/gui/gui.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/camera/plugin.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/ch341/__init__.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/ch341/ch341device.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/ch341/libusb.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/ch341/mock.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/ch341/windriver.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/constants.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/__init__.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/core.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/cutcode/__init__.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/cutcode/cubiccut.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/cutcode/cutcode.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/cutcode/cutgroup.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/cutcode/cutobject.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/cutcode/dwellcut.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/cutcode/gotocut.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/cutcode/homecut.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/cutcode/inputcut.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/cutcode/linecut.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/cutcode/outputcut.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/cutcode/plotcut.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/cutcode/quadcut.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/cutcode/rastercut.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/cutcode/waitcut.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/cutplan.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/drivers.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/elements/__init__.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/elements/align.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/elements/branches.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/elements/clipboard.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/elements/element_treeops.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/elements/element_types.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/elements/elements.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/elements/geometry.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/elements/grid.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/elements/materials.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/elements/notes.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/elements/offset_clpr.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/elements/offset_mk.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/elements/penbox.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/elements/placements.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/elements/render.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/elements/testcases.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/elements/trace.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/elements/tree_commands.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/elements/undo_redo.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/elements/wordlist.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/exceptions.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/laserjob.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/logging.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/node/__init__.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/node/blobnode.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/node/bootstrap.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/node/branch_elems.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/node/branch_ops.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/node/branch_regmark.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/node/cutnode.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/node/elem_ellipse.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/node/elem_image.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/node/elem_line.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/node/elem_path.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/node/elem_point.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/node/elem_polyline.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/node/elem_rect.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/node/elem_text.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/node/filenode.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/node/groupnode.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/node/image_processed.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/node/image_raster.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/node/layernode.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/node/mixins.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/node/node.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/node/nutils.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/node/op_cut.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/node/op_dots.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/node/op_engrave.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/node/op_raster.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/node/place_current.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/node/place_point.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/node/refnode.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/node/rootnode.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/node/util_console.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/node/util_goto.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/node/util_home.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/node/util_input.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/node/util_output.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/node/util_wait.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/parameters.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/planner.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/plotplanner.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/space.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/spoolers.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/svg_io.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/treeop.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/undos.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/units.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/view.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/webhelp.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/core/wordlist.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/cylinder/__init__.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/cylinder/cylinder.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/cylinder/gui/__init__.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/cylinder/gui/cylindersettings.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/cylinder/gui/gui.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/device/__init__.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/device/basedevice.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/device/devicechoices.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/device/dummydevice.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/device/gui/__init__.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/device/gui/defaultactions.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/device/gui/effectspanel.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/device/gui/formatterpanel.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/device/gui/warningpanel.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/device/mixins.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/dxf/__init__.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/dxf/dxf_io.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/dxf/plugin.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/external_plugins.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/external_plugins_build.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/extra/__init__.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/extra/cag.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/extra/coolant.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/extra/encode_detect.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/extra/ezd.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/extra/hershey.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/extra/imageactions.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/extra/inkscape.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/extra/lbrn.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/extra/mk_potrace.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/extra/outerworld.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/extra/param_functions.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/extra/potrace.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/extra/serial_exchange.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/extra/updater.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/extra/vectrace.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/extra/vtracer.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/extra/winsleep.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/extra/xcs_reader.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/fill/__init__.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/fill/fills.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/fill/patternfill.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/fill/patterns.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/grbl/__init__.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/grbl/control.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/grbl/controller.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/grbl/device.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/grbl/driver.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/grbl/emulator.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/grbl/gcodejob.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/grbl/gui/__init__.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/grbl/gui/grblconfiguration.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/grbl/gui/grblcontroller.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/grbl/gui/grblhardwareconfig.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/grbl/gui/grbloperationconfig.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/grbl/gui/gui.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/grbl/interpreter.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/grbl/loader.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/grbl/mock_connection.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/grbl/plugin.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/grbl/serial_connection.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/grbl/tcp_connection.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/grbl/ws_connection.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/__init__.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/about.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/alignment.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/autoexec.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/basicops.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/bufferview.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/busy.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/choicepropertypanel.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/consolepanel.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/devicepanel.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/dialogoptions.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/executejob.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/fonts.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/functionwrapper.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/gui_mixins.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/guicolors.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/help_assets/__init__.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/helper.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/hersheymanager.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/icons.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/imagesplitter.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/keymap.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/laserpanel.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/laserrender.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/lasertoolpanel.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/magnetoptions.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/materialmanager.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/materialtest.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/mkdebug.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/mwindow.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/navigationpanels.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/notes.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/opassignment.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/operation_info.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/position.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/preferences.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/propertypanels/__init__.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/propertypanels/attributes.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/propertypanels/blobproperty.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/propertypanels/consoleproperty.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/propertypanels/gotoproperty.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/propertypanels/groupproperties.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/propertypanels/hatchproperty.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/propertypanels/imageproperty.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/propertypanels/inputproperty.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/propertypanels/opbranchproperties.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/propertypanels/operationpropertymain.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/propertypanels/outputproperty.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/propertypanels/pathproperty.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/propertypanels/placementproperty.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/propertypanels/pointproperty.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/propertypanels/propertywindow.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/propertypanels/rasterwizardpanels.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/propertypanels/regbranchproperties.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/propertypanels/textproperty.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/propertypanels/waitproperty.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/propertypanels/warpproperty.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/propertypanels/wobbleproperty.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/ribbon.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/scene/__init__.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/scene/scene.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/scene/sceneconst.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/scene/scenepanel.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/scene/scenespacewidget.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/scene/widget.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/scenewidgets/__init__.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/scenewidgets/affinemover.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/scenewidgets/attractionwidget.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/scenewidgets/bedwidget.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/scenewidgets/elementswidget.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/scenewidgets/gridwidget.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/scenewidgets/guidewidget.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/scenewidgets/laserpathwidget.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/scenewidgets/machineoriginwidget.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/scenewidgets/nodeselector.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/scenewidgets/rectselectwidget.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/scenewidgets/relocatewidget.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/scenewidgets/reticlewidget.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/scenewidgets/selectionwidget.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/simpleui.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/simulation.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/snapoptions.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/spoolerpanel.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/statusbarwidgets/__init__.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/statusbarwidgets/defaultoperations.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/statusbarwidgets/infowidget.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/statusbarwidgets/opassignwidget.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/statusbarwidgets/selectionwidget.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/statusbarwidgets/shapepropwidget.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/statusbarwidgets/statusbar.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/statusbarwidgets/statusbarwidget.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/statusbarwidgets/strokewidget.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/themes.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/toolwidgets/__init__.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/toolwidgets/circlebrush.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/toolwidgets/toolcircle.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/toolwidgets/toolcontainer.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/toolwidgets/tooldraw.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/toolwidgets/toolellipse.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/toolwidgets/toolimagecut.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/toolwidgets/toolline.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/toolwidgets/toollinetext.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/toolwidgets/toollinetext_inline.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/toolwidgets/toolmeasure.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/toolwidgets/toolnodeedit.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/toolwidgets/toolnodemove.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/toolwidgets/toolparameter.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/toolwidgets/toolplacement.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/toolwidgets/toolpoint.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/toolwidgets/toolpointlistbuilder.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/toolwidgets/toolpointmove.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/toolwidgets/toolpolygon.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/toolwidgets/toolpolyline.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/toolwidgets/toolrect.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/toolwidgets/toolrelocate.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/toolwidgets/toolribbon.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/toolwidgets/tooltabedit.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/toolwidgets/tooltext.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/toolwidgets/toolvector.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/toolwidgets/toolwidget.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/usbconnect.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/utilitywidgets/__init__.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/utilitywidgets/buttonwidget.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/utilitywidgets/checkboxwidget.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/utilitywidgets/controlwidget.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/utilitywidgets/cyclocycloidwidget.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/utilitywidgets/debugwidgets.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/utilitywidgets/handlewidget.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/utilitywidgets/harmonograph.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/utilitywidgets/openclosewidget.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/utilitywidgets/rotationwidget.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/utilitywidgets/scalewidget.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/utilitywidgets/seekbarwidget.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/utilitywidgets/togglewidget.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/utilitywidgets/toolbarwidget.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/wordlisteditor.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/wxmeerk40t.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/wxmribbon.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/wxmscene.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/wxmtree.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/wxutils.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/gui/zmatrix.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/image/__init__.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/image/dither.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/image/imagetools.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/internal_plugins.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/kernel/__init__.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/kernel/channel.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/kernel/context.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/kernel/exceptions.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/kernel/functions.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/kernel/inhibitor.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/kernel/jobs.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/kernel/kernel.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/kernel/lifecycles.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/kernel/module.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/kernel/service.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/kernel/settings.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/kernel/states.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/lihuiyu/__init__.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/lihuiyu/controller.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/lihuiyu/device.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/lihuiyu/gui/__init__.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/lihuiyu/gui/gui.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/lihuiyu/gui/lhyaccelgui.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/lihuiyu/gui/lhycontrollergui.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/lihuiyu/gui/lhydrivergui.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/lihuiyu/gui/lhyoperationproperties.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/lihuiyu/gui/tcpcontroller.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/lihuiyu/interpreter.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/lihuiyu/laserspeed.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/lihuiyu/loader.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/lihuiyu/parser.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/lihuiyu/plugin.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/lihuiyu/tcp_connection.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/moshi/__init__.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/moshi/builder.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/moshi/controller.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/moshi/device.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/moshi/driver.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/moshi/gui/__init__.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/moshi/gui/gui.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/moshi/gui/moshicontrollergui.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/moshi/gui/moshidrivergui.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/moshi/plugin.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/network/__init__.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/network/console_server.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/network/kernelserver.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/network/tcp_server.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/network/udp_server.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/network/web_server.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/newly/__init__.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/newly/controller.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/newly/device.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/newly/driver.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/newly/gui/__init__.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/newly/gui/gui.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/newly/gui/newlyconfig.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/newly/gui/newlycontroller.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/newly/gui/operationproperties.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/newly/mock_connection.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/newly/newly_params.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/newly/plugin.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/newly/usb_connection.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/rotary/__init__.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/rotary/gui/__init__.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/rotary/gui/gui.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/rotary/gui/rotarysettings.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/rotary/rotary.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/ruida/__init__.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/ruida/control.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/ruida/controller.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/ruida/device.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/ruida/driver.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/ruida/exceptions.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/ruida/gui/__init__.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/ruida/gui/gui.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/ruida/gui/ruidaconfig.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/ruida/gui/ruidacontroller.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/ruida/gui/ruidaoperationproperties.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/ruida/loader.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/ruida/mock_connection.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/ruida/plugin.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/ruida/rdjob.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/ruida/serial_connection.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/ruida/tcp_connection.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/ruida/udp_connection.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/svgelements.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/tools/__init__.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/tools/driver_to_path.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/tools/geomstr.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/tools/jhfparser.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/tools/kerftest.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/tools/livinghinges.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/tools/pathtools.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/tools/pmatrix.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/tools/pointfinder.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/tools/polybool.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/tools/rasterplotter.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/tools/shxparser.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/tools/ttfparser.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t/tools/zinglplotter.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t.egg-info/SOURCES.txt +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t.egg-info/dependency_links.txt +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t.egg-info/entry_points.txt +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t.egg-info/requires.txt +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t.egg-info/top_level.txt +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/meerk40t.egg-info/zip-safe +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/pyproject.toml +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/setup.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/test/test_cli.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/test/test_core_cutcode.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/test/test_core_elements.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/test/test_core_plotplanner.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/test/test_core_viewports.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/test/test_drivers_galvo.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/test/test_drivers_grbl.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/test/test_drivers_lihuiyu.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/test/test_drivers_moshi.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/test/test_drivers_newly.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/test/test_element_degenerate_points.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/test/test_elements_classify.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/test/test_elements_penbox.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/test/test_file_svg.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/test/test_fill.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/test/test_geomstr.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/test/test_geomstr_nodes.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/test/test_imagetools_actualize.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/test/test_imagetools_wizard.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/test/test_kernel.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/test/test_laser_speeds.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/test/test_length.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/test/test_lifecycle.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/test/test_operations.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/test/test_operations_hatch.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/test/test_pmatrix.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/test/test_ruida.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/test/test_spooler.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/test/test_tools_rasterplotter.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/test/test_units_angle.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/test/test_wobble.py +0 -0
- {meerk40t-0.9.7930 → meerk40t-0.9.7940}/test/test_zingl.py +0 -0
@@ -267,7 +267,7 @@ DEFAULT_ALIAS = {
|
|
267
267
|
"+left": (".timerleft 0 0.1 left 1mm",),
|
268
268
|
"+up": (".timerup 0 0.1 up 1mm",),
|
269
269
|
"+down": (".timerdown 0 0.1 down 1mm",),
|
270
|
-
"burn": ("planz clear copy preprocess validate blob preopt optimize spool",
|
270
|
+
"burn": ("planz clear copy preprocess validate blob preopt optimize spool",),
|
271
271
|
"-scale_up": (".timerscale_up off",),
|
272
272
|
"-scale_down": (".timerscale_down off",),
|
273
273
|
"-rotate_cw": (".timerrotate_cw off",),
|
@@ -318,7 +318,11 @@ class Bind(Service):
|
|
318
318
|
key,
|
319
319
|
)
|
320
320
|
|
321
|
-
channel(
|
321
|
+
channel(
|
322
|
+
" {key} {command}".format(
|
323
|
+
key=_("Key").ljust(22), command=_("Command")
|
324
|
+
)
|
325
|
+
)
|
322
326
|
for i, key in enumerate(sorted(self.keymap.keys(), key=keymap_index)):
|
323
327
|
value = self.keymap[key]
|
324
328
|
channel(f"{i:2d}: {key.ljust(22)} {value}")
|
@@ -445,8 +449,12 @@ class Alias(Service):
|
|
445
449
|
_ = self._
|
446
450
|
if alias is None:
|
447
451
|
reverse_keymap = {v: k for k, v in self.bind.keymap.items()}
|
448
|
-
channel(_("Aliases (keybind)
|
449
|
-
channel(
|
452
|
+
channel(_("Aliases (keybind):"))
|
453
|
+
channel(
|
454
|
+
" {key} {value}".format(
|
455
|
+
key=_("Alias").ljust(22), value=_("Command(s)")
|
456
|
+
)
|
457
|
+
)
|
450
458
|
last = None
|
451
459
|
i = -1
|
452
460
|
for key in sorted(
|
@@ -95,7 +95,7 @@ def init_commands(kernel):
|
|
95
95
|
except OSError as e:
|
96
96
|
channel(str(e))
|
97
97
|
|
98
|
-
@self.console_command("save_types", help=_("save_types"))
|
98
|
+
@self.console_command("save_types", help=_("save_types - display save types"))
|
99
99
|
def file_save_types(command, channel, _, **kwargs):
|
100
100
|
for saver, save_name, sname in kernel.find("save"):
|
101
101
|
for description, extension, mimetype, version in saver.save_types():
|
@@ -2984,7 +2984,7 @@ def init_commands(kernel):
|
|
2984
2984
|
with self.undoscope("Create cross"):
|
2985
2985
|
node = self.elem_branch.add(
|
2986
2986
|
label=_("Cross at ({xp}, {yp})").format(
|
2987
|
-
xp=xpos.length_mm, yp=ypos.length_mm
|
2987
|
+
xp=Length(xpos).length_mm, yp=Length(ypos).length_mm
|
2988
2988
|
),
|
2989
2989
|
geometry=geom,
|
2990
2990
|
stroke=self.default_stroke,
|
@@ -2,8 +2,8 @@ import itertools
|
|
2
2
|
from copy import copy
|
3
3
|
from math import sqrt
|
4
4
|
|
5
|
-
from meerk40t.core.node.node import Node
|
6
5
|
from meerk40t.core.node.mixins import Suppressable
|
6
|
+
from meerk40t.core.node.node import Node
|
7
7
|
from meerk40t.core.units import Angle, Length
|
8
8
|
from meerk40t.svgelements import Color, Point
|
9
9
|
from meerk40t.tools.geomstr import Geomstr # , Scanbeam
|
@@ -179,8 +179,8 @@ class HatchEffectNode(Node, Suppressable):
|
|
179
179
|
factor = sqrt(abs(matrix.determinant))
|
180
180
|
self._distance *= factor
|
181
181
|
# Let's establish the angle
|
182
|
-
p1:Point = matrix.point_in_matrix_space((0, 0))
|
183
|
-
p2:Point = matrix.point_in_matrix_space((1, 0))
|
182
|
+
p1: Point = matrix.point_in_matrix_space((0, 0))
|
183
|
+
p2: Point = matrix.point_in_matrix_space((1, 0))
|
184
184
|
angle = p1.angle_to(p2)
|
185
185
|
self._angle -= angle
|
186
186
|
# from math import tau
|
@@ -240,6 +240,8 @@ class HatchEffectNode(Node, Suppressable):
|
|
240
240
|
subs = right_types(e)
|
241
241
|
res.extend(subs)
|
242
242
|
elif e.type.startswith("elem"):
|
243
|
+
if hasattr(e, "hidden") and e.hidden:
|
244
|
+
continue
|
243
245
|
res.append(e)
|
244
246
|
return res
|
245
247
|
|
@@ -301,7 +303,6 @@ class HatchEffectNode(Node, Suppressable):
|
|
301
303
|
angle=self._angle + p * self._angle_delta,
|
302
304
|
)
|
303
305
|
|
304
|
-
|
305
306
|
def set_interim(self):
|
306
307
|
self.empty_cache()
|
307
308
|
self._interim = True
|
@@ -315,9 +316,9 @@ class HatchEffectNode(Node, Suppressable):
|
|
315
316
|
|
316
317
|
def can_drop(self, drag_node):
|
317
318
|
if (
|
318
|
-
hasattr(drag_node, "as_geometry")
|
319
|
-
drag_node.type in ("effect", "file", "group", "reference")
|
320
|
-
(drag_node.type.startswith("op ") and drag_node.type != "op dots")
|
319
|
+
hasattr(drag_node, "as_geometry")
|
320
|
+
or drag_node.type in ("effect", "file", "group", "reference")
|
321
|
+
or (drag_node.type.startswith("op ") and drag_node.type != "op dots")
|
321
322
|
):
|
322
323
|
return True
|
323
324
|
return False
|
@@ -210,7 +210,6 @@ class WarpEffectNode(Node, FunctionalParameter):
|
|
210
210
|
self.d3 = complex(nn3.x - pp3.x, nn3.y - pp3.y)
|
211
211
|
self.d4 = complex(nn4.x - pp4.x, nn4.y - pp4.y)
|
212
212
|
|
213
|
-
|
214
213
|
def default_map(self, default_map=None):
|
215
214
|
default_map = super().default_map(default_map=default_map)
|
216
215
|
default_map["element_type"] = "Warp"
|
@@ -229,6 +228,8 @@ class WarpEffectNode(Node, FunctionalParameter):
|
|
229
228
|
subs = right_types(e)
|
230
229
|
res.extend(subs)
|
231
230
|
elif e.type.startswith("elem"):
|
231
|
+
if hasattr(e, "hidden") and e.hidden:
|
232
|
+
continue
|
232
233
|
res.append(e)
|
233
234
|
return res
|
234
235
|
|
@@ -297,7 +298,11 @@ class WarpEffectNode(Node, FunctionalParameter):
|
|
297
298
|
self.altered()
|
298
299
|
|
299
300
|
def can_drop(self, drag_node):
|
300
|
-
if
|
301
|
+
if (
|
302
|
+
hasattr(drag_node, "as_geometry")
|
303
|
+
or drag_node.type in ("effect", "file", "group", "reference")
|
304
|
+
or (drag_node.type.startswith("op ") and drag_node.type != "op dots")
|
305
|
+
):
|
301
306
|
return True
|
302
307
|
return False
|
303
308
|
|
@@ -2,8 +2,8 @@ import math
|
|
2
2
|
from copy import copy
|
3
3
|
from math import sqrt
|
4
4
|
|
5
|
-
from meerk40t.core.node.node import Node
|
6
5
|
from meerk40t.core.node.mixins import Suppressable
|
6
|
+
from meerk40t.core.node.node import Node
|
7
7
|
from meerk40t.core.units import Length
|
8
8
|
from meerk40t.svgelements import Color
|
9
9
|
from meerk40t.tools.geomstr import Geomstr # , Scanbeam
|
@@ -225,6 +225,8 @@ class WobbleEffectNode(Node, Suppressable):
|
|
225
225
|
subs = right_types(e)
|
226
226
|
res.extend(subs)
|
227
227
|
elif e.type.startswith("elem"):
|
228
|
+
if hasattr(e, "hidden") and e.hidden:
|
229
|
+
continue
|
228
230
|
res.append(e)
|
229
231
|
return res
|
230
232
|
|
@@ -384,7 +386,11 @@ class WobbleEffectNode(Node, Suppressable):
|
|
384
386
|
self.altered()
|
385
387
|
|
386
388
|
def can_drop(self, drag_node):
|
387
|
-
if
|
389
|
+
if (
|
390
|
+
hasattr(drag_node, "as_geometry")
|
391
|
+
or drag_node.type in ("effect", "file", "group", "reference")
|
392
|
+
or (drag_node.type.startswith("op ") and drag_node.type != "op dots")
|
393
|
+
):
|
388
394
|
return True
|
389
395
|
return False
|
390
396
|
|
@@ -21,16 +21,17 @@ Methods:
|
|
21
21
|
"""
|
22
22
|
from copy import copy
|
23
23
|
from math import isnan
|
24
|
+
|
24
25
|
from meerk40t.constants import (
|
25
|
-
RASTER_T2B,
|
26
26
|
RASTER_B2T,
|
27
|
-
|
28
|
-
RASTER_L2R,
|
29
|
-
RASTER_HATCH,
|
27
|
+
RASTER_CROSSOVER,
|
30
28
|
RASTER_GREEDY_H,
|
31
29
|
RASTER_GREEDY_V,
|
32
|
-
|
30
|
+
RASTER_HATCH,
|
31
|
+
RASTER_L2R,
|
32
|
+
RASTER_R2L,
|
33
33
|
RASTER_SPIRAL,
|
34
|
+
RASTER_T2B,
|
34
35
|
)
|
35
36
|
from meerk40t.core.cutcode.rastercut import RasterCut
|
36
37
|
from meerk40t.core.elements.element_types import *
|
@@ -67,7 +68,13 @@ class ImageOpNode(Node, Parameters):
|
|
67
68
|
super().__init__(type="op image", **kwargs)
|
68
69
|
self._formatter = "{enabled}{pass}{element_type}{direction}{speed}mm/s @{power}"
|
69
70
|
# They might come from a svg read, but shouldnt be in settings
|
70
|
-
for attrib in (
|
71
|
+
for attrib in (
|
72
|
+
"lock",
|
73
|
+
"dangerous",
|
74
|
+
"use_grayscale",
|
75
|
+
"consider_laserspot",
|
76
|
+
"overrule_dpi",
|
77
|
+
):
|
71
78
|
if attrib in self.settings:
|
72
79
|
del self.settings[attrib]
|
73
80
|
|
@@ -146,7 +153,9 @@ class ImageOpNode(Node, Parameters):
|
|
146
153
|
# Move operation to a different position.
|
147
154
|
return True
|
148
155
|
elif drag_node.type in ("file", "group"):
|
149
|
-
return not any(
|
156
|
+
return not any(
|
157
|
+
e.has_ancestor("branch reg") for e in drag_node.flat(elem_nodes)
|
158
|
+
)
|
150
159
|
return False
|
151
160
|
|
152
161
|
def drop(self, drag_node, modify=True, flag=False):
|
@@ -255,8 +264,12 @@ class ImageOpNode(Node, Parameters):
|
|
255
264
|
height_in_inches = (max_y - min_y) / UNITS_PER_INCH
|
256
265
|
speed_in_per_s = self.speed / MM_PER_INCH
|
257
266
|
if self.raster_direction in (
|
258
|
-
RASTER_T2B,
|
259
|
-
|
267
|
+
RASTER_T2B,
|
268
|
+
RASTER_B2T,
|
269
|
+
RASTER_HATCH,
|
270
|
+
RASTER_GREEDY_H,
|
271
|
+
RASTER_CROSSOVER,
|
272
|
+
RASTER_SPIRAL,
|
260
273
|
):
|
261
274
|
scanlines = height_in_inches * dpi
|
262
275
|
if not self.bidirectional:
|
@@ -268,7 +281,12 @@ class ImageOpNode(Node, Parameters):
|
|
268
281
|
this_len = scanlines * width_in_inches + height_in_inches
|
269
282
|
estimate += this_len / speed_in_per_s
|
270
283
|
# print (f"Horizontal scanlines: {scanlines}, Length: {this_len:.1f}")
|
271
|
-
if self.raster_direction in (
|
284
|
+
if self.raster_direction in (
|
285
|
+
RASTER_L2R,
|
286
|
+
RASTER_R2L,
|
287
|
+
RASTER_HATCH,
|
288
|
+
RASTER_GREEDY_V,
|
289
|
+
):
|
272
290
|
scanlines = width_in_inches * dpi
|
273
291
|
if not self.bidirectional:
|
274
292
|
scanlines *= 2
|
@@ -304,7 +322,14 @@ class ImageOpNode(Node, Parameters):
|
|
304
322
|
if self.consider_laserspot:
|
305
323
|
try:
|
306
324
|
laserspot = getattr(context.device, "laserspot", "0.3mm")
|
307
|
-
spot =
|
325
|
+
spot = (
|
326
|
+
2
|
327
|
+
* float(Length(laserspot))
|
328
|
+
/ (
|
329
|
+
context.device.view.native_scale_x
|
330
|
+
+ context.device.view.native_scale_y
|
331
|
+
)
|
332
|
+
)
|
308
333
|
# print (f"Laserpot in device units: {spot:.2f} [{laserspot.length_mm}], scale: {context.device.view.native_scale_x + context.device.view.native_scale_y:.2f}")
|
309
334
|
except (ValueError, AttributeError):
|
310
335
|
spot = 0
|
@@ -388,9 +413,12 @@ class ImageOpNode(Node, Parameters):
|
|
388
413
|
def call_me(method):
|
389
414
|
def handler():
|
390
415
|
method(self)
|
416
|
+
|
391
417
|
return handler
|
392
418
|
|
393
|
-
for key, description, method in context.kernel.lookup_all(
|
419
|
+
for key, description, method in context.kernel.lookup_all(
|
420
|
+
"raster_preprocessor/.*"
|
421
|
+
):
|
394
422
|
if key == self.raster_direction:
|
395
423
|
plan.commands.append(call_me(method))
|
396
424
|
# print (f"Found {description}")
|
@@ -433,7 +461,13 @@ class ImageOpNode(Node, Parameters):
|
|
433
461
|
start_on_top = self.raster_preference_top
|
434
462
|
if direction in (RASTER_GREEDY_V, RASTER_L2R, RASTER_R2L):
|
435
463
|
horizontal = False
|
436
|
-
if direction in (
|
464
|
+
if direction in (
|
465
|
+
RASTER_B2T,
|
466
|
+
RASTER_T2B,
|
467
|
+
RASTER_HATCH,
|
468
|
+
RASTER_CROSSOVER,
|
469
|
+
RASTER_GREEDY_H,
|
470
|
+
):
|
437
471
|
horizontal = True
|
438
472
|
if direction in (RASTER_T2B, RASTER_CROSSOVER):
|
439
473
|
start_on_top = True
|
@@ -494,7 +528,7 @@ class ImageOpNode(Node, Parameters):
|
|
494
528
|
gres = 0
|
495
529
|
if gres > 255:
|
496
530
|
gres = 255
|
497
|
-
stepsize = 255 /
|
531
|
+
stepsize = 255 / gres
|
498
532
|
|
499
533
|
# no need for the filter as we have already moved every
|
500
534
|
# pixel during preprocessing to either 255 or 0
|
@@ -607,27 +641,42 @@ class ImageOpNode(Node, Parameters):
|
|
607
641
|
else:
|
608
642
|
# Create Cut Object for regular image
|
609
643
|
image_filter = None
|
610
|
-
do_optimize = self.raster_direction in (
|
644
|
+
do_optimize = self.raster_direction in (
|
645
|
+
RASTER_GREEDY_H,
|
646
|
+
RASTER_GREEDY_V,
|
647
|
+
)
|
611
648
|
if do_optimize:
|
612
649
|
# get some image statistics
|
613
650
|
white_pixels = 0
|
614
651
|
used_colors = pil_image.getcolors()
|
615
652
|
for col_count, col in used_colors:
|
616
|
-
if col==255:
|
653
|
+
if col == 255:
|
617
654
|
white_pixels = col_count
|
618
655
|
break
|
619
|
-
white_pixel_ratio = white_pixels / (
|
656
|
+
white_pixel_ratio = white_pixels / (
|
657
|
+
pil_image.width * pil_image.height
|
658
|
+
)
|
620
659
|
# print (f"white pixels: {white_pixels}, ratio = {white_pixel_ratio:.3f}")
|
621
660
|
if white_pixel_ratio < 0.3:
|
622
|
-
self.raster_direction =
|
661
|
+
self.raster_direction = (
|
662
|
+
RASTER_T2B
|
663
|
+
if self.raster_direction == RASTER_GREEDY_H
|
664
|
+
else RASTER_L2R
|
665
|
+
)
|
623
666
|
|
624
|
-
if self.raster_direction in (
|
667
|
+
if self.raster_direction in (
|
668
|
+
RASTER_CROSSOVER,
|
669
|
+
RASTER_SPIRAL,
|
670
|
+
): # Crossover - need both
|
625
671
|
settings["raster_step_x"] = step_x
|
626
672
|
settings["raster_step_y"] = step_y
|
627
|
-
if
|
673
|
+
if (
|
674
|
+
self.raster_direction == RASTER_CROSSOVER
|
675
|
+
and "split_crossover" in self._instructions
|
676
|
+
):
|
628
677
|
self._instructions["mode_filter"] = "ROW"
|
629
|
-
horizontal=True
|
630
|
-
bidirectional=True
|
678
|
+
horizontal = True
|
679
|
+
bidirectional = True
|
631
680
|
start_on_top = True
|
632
681
|
start_on_left = True
|
633
682
|
if horizontal:
|
@@ -666,7 +715,7 @@ class ImageOpNode(Node, Parameters):
|
|
666
715
|
cutcodes.append(cut)
|
667
716
|
|
668
717
|
# Now set it for the next pass
|
669
|
-
horizontal=False
|
718
|
+
horizontal = False
|
670
719
|
if horizontal:
|
671
720
|
# Raster step is only along y for horizontal raster
|
672
721
|
settings["raster_step_x"] = 0
|
@@ -701,7 +750,7 @@ class ImageOpNode(Node, Parameters):
|
|
701
750
|
)
|
702
751
|
cut.path = path
|
703
752
|
cut.original_op = self.type
|
704
|
-
|
753
|
+
cutcodes.append(cut)
|
705
754
|
if self.raster_direction == RASTER_HATCH:
|
706
755
|
# Create optional crosshatch cut
|
707
756
|
direction = RASTER_L2R if start_on_left else RASTER_R2L
|
@@ -750,6 +799,11 @@ class ImageOpNode(Node, Parameters):
|
|
750
799
|
self._bounds = None
|
751
800
|
if self.output:
|
752
801
|
if self._children:
|
753
|
-
self._bounds = Node.union_bounds(
|
802
|
+
self._bounds = Node.union_bounds(
|
803
|
+
self._children,
|
804
|
+
bounds=self._bounds,
|
805
|
+
ignore_locked=False,
|
806
|
+
ignore_hidden=True,
|
807
|
+
)
|
754
808
|
self._bounds_dirty = False
|
755
809
|
return self._bounds
|