meerk40t 0.9.7040__tar.gz → 0.9.7050__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.
Files changed (486) hide show
  1. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/PKG-INFO +1 -1
  2. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/balormk/controller.py +10 -2
  3. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/cutplan.py +1 -36
  4. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/elements/shapes.py +7 -40
  5. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/node/blobnode.py +19 -4
  6. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/planner.py +25 -11
  7. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/grbl/device.py +15 -1
  8. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/grbl/driver.py +15 -5
  9. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/laserpanel.py +19 -0
  10. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/materialtest.py +474 -405
  11. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/propertypanels/wobbleproperty.py +6 -2
  12. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/spoolerpanel.py +27 -7
  13. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/wxutils.py +226 -0
  14. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/kernel/kernel.py +28 -0
  15. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/main.py +14 -9
  16. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/ruida/loader.py +3 -1
  17. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/ruida/rdjob.py +48 -8
  18. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/tools/geomstr.py +93 -44
  19. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/tools/rasterplotter.py +6 -1
  20. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t.egg-info/PKG-INFO +1 -1
  21. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/setup.cfg +1 -1
  22. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/LICENSE +0 -0
  23. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/README.md +0 -0
  24. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/__init__.py +0 -0
  25. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/balormk/__init__.py +0 -0
  26. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/balormk/balor_params.py +0 -0
  27. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/balormk/clone_loader.py +0 -0
  28. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/balormk/cylindermod.py +0 -0
  29. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/balormk/device.py +0 -0
  30. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/balormk/driver.py +0 -0
  31. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/balormk/galvo_commands.py +0 -0
  32. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/balormk/gui/__init__.py +0 -0
  33. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/balormk/gui/balorconfig.py +0 -0
  34. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/balormk/gui/balorcontroller.py +0 -0
  35. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/balormk/gui/baloroperationproperties.py +0 -0
  36. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/balormk/gui/corscene.py +0 -0
  37. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/balormk/gui/gui.py +0 -0
  38. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/balormk/livelightjob.py +0 -0
  39. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/balormk/mock_connection.py +0 -0
  40. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/balormk/plugin.py +0 -0
  41. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/balormk/usb_connection.py +0 -0
  42. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/camera/__init__.py +0 -0
  43. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/camera/camera.py +0 -0
  44. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/camera/gui/__init__.py +0 -0
  45. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/camera/gui/camerapanel.py +0 -0
  46. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/camera/gui/gui.py +0 -0
  47. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/camera/plugin.py +0 -0
  48. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/ch341/__init__.py +0 -0
  49. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/ch341/ch341device.py +0 -0
  50. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/ch341/libusb.py +0 -0
  51. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/ch341/mock.py +0 -0
  52. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/ch341/windriver.py +0 -0
  53. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/constants.py +0 -0
  54. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/__init__.py +0 -0
  55. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/bindalias.py +0 -0
  56. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/core.py +0 -0
  57. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/cutcode/__init__.py +0 -0
  58. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/cutcode/cubiccut.py +0 -0
  59. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/cutcode/cutcode.py +0 -0
  60. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/cutcode/cutgroup.py +0 -0
  61. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/cutcode/cutobject.py +0 -0
  62. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/cutcode/dwellcut.py +0 -0
  63. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/cutcode/gotocut.py +0 -0
  64. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/cutcode/homecut.py +0 -0
  65. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/cutcode/inputcut.py +0 -0
  66. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/cutcode/linecut.py +0 -0
  67. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/cutcode/outputcut.py +0 -0
  68. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/cutcode/plotcut.py +0 -0
  69. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/cutcode/quadcut.py +0 -0
  70. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/cutcode/rastercut.py +0 -0
  71. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/cutcode/waitcut.py +0 -0
  72. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/drivers.py +0 -0
  73. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/elements/__init__.py +0 -0
  74. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/elements/align.py +0 -0
  75. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/elements/branches.py +0 -0
  76. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/elements/clipboard.py +0 -0
  77. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/elements/element_treeops.py +0 -0
  78. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/elements/element_types.py +0 -0
  79. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/elements/elements.py +0 -0
  80. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/elements/files.py +0 -0
  81. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/elements/geometry.py +0 -0
  82. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/elements/grid.py +0 -0
  83. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/elements/materials.py +0 -0
  84. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/elements/notes.py +0 -0
  85. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/elements/offset_clpr.py +0 -0
  86. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/elements/offset_mk.py +0 -0
  87. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/elements/penbox.py +0 -0
  88. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/elements/placements.py +0 -0
  89. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/elements/render.py +0 -0
  90. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/elements/testcases.py +0 -0
  91. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/elements/trace.py +0 -0
  92. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/elements/tree_commands.py +0 -0
  93. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/elements/undo_redo.py +0 -0
  94. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/elements/wordlist.py +0 -0
  95. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/exceptions.py +0 -0
  96. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/laserjob.py +0 -0
  97. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/logging.py +0 -0
  98. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/node/__init__.py +0 -0
  99. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/node/bootstrap.py +0 -0
  100. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/node/branch_elems.py +0 -0
  101. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/node/branch_ops.py +0 -0
  102. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/node/branch_regmark.py +0 -0
  103. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/node/cutnode.py +0 -0
  104. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/node/effect_hatch.py +0 -0
  105. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/node/effect_warp.py +0 -0
  106. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/node/effect_wobble.py +0 -0
  107. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/node/elem_ellipse.py +0 -0
  108. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/node/elem_image.py +0 -0
  109. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/node/elem_line.py +0 -0
  110. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/node/elem_path.py +0 -0
  111. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/node/elem_point.py +0 -0
  112. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/node/elem_polyline.py +0 -0
  113. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/node/elem_rect.py +0 -0
  114. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/node/elem_text.py +0 -0
  115. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/node/filenode.py +0 -0
  116. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/node/groupnode.py +0 -0
  117. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/node/image_processed.py +0 -0
  118. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/node/image_raster.py +0 -0
  119. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/node/layernode.py +0 -0
  120. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/node/mixins.py +0 -0
  121. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/node/node.py +0 -0
  122. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/node/nutils.py +0 -0
  123. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/node/op_cut.py +0 -0
  124. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/node/op_dots.py +0 -0
  125. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/node/op_engrave.py +0 -0
  126. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/node/op_image.py +0 -0
  127. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/node/op_raster.py +0 -0
  128. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/node/place_current.py +0 -0
  129. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/node/place_point.py +0 -0
  130. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/node/refnode.py +0 -0
  131. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/node/rootnode.py +0 -0
  132. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/node/util_console.py +0 -0
  133. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/node/util_goto.py +0 -0
  134. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/node/util_home.py +0 -0
  135. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/node/util_input.py +0 -0
  136. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/node/util_output.py +0 -0
  137. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/node/util_wait.py +0 -0
  138. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/parameters.py +0 -0
  139. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/plotplanner.py +0 -0
  140. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/space.py +0 -0
  141. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/spoolers.py +0 -0
  142. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/svg_io.py +0 -0
  143. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/treeop.py +0 -0
  144. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/undos.py +0 -0
  145. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/units.py +0 -0
  146. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/view.py +0 -0
  147. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/webhelp.py +0 -0
  148. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/core/wordlist.py +0 -0
  149. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/cylinder/__init__.py +0 -0
  150. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/cylinder/cylinder.py +0 -0
  151. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/cylinder/gui/__init__.py +0 -0
  152. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/cylinder/gui/cylindersettings.py +0 -0
  153. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/cylinder/gui/gui.py +0 -0
  154. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/device/__init__.py +0 -0
  155. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/device/basedevice.py +0 -0
  156. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/device/devicechoices.py +0 -0
  157. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/device/dummydevice.py +0 -0
  158. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/device/gui/__init__.py +0 -0
  159. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/device/gui/defaultactions.py +0 -0
  160. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/device/gui/effectspanel.py +0 -0
  161. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/device/gui/formatterpanel.py +0 -0
  162. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/device/gui/warningpanel.py +0 -0
  163. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/device/mixins.py +0 -0
  164. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/dxf/__init__.py +0 -0
  165. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/dxf/dxf_io.py +0 -0
  166. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/dxf/plugin.py +0 -0
  167. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/external_plugins.py +0 -0
  168. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/external_plugins_build.py +0 -0
  169. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/extra/__init__.py +0 -0
  170. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/extra/cag.py +0 -0
  171. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/extra/coolant.py +0 -0
  172. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/extra/encode_detect.py +0 -0
  173. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/extra/ezd.py +0 -0
  174. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/extra/hershey.py +0 -0
  175. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/extra/imageactions.py +0 -0
  176. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/extra/inkscape.py +0 -0
  177. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/extra/lbrn.py +0 -0
  178. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/extra/mk_potrace.py +0 -0
  179. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/extra/outerworld.py +0 -0
  180. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/extra/param_functions.py +0 -0
  181. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/extra/potrace.py +0 -0
  182. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/extra/serial_exchange.py +0 -0
  183. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/extra/updater.py +0 -0
  184. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/extra/vectrace.py +0 -0
  185. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/extra/vtracer.py +0 -0
  186. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/extra/winsleep.py +0 -0
  187. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/extra/xcs_reader.py +0 -0
  188. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/fill/__init__.py +0 -0
  189. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/fill/fills.py +0 -0
  190. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/fill/patternfill.py +0 -0
  191. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/fill/patterns.py +0 -0
  192. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/grbl/__init__.py +0 -0
  193. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/grbl/control.py +0 -0
  194. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/grbl/controller.py +0 -0
  195. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/grbl/emulator.py +0 -0
  196. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/grbl/gcodejob.py +0 -0
  197. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/grbl/gui/__init__.py +0 -0
  198. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/grbl/gui/grblconfiguration.py +0 -0
  199. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/grbl/gui/grblcontroller.py +0 -0
  200. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/grbl/gui/grblhardwareconfig.py +0 -0
  201. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/grbl/gui/grbloperationconfig.py +0 -0
  202. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/grbl/gui/gui.py +0 -0
  203. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/grbl/interpreter.py +0 -0
  204. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/grbl/loader.py +0 -0
  205. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/grbl/mock_connection.py +0 -0
  206. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/grbl/plugin.py +0 -0
  207. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/grbl/serial_connection.py +0 -0
  208. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/grbl/tcp_connection.py +0 -0
  209. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/grbl/ws_connection.py +0 -0
  210. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/__init__.py +0 -0
  211. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/about.py +0 -0
  212. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/alignment.py +0 -0
  213. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/autoexec.py +0 -0
  214. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/basicops.py +0 -0
  215. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/bufferview.py +0 -0
  216. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/busy.py +0 -0
  217. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/choicepropertypanel.py +0 -0
  218. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/consolepanel.py +0 -0
  219. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/devicepanel.py +0 -0
  220. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/dialogoptions.py +0 -0
  221. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/executejob.py +0 -0
  222. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/fonts.py +0 -0
  223. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/functionwrapper.py +0 -0
  224. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/gui_mixins.py +0 -0
  225. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/guicolors.py +0 -0
  226. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/help_assets/__init__.py +0 -0
  227. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/help_assets/help_assets.py +0 -0
  228. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/helper.py +0 -0
  229. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/hersheymanager.py +0 -0
  230. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/icons.py +0 -0
  231. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/imagesplitter.py +0 -0
  232. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/keymap.py +0 -0
  233. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/laserrender.py +0 -0
  234. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/lasertoolpanel.py +0 -0
  235. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/magnetoptions.py +0 -0
  236. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/materialmanager.py +0 -0
  237. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/mkdebug.py +0 -0
  238. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/mwindow.py +0 -0
  239. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/navigationpanels.py +0 -0
  240. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/notes.py +0 -0
  241. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/opassignment.py +0 -0
  242. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/operation_info.py +0 -0
  243. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/plugin.py +0 -0
  244. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/position.py +0 -0
  245. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/preferences.py +0 -0
  246. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/propertypanels/__init__.py +0 -0
  247. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/propertypanels/attributes.py +0 -0
  248. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/propertypanels/blobproperty.py +0 -0
  249. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/propertypanels/consoleproperty.py +0 -0
  250. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/propertypanels/gotoproperty.py +0 -0
  251. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/propertypanels/groupproperties.py +0 -0
  252. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/propertypanels/hatchproperty.py +0 -0
  253. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/propertypanels/imageproperty.py +0 -0
  254. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/propertypanels/inputproperty.py +0 -0
  255. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/propertypanels/opbranchproperties.py +0 -0
  256. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/propertypanels/operationpropertymain.py +0 -0
  257. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/propertypanels/outputproperty.py +0 -0
  258. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/propertypanels/pathproperty.py +0 -0
  259. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/propertypanels/placementproperty.py +0 -0
  260. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/propertypanels/pointproperty.py +0 -0
  261. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/propertypanels/propertywindow.py +0 -0
  262. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/propertypanels/rasterwizardpanels.py +0 -0
  263. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/propertypanels/regbranchproperties.py +0 -0
  264. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/propertypanels/textproperty.py +0 -0
  265. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/propertypanels/waitproperty.py +0 -0
  266. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/propertypanels/warpproperty.py +0 -0
  267. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/ribbon.py +0 -0
  268. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/scene/__init__.py +0 -0
  269. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/scene/scene.py +0 -0
  270. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/scene/sceneconst.py +0 -0
  271. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/scene/scenepanel.py +0 -0
  272. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/scene/scenespacewidget.py +0 -0
  273. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/scene/widget.py +0 -0
  274. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/scenewidgets/__init__.py +0 -0
  275. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/scenewidgets/affinemover.py +0 -0
  276. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/scenewidgets/attractionwidget.py +0 -0
  277. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/scenewidgets/bedwidget.py +0 -0
  278. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/scenewidgets/elementswidget.py +0 -0
  279. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/scenewidgets/gridwidget.py +0 -0
  280. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/scenewidgets/guidewidget.py +0 -0
  281. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/scenewidgets/laserpathwidget.py +0 -0
  282. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/scenewidgets/machineoriginwidget.py +0 -0
  283. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/scenewidgets/nodeselector.py +0 -0
  284. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/scenewidgets/rectselectwidget.py +0 -0
  285. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/scenewidgets/relocatewidget.py +0 -0
  286. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/scenewidgets/reticlewidget.py +0 -0
  287. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/scenewidgets/selectionwidget.py +0 -0
  288. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/simpleui.py +0 -0
  289. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/simulation.py +0 -0
  290. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/snapoptions.py +0 -0
  291. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/statusbarwidgets/__init__.py +0 -0
  292. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/statusbarwidgets/defaultoperations.py +0 -0
  293. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/statusbarwidgets/infowidget.py +0 -0
  294. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/statusbarwidgets/opassignwidget.py +0 -0
  295. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/statusbarwidgets/selectionwidget.py +0 -0
  296. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/statusbarwidgets/shapepropwidget.py +0 -0
  297. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/statusbarwidgets/statusbar.py +0 -0
  298. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/statusbarwidgets/statusbarwidget.py +0 -0
  299. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/statusbarwidgets/strokewidget.py +0 -0
  300. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/themes.py +0 -0
  301. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/tips.py +0 -0
  302. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/toolwidgets/__init__.py +0 -0
  303. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/toolwidgets/circlebrush.py +0 -0
  304. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/toolwidgets/toolcircle.py +0 -0
  305. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/toolwidgets/toolcontainer.py +0 -0
  306. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/toolwidgets/tooldraw.py +0 -0
  307. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/toolwidgets/toolellipse.py +0 -0
  308. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/toolwidgets/toolimagecut.py +0 -0
  309. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/toolwidgets/toolline.py +0 -0
  310. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/toolwidgets/toollinetext.py +0 -0
  311. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/toolwidgets/toollinetext_inline.py +0 -0
  312. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/toolwidgets/toolmeasure.py +0 -0
  313. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/toolwidgets/toolnodeedit.py +0 -0
  314. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/toolwidgets/toolnodemove.py +0 -0
  315. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/toolwidgets/toolparameter.py +0 -0
  316. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/toolwidgets/toolplacement.py +0 -0
  317. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/toolwidgets/toolpoint.py +0 -0
  318. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/toolwidgets/toolpointlistbuilder.py +0 -0
  319. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/toolwidgets/toolpointmove.py +0 -0
  320. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/toolwidgets/toolpolygon.py +0 -0
  321. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/toolwidgets/toolpolyline.py +0 -0
  322. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/toolwidgets/toolrect.py +0 -0
  323. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/toolwidgets/toolrelocate.py +0 -0
  324. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/toolwidgets/toolribbon.py +0 -0
  325. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/toolwidgets/tooltabedit.py +0 -0
  326. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/toolwidgets/tooltext.py +0 -0
  327. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/toolwidgets/toolvector.py +0 -0
  328. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/toolwidgets/toolwidget.py +0 -0
  329. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/usbconnect.py +0 -0
  330. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/utilitywidgets/__init__.py +0 -0
  331. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/utilitywidgets/buttonwidget.py +0 -0
  332. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/utilitywidgets/checkboxwidget.py +0 -0
  333. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/utilitywidgets/controlwidget.py +0 -0
  334. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/utilitywidgets/cyclocycloidwidget.py +0 -0
  335. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/utilitywidgets/debugwidgets.py +0 -0
  336. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/utilitywidgets/handlewidget.py +0 -0
  337. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/utilitywidgets/harmonograph.py +0 -0
  338. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/utilitywidgets/openclosewidget.py +0 -0
  339. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/utilitywidgets/rotationwidget.py +0 -0
  340. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/utilitywidgets/scalewidget.py +0 -0
  341. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/utilitywidgets/seekbarwidget.py +0 -0
  342. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/utilitywidgets/togglewidget.py +0 -0
  343. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/utilitywidgets/toolbarwidget.py +0 -0
  344. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/wordlisteditor.py +0 -0
  345. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/wxmeerk40t.py +0 -0
  346. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/wxmmain.py +0 -0
  347. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/wxmribbon.py +0 -0
  348. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/wxmscene.py +0 -0
  349. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/wxmtree.py +0 -0
  350. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/gui/zmatrix.py +0 -0
  351. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/image/__init__.py +0 -0
  352. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/image/dither.py +0 -0
  353. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/image/imagetools.py +0 -0
  354. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/internal_plugins.py +0 -0
  355. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/kernel/__init__.py +0 -0
  356. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/kernel/channel.py +0 -0
  357. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/kernel/context.py +0 -0
  358. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/kernel/exceptions.py +0 -0
  359. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/kernel/functions.py +0 -0
  360. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/kernel/jobs.py +0 -0
  361. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/kernel/lifecycles.py +0 -0
  362. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/kernel/module.py +0 -0
  363. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/kernel/service.py +0 -0
  364. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/kernel/settings.py +0 -0
  365. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/kernel/states.py +0 -0
  366. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/lihuiyu/__init__.py +0 -0
  367. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/lihuiyu/controller.py +0 -0
  368. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/lihuiyu/device.py +0 -0
  369. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/lihuiyu/driver.py +0 -0
  370. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/lihuiyu/gui/__init__.py +0 -0
  371. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/lihuiyu/gui/gui.py +0 -0
  372. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/lihuiyu/gui/lhyaccelgui.py +0 -0
  373. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/lihuiyu/gui/lhycontrollergui.py +0 -0
  374. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/lihuiyu/gui/lhydrivergui.py +0 -0
  375. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/lihuiyu/gui/lhyoperationproperties.py +0 -0
  376. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/lihuiyu/gui/tcpcontroller.py +0 -0
  377. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/lihuiyu/interpreter.py +0 -0
  378. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/lihuiyu/laserspeed.py +0 -0
  379. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/lihuiyu/loader.py +0 -0
  380. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/lihuiyu/parser.py +0 -0
  381. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/lihuiyu/plugin.py +0 -0
  382. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/lihuiyu/tcp_connection.py +0 -0
  383. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/moshi/__init__.py +0 -0
  384. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/moshi/builder.py +0 -0
  385. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/moshi/controller.py +0 -0
  386. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/moshi/device.py +0 -0
  387. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/moshi/driver.py +0 -0
  388. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/moshi/gui/__init__.py +0 -0
  389. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/moshi/gui/gui.py +0 -0
  390. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/moshi/gui/moshicontrollergui.py +0 -0
  391. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/moshi/gui/moshidrivergui.py +0 -0
  392. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/moshi/plugin.py +0 -0
  393. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/network/__init__.py +0 -0
  394. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/network/console_server.py +0 -0
  395. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/network/kernelserver.py +0 -0
  396. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/network/tcp_server.py +0 -0
  397. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/network/udp_server.py +0 -0
  398. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/network/web_server.py +0 -0
  399. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/newly/__init__.py +0 -0
  400. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/newly/controller.py +0 -0
  401. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/newly/device.py +0 -0
  402. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/newly/driver.py +0 -0
  403. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/newly/gui/__init__.py +0 -0
  404. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/newly/gui/gui.py +0 -0
  405. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/newly/gui/newlyconfig.py +0 -0
  406. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/newly/gui/newlycontroller.py +0 -0
  407. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/newly/gui/operationproperties.py +0 -0
  408. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/newly/mock_connection.py +0 -0
  409. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/newly/newly_params.py +0 -0
  410. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/newly/plugin.py +0 -0
  411. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/newly/usb_connection.py +0 -0
  412. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/rotary/__init__.py +0 -0
  413. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/rotary/gui/__init__.py +0 -0
  414. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/rotary/gui/gui.py +0 -0
  415. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/rotary/gui/rotarysettings.py +0 -0
  416. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/rotary/rotary.py +0 -0
  417. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/ruida/__init__.py +0 -0
  418. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/ruida/control.py +0 -0
  419. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/ruida/controller.py +0 -0
  420. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/ruida/device.py +0 -0
  421. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/ruida/driver.py +0 -0
  422. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/ruida/emulator.py +0 -0
  423. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/ruida/exceptions.py +0 -0
  424. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/ruida/gui/__init__.py +0 -0
  425. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/ruida/gui/gui.py +0 -0
  426. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/ruida/gui/ruidaconfig.py +0 -0
  427. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/ruida/gui/ruidacontroller.py +0 -0
  428. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/ruida/gui/ruidaoperationproperties.py +0 -0
  429. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/ruida/mock_connection.py +0 -0
  430. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/ruida/plugin.py +0 -0
  431. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/ruida/serial_connection.py +0 -0
  432. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/ruida/tcp_connection.py +0 -0
  433. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/ruida/udp_connection.py +0 -0
  434. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/svgelements.py +0 -0
  435. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/tools/__init__.py +0 -0
  436. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/tools/driver_to_path.py +0 -0
  437. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/tools/jhfparser.py +0 -0
  438. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/tools/kerftest.py +0 -0
  439. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/tools/livinghinges.py +0 -0
  440. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/tools/pathtools.py +0 -0
  441. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/tools/pmatrix.py +0 -0
  442. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/tools/pointfinder.py +0 -0
  443. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/tools/polybool.py +0 -0
  444. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/tools/shxparser.py +0 -0
  445. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/tools/ttfparser.py +0 -0
  446. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t/tools/zinglplotter.py +0 -0
  447. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t.egg-info/SOURCES.txt +0 -0
  448. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t.egg-info/dependency_links.txt +0 -0
  449. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t.egg-info/entry_points.txt +0 -0
  450. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t.egg-info/requires.txt +0 -0
  451. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t.egg-info/top_level.txt +0 -0
  452. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/meerk40t.egg-info/zip-safe +0 -0
  453. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/pyproject.toml +0 -0
  454. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/setup.py +0 -0
  455. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/test/test_cli.py +0 -0
  456. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/test/test_core_cutcode.py +0 -0
  457. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/test/test_core_elements.py +0 -0
  458. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/test/test_core_plotplanner.py +0 -0
  459. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/test/test_core_viewports.py +0 -0
  460. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/test/test_drivers_galvo.py +0 -0
  461. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/test/test_drivers_grbl.py +0 -0
  462. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/test/test_drivers_lihuiyu.py +0 -0
  463. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/test/test_drivers_moshi.py +0 -0
  464. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/test/test_drivers_newly.py +0 -0
  465. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/test/test_element_degenerate_points.py +0 -0
  466. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/test/test_elements_classify.py +0 -0
  467. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/test/test_elements_penbox.py +0 -0
  468. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/test/test_file_svg.py +0 -0
  469. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/test/test_fill.py +0 -0
  470. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/test/test_geomstr.py +0 -0
  471. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/test/test_geomstr_nodes.py +0 -0
  472. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/test/test_imagetools_actualize.py +0 -0
  473. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/test/test_imagetools_wizard.py +0 -0
  474. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/test/test_kernel.py +0 -0
  475. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/test/test_laser_speeds.py +0 -0
  476. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/test/test_length.py +0 -0
  477. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/test/test_lifecycle.py +0 -0
  478. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/test/test_operations.py +0 -0
  479. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/test/test_operations_hatch.py +0 -0
  480. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/test/test_pmatrix.py +0 -0
  481. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/test/test_ruida.py +0 -0
  482. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/test/test_spooler.py +0 -0
  483. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/test/test_tools_rasterplotter.py +0 -0
  484. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/test/test_units_angle.py +0 -0
  485. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/test/test_wobble.py +0 -0
  486. {meerk40t-0.9.7040 → meerk40t-0.9.7050}/test/test_zingl.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: meerk40t
3
- Version: 0.9.7040
3
+ Version: 0.9.7050
4
4
  Summary: MeerK40t LaserCutter Software
5
5
  Home-page: https://github.com/meerk40t/meerk40t
6
6
  Author: Tatarize
@@ -1003,7 +1003,11 @@ class GalvoController:
1003
1003
  def get_scale_from_correction_file(filename):
1004
1004
  with open(filename, "rb") as f:
1005
1005
  label = f.read(0x16)
1006
- if label.decode("utf-16") == "LMC1COR_1.0":
1006
+ try:
1007
+ decoded_label = label.decode("utf-16")
1008
+ except UnicodeDecodeError:
1009
+ decoded_label = label.decode("utf-8", errors="ignore")
1010
+ if decoded_label == "LMC1COR_1.0":
1007
1011
  unk = f.read(2)
1008
1012
  return struct.unpack("63d", f.read(0x1F8))[43]
1009
1013
  else:
@@ -1049,7 +1053,11 @@ class GalvoController:
1049
1053
  """
1050
1054
  with open(filename, "rb") as f:
1051
1055
  label = f.read(0x16)
1052
- if label.decode("utf-16") == "LMC1COR_1.0":
1056
+ try:
1057
+ decoded_label = label.decode("utf-16")
1058
+ except UnicodeDecodeError:
1059
+ decoded_label = label.decode("utf-8", errors="ignore")
1060
+ if decoded_label == "LMC1COR_1.0":
1053
1061
  header = f.read(0x1FA)
1054
1062
  return self._read_float_correction_file(f)
1055
1063
  else:
@@ -24,7 +24,7 @@ from typing import Optional
24
24
  import numpy as np
25
25
 
26
26
  from ..svgelements import Group, Matrix, Path, Polygon
27
- from ..tools.geomstr import Geomstr, stitch_geometries
27
+ from ..tools.geomstr import Geomstr, stitch_geometries, stitcheable_nodes
28
28
  from ..tools.pathtools import VectorMontonizer
29
29
  from .cutcode.cutcode import CutCode
30
30
  from .cutcode.cutgroup import CutGroup
@@ -265,41 +265,6 @@ class CutPlan:
265
265
  stitch_tolerance = 0
266
266
  default_stroke = None
267
267
  default_strokewidth = None
268
-
269
- def stitcheable_nodes(data, tolerance) -> list:
270
- out = []
271
- geoms = []
272
- # Store all geometries together with an indicator, to which node they belong
273
- for idx, node in enumerate(data):
274
- if not hasattr(node, "as_geometry"):
275
- continue
276
- for g1 in node.as_geometry().as_contiguous():
277
- geoms.append((idx, g1))
278
- for idx1, (nodeidx1, g1) in enumerate(geoms):
279
- for idx2 in range(idx1 + 1, len(geoms)):
280
- nodeidx2 = geoms[idx2][0]
281
- g2 = geoms[idx2][1]
282
- fp1 = g1.first_point
283
- fp2 = g2.first_point
284
- lp1 = g1.last_point
285
- lp2 = g2.last_point
286
- if fp1 is None or fp2 is None:
287
- continue
288
- if lp1 is None or lp2 is None:
289
- continue
290
- if (
291
- abs(lp1 - lp2) <= tolerance
292
- or abs(lp1 - fp2) <= tolerance
293
- or abs(fp1 - fp2) <= tolerance
294
- or abs(fp1 - lp2) <= tolerance
295
- ):
296
- if nodeidx1 not in out:
297
- out.append(nodeidx1)
298
- if nodeidx2 not in out:
299
- out.append(nodeidx2)
300
-
301
- return [data[idx] for idx in out]
302
-
303
268
  geoms = []
304
269
  to_be_deleted = []
305
270
  data = stitcheable_nodes(list(op.flat()), stitch_tolerance)
@@ -66,7 +66,7 @@ from meerk40t.svgelements import (
66
66
  Polygon,
67
67
  Polyline,
68
68
  )
69
- from meerk40t.tools.geomstr import Geomstr, stitch_geometries
69
+ from meerk40t.tools.geomstr import Geomstr, stitch_geometries, stitcheable_nodes
70
70
 
71
71
 
72
72
  def plugin(kernel, lifecycle=None):
@@ -2778,38 +2778,6 @@ def init_commands(kernel):
2778
2778
  return data, tolerance, keep, False
2779
2779
  return data, tolerance_val, keep, True
2780
2780
 
2781
- def stitcheable_nodes(data, tolerance) -> list:
2782
- out = []
2783
- geoms = []
2784
- # Store all geometries together with an indicator, to which node they belong
2785
- for idx, node in enumerate(data):
2786
- if not hasattr(node, "as_geometry"):
2787
- continue
2788
- for g1 in node.as_geometry().as_contiguous():
2789
- geoms.append((idx, g1))
2790
- if tolerance == 0:
2791
- tolerance = 1e-6
2792
- for idx1, (nodeidx1, g1) in enumerate(geoms):
2793
- for idx2 in range(idx1 + 1, len(geoms)):
2794
- nodeidx2 = geoms[idx2][0]
2795
- g2 = geoms[idx2][1]
2796
- fp1 = g1.first_point
2797
- fp2 = g2.first_point
2798
- lp1 = g1.last_point
2799
- lp2 = g2.last_point
2800
- if (
2801
- abs(lp1 - lp2) <= tolerance
2802
- or abs(lp1 - fp2) <= tolerance
2803
- or abs(fp1 - fp2) <= tolerance
2804
- or abs(fp1 - lp2) <= tolerance
2805
- ):
2806
- if nodeidx1 not in out:
2807
- out.append(nodeidx1)
2808
- if nodeidx2 not in out:
2809
- out.append(nodeidx2)
2810
-
2811
- return [data[idx] for idx in out]
2812
-
2813
2781
  data, tolerance, keep, valid = _prepare_stitching_params(
2814
2782
  channel, data, tolerance, keep
2815
2783
  )
@@ -2829,13 +2797,12 @@ def init_commands(kernel):
2829
2797
  default_strokewidth = None
2830
2798
  default_fill = None
2831
2799
  for node in s_data:
2832
- if hasattr(node, "as_geometry"):
2833
- geom: Geomstr = node.as_geometry()
2834
- geoms.extend(iter(geom.as_contiguous()))
2835
- if default_stroke is None and hasattr(node, "stroke"):
2836
- default_stroke = node.stroke
2837
- if default_strokewidth is None and hasattr(node, "stroke_width"):
2838
- default_strokewidth = node.stroke_width
2800
+ geom: Geomstr = node.as_geometry()
2801
+ geoms.extend(iter(geom.as_contiguous()))
2802
+ if default_stroke is None and hasattr(node, "stroke"):
2803
+ default_stroke = node.stroke
2804
+ if default_strokewidth is None and hasattr(node, "stroke_width"):
2805
+ default_strokewidth = node.stroke_width
2839
2806
  to_be_deleted.append(node)
2840
2807
  prev_len = len(geoms)
2841
2808
  if geoms:
@@ -41,8 +41,15 @@ class BlobNode(Node):
41
41
  return False
42
42
 
43
43
  @staticmethod
44
- def hex_view(data, data_type):
45
- header1 = f"Data-Type: {data_type}, Length={len(data)}\n"
44
+ def hex_view(data, data_type, info=''):
45
+ """
46
+ Render a hex dump with an optional info header.
47
+
48
+ data: bytes to display
49
+ data_type: mime type
50
+ info: an arbitrary string to append to the end of first line of header
51
+ """
52
+ header1 = f"Data-Type: {data_type}, Length={len(data)}{info}\n"
46
53
  header2 = "Offset | Hex | Ascii \n"
47
54
  header2 += "-------+-------------------------------------------------+----------------\n"
48
55
  if isinstance(data, str):
@@ -70,8 +77,16 @@ class BlobNode(Node):
70
77
  return header1 + header2 + "".join(hex_data)
71
78
 
72
79
  @staticmethod
73
- def ascii_view(data, data_type):
74
- header1 = f"Data-Type: {data_type}, Length={len(data)}\n"
80
+ def ascii_view(data, data_type, info=''):
81
+ """
82
+ Render an ascii view with an optional info header.
83
+
84
+ data: bytes to display
85
+ data_type: mime type
86
+ info: an arbitrary string to append to the end of first line of header
87
+ """
88
+
89
+ header1 = f"Data-Type: {data_type}, Length={len(data)}{info}\n"
75
90
  header2 = "Offset | Hex | Ascii \n"
76
91
  header2 += "-------+-------------------------------------------------+----------------\n"
77
92
  if isinstance(data, str):
@@ -43,7 +43,9 @@ def plugin(kernel, lifecycle=None):
43
43
  },
44
44
  ]
45
45
  kernel.register_choices("planner", choices)
46
-
46
+ INNER_WARNING = _(
47
+ "Notabene: Reduce Travel Time and Burn Inner First cannot be used at the same time."
48
+ )
47
49
  choices = [
48
50
  {
49
51
  "attr": "opt_raster_optimisation",
@@ -97,7 +99,9 @@ def plugin(kernel, lifecycle=None):
97
99
  "When this option IS checked, Meerk40t will burn each subpath "
98
100
  + "and then move to the nearest remaining subpath instead, "
99
101
  + "reducing the time taken moving between burn items."
100
- ),
102
+ )
103
+ + "\n"
104
+ + INNER_WARNING,
101
105
  "page": "Optimisations",
102
106
  "section": "_20_Reducing Movements",
103
107
  },
@@ -187,9 +191,11 @@ def plugin(kernel, lifecycle=None):
187
191
  "default": False,
188
192
  "type": bool,
189
193
  "label": _("Combine path segments"),
190
- "tip":
191
- _("Stitch segments together that are very close (ideally having joint start/end points).") + "\n" +
192
- _("Only inside a single cut/engrave operation."),
194
+ "tip": _(
195
+ "Stitch segments together that are very close (ideally having joint start/end points)."
196
+ )
197
+ + "\n"
198
+ + _("Only inside a single cut/engrave operation."),
193
199
  "page": "Optimisations",
194
200
  "section": "_05_Stitching",
195
201
  },
@@ -199,7 +205,9 @@ def plugin(kernel, lifecycle=None):
199
205
  "default": "0",
200
206
  "type": Length,
201
207
  "label": _("Tolerance"),
202
- "tip": _("Tolerance to decide whether two path segments should be joined."),
208
+ "tip": _(
209
+ "Tolerance to decide whether two path segments should be joined."
210
+ ),
203
211
  "page": "Optimisations",
204
212
  "section": "_05_Stitching",
205
213
  "conditional": (context, "opt_stitching"),
@@ -221,7 +229,9 @@ def plugin(kernel, lifecycle=None):
221
229
  + "* Deselecting Cut Inner First if you are not cutting fully through your material \n"
222
230
  + "* Putting the inner paths into a separate earlier operation(s) and not using Merge Operations or Cut Inner First \n"
223
231
  + "* If you are using multiple passes, check Merge Passes"
224
- ),
232
+ )
233
+ + "\n"
234
+ + INNER_WARNING,
225
235
  "page": "Optimisations",
226
236
  "section": "_10_Burn sequence",
227
237
  },
@@ -285,8 +295,11 @@ def plugin(kernel, lifecycle=None):
285
295
  "type": bool,
286
296
  "label": _("Keep effect lines together"),
287
297
  "tip": (
288
- _("Active: effects like hatches are dealt with as a bigger shape") + "\n" +
289
- _("Inactive: every single line segment will be dealt with individually.")
298
+ _("Active: effects like hatches are dealt with as a bigger shape")
299
+ + "\n"
300
+ + _(
301
+ "Inactive: every single line segment will be dealt with individually."
302
+ )
290
303
  ),
291
304
  "page": "Optimisations",
292
305
  "section": "_25_Effects",
@@ -298,8 +311,9 @@ def plugin(kernel, lifecycle=None):
298
311
  "type": bool,
299
312
  "label": _("Optimize internally"),
300
313
  "tip": (
301
- _("Active: hatch lines will be optimized internally") + "\n" +
302
- _("Inactive: hatch lines will be burnt sequentially.")
314
+ _("Active: hatch lines will be optimized internally")
315
+ + "\n"
316
+ + _("Inactive: hatch lines will be burnt sequentially.")
303
317
  ),
304
318
  "page": "Optimisations",
305
319
  "section": "_25_Effects",
@@ -495,6 +495,19 @@ class GRBLDevice(Service, Status):
495
495
  "section": "_20_" + _("Maximum speeds"),
496
496
  "subsection": "_10_",
497
497
  },
498
+ {
499
+ "attr": "rapid_speed",
500
+ "object": self,
501
+ "default": 600,
502
+ "type": float,
503
+ "label": _("Travel speed"),
504
+ "trailer": "mm/s",
505
+ "tip": _(
506
+ "What is the travel speed for your device to move from point to another."
507
+ ),
508
+ "section": "_25_" + _("Travel"),
509
+ "subsection": "_10_",
510
+ },
498
511
  {
499
512
  "attr": "limit_buffer",
500
513
  "object": self,
@@ -900,7 +913,8 @@ class GRBLDevice(Service, Status):
900
913
  # self.redlight_preferred = True
901
914
  # self.driver.set("power", int(self.red_dot_level / 100 * 1000))
902
915
  self.driver._clean()
903
- self.driver.laser_on(power=int(self.red_dot_level), speed=1000)
916
+ rapid_speed = self.setting(float, "rapid_speed", 600.0)
917
+ self.driver.laser_on(power=int(self.red_dot_level), speed=rapid_speed)
904
918
  # By default, any move is a G0 move which will not activate the laser,
905
919
  # so we need to switch to G1 mode:
906
920
  self.driver.move_mode = 1
@@ -47,7 +47,12 @@ class GRBLDriver(Parameters):
47
47
  self.stepper_step_size = UNITS_PER_MIL
48
48
 
49
49
  self.plot_planner = PlotPlanner(
50
- self.settings, single=True, ppi=False, shift=False, group=True, require_uniform_movement = False,
50
+ self.settings,
51
+ single=True,
52
+ ppi=False,
53
+ shift=False,
54
+ group=True,
55
+ require_uniform_movement=False,
51
56
  )
52
57
  self.queue = []
53
58
  self._queue_current = 0
@@ -407,10 +412,10 @@ class GRBLDriver(Parameters):
407
412
  for q in self.queue:
408
413
  # Are there any custom commands to be executed?
409
414
  # Usecase (as described in issue https://github.com/meerk40t/meerk40t/issues/2764 ):
410
- # Switch between M3 and M4 mode for cut / raster
415
+ # Switch between M3 and M4 mode for cut / raster
411
416
  # M3=used to cut as gantry acceleration doesn't matter on a cut.
412
- # M4=used for Raster/Engrave operations, as grblHAL will
413
- # adjust power based on gantry speed including acceleration.
417
+ # M4=used for Raster/Engrave operations, as grblHAL will
418
+ # adjust power based on gantry speed including acceleration.
414
419
 
415
420
  cmd_string = q.settings.get("custom_commands", "")
416
421
  if cmd_string:
@@ -437,7 +442,7 @@ class GRBLDriver(Parameters):
437
442
  self.on_value = 1.0
438
443
  # Do we have a custom z-Value?
439
444
  # NB: zaxis is not a property inside Parameters like power/or speed
440
- # so we need to deal with it more directly
445
+ # so we need to deal with it more directly
441
446
  # (e.g. self.power is the equivalent to self.settings.["power"]))
442
447
  qzaxis = q.settings.get("zaxis", self.zaxis)
443
448
  if qzaxis != self.zaxis:
@@ -534,6 +539,7 @@ class GRBLDriver(Parameters):
534
539
  PLOT_RAPID | PLOT_JOG
535
540
  ): # Plot planner requests position change.
536
541
  # self.move_mode = 0
542
+ self.rapid_mode()
537
543
  self._move(x, y)
538
544
  continue
539
545
  # if on == 0:
@@ -609,6 +615,10 @@ class GRBLDriver(Parameters):
609
615
  @param values:
610
616
  @return:
611
617
  """
618
+ speedvalue = self.service.setting(float, "rapid_speed", 600.0)
619
+ if self.speed != speedvalue:
620
+ self.speed = speedvalue
621
+ self.speed_dirty = True
612
622
 
613
623
  def finished_mode(self, *values):
614
624
  """
@@ -888,6 +888,25 @@ class OptimizePanel(wx.Panel):
888
888
  self.checkbox_optimize.SetValue(newvalue)
889
889
  self.optimize_panel.Enable(newvalue)
890
890
 
891
+ def ensure_mutually_exclusive(self, prio: str):
892
+ # Ensure that opt_inner_first and opt_reduce_travel are mutually exclusive
893
+ inner_first = self.context.planner.opt_inner_first
894
+ reduce_travel = self.context.planner.opt_reduce_travel
895
+ if inner_first and reduce_travel:
896
+ if prio == "opt_inner_first":
897
+ self.context.planner.opt_reduce_travel = False
898
+ else:
899
+ self.context.planner.opt_inner_first = False
900
+ self.optimize_panel.reload()
901
+
902
+ @signal_listener("opt_inner_first")
903
+ def opt_inner_update(self, origin, *message):
904
+ self.ensure_mutually_exclusive("opt_inner_first")
905
+
906
+ @signal_listener("opt_reduce_travel")
907
+ def opt_reduce_travel_update(self, origin, *message):
908
+ self.ensure_mutually_exclusive("opt_reduce_travel")
909
+
891
910
  def on_optimize(self, event):
892
911
  newvalue = bool(self.checkbox_optimize.GetValue())
893
912
  if newvalue != self.context.planner.do_optimization: