meerk40t 0.9.3001__py2.py3-none-any.whl → 0.9.7010__py2.py3-none-any.whl
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/__init__.py +1 -1
- meerk40t/balormk/balor_params.py +167 -167
- meerk40t/balormk/clone_loader.py +457 -457
- meerk40t/balormk/controller.py +1566 -1512
- meerk40t/balormk/cylindermod.py +64 -0
- meerk40t/balormk/device.py +966 -1959
- meerk40t/balormk/driver.py +778 -591
- meerk40t/balormk/galvo_commands.py +1195 -0
- meerk40t/balormk/gui/balorconfig.py +237 -111
- meerk40t/balormk/gui/balorcontroller.py +191 -184
- meerk40t/balormk/gui/baloroperationproperties.py +116 -115
- meerk40t/balormk/gui/corscene.py +845 -0
- meerk40t/balormk/gui/gui.py +179 -147
- meerk40t/balormk/livelightjob.py +466 -382
- meerk40t/balormk/mock_connection.py +131 -109
- meerk40t/balormk/plugin.py +133 -135
- meerk40t/balormk/usb_connection.py +306 -301
- meerk40t/camera/__init__.py +1 -1
- meerk40t/camera/camera.py +514 -397
- meerk40t/camera/gui/camerapanel.py +1241 -1095
- meerk40t/camera/gui/gui.py +58 -58
- meerk40t/camera/plugin.py +441 -399
- meerk40t/ch341/__init__.py +27 -27
- meerk40t/ch341/ch341device.py +628 -628
- meerk40t/ch341/libusb.py +595 -589
- meerk40t/ch341/mock.py +171 -171
- meerk40t/ch341/windriver.py +157 -157
- meerk40t/constants.py +13 -0
- meerk40t/core/__init__.py +1 -1
- meerk40t/core/bindalias.py +550 -539
- meerk40t/core/core.py +47 -47
- meerk40t/core/cutcode/cubiccut.py +73 -73
- meerk40t/core/cutcode/cutcode.py +315 -312
- meerk40t/core/cutcode/cutgroup.py +141 -137
- meerk40t/core/cutcode/cutobject.py +192 -185
- meerk40t/core/cutcode/dwellcut.py +37 -37
- meerk40t/core/cutcode/gotocut.py +29 -29
- meerk40t/core/cutcode/homecut.py +29 -29
- meerk40t/core/cutcode/inputcut.py +34 -34
- meerk40t/core/cutcode/linecut.py +33 -33
- meerk40t/core/cutcode/outputcut.py +34 -34
- meerk40t/core/cutcode/plotcut.py +335 -335
- meerk40t/core/cutcode/quadcut.py +61 -61
- meerk40t/core/cutcode/rastercut.py +168 -148
- meerk40t/core/cutcode/waitcut.py +34 -34
- meerk40t/core/cutplan.py +1843 -1316
- meerk40t/core/drivers.py +330 -329
- meerk40t/core/elements/align.py +801 -669
- meerk40t/core/elements/branches.py +1844 -1507
- meerk40t/core/elements/clipboard.py +229 -219
- meerk40t/core/elements/element_treeops.py +4561 -2837
- meerk40t/core/elements/element_types.py +125 -105
- meerk40t/core/elements/elements.py +4329 -3617
- meerk40t/core/elements/files.py +117 -64
- meerk40t/core/elements/geometry.py +473 -224
- meerk40t/core/elements/grid.py +467 -316
- meerk40t/core/elements/materials.py +158 -94
- meerk40t/core/elements/notes.py +50 -38
- meerk40t/core/elements/offset_clpr.py +933 -912
- meerk40t/core/elements/offset_mk.py +963 -955
- meerk40t/core/elements/penbox.py +339 -267
- meerk40t/core/elements/placements.py +300 -83
- meerk40t/core/elements/render.py +785 -687
- meerk40t/core/elements/shapes.py +2618 -2092
- meerk40t/core/elements/trace.py +651 -563
- meerk40t/core/elements/tree_commands.py +415 -409
- meerk40t/core/elements/undo_redo.py +116 -58
- meerk40t/core/elements/wordlist.py +319 -200
- meerk40t/core/exceptions.py +9 -9
- meerk40t/core/laserjob.py +220 -220
- meerk40t/core/logging.py +63 -63
- meerk40t/core/node/blobnode.py +83 -86
- meerk40t/core/node/bootstrap.py +105 -103
- meerk40t/core/node/branch_elems.py +40 -31
- meerk40t/core/node/branch_ops.py +45 -38
- meerk40t/core/node/branch_regmark.py +48 -41
- meerk40t/core/node/cutnode.py +29 -32
- meerk40t/core/node/effect_hatch.py +375 -257
- meerk40t/core/node/effect_warp.py +398 -0
- meerk40t/core/node/effect_wobble.py +441 -309
- meerk40t/core/node/elem_ellipse.py +404 -309
- meerk40t/core/node/elem_image.py +1082 -801
- meerk40t/core/node/elem_line.py +358 -292
- meerk40t/core/node/elem_path.py +259 -201
- meerk40t/core/node/elem_point.py +129 -102
- meerk40t/core/node/elem_polyline.py +310 -246
- meerk40t/core/node/elem_rect.py +376 -286
- meerk40t/core/node/elem_text.py +445 -418
- meerk40t/core/node/filenode.py +59 -40
- meerk40t/core/node/groupnode.py +138 -74
- meerk40t/core/node/image_processed.py +777 -766
- meerk40t/core/node/image_raster.py +156 -113
- meerk40t/core/node/layernode.py +31 -31
- meerk40t/core/node/mixins.py +135 -107
- meerk40t/core/node/node.py +1427 -1304
- meerk40t/core/node/nutils.py +117 -114
- meerk40t/core/node/op_cut.py +462 -335
- meerk40t/core/node/op_dots.py +296 -251
- meerk40t/core/node/op_engrave.py +414 -311
- meerk40t/core/node/op_image.py +755 -369
- meerk40t/core/node/op_raster.py +787 -522
- meerk40t/core/node/place_current.py +37 -40
- meerk40t/core/node/place_point.py +329 -126
- meerk40t/core/node/refnode.py +58 -47
- meerk40t/core/node/rootnode.py +225 -219
- meerk40t/core/node/util_console.py +48 -48
- meerk40t/core/node/util_goto.py +84 -65
- meerk40t/core/node/util_home.py +61 -61
- meerk40t/core/node/util_input.py +102 -102
- meerk40t/core/node/util_output.py +102 -102
- meerk40t/core/node/util_wait.py +65 -65
- meerk40t/core/parameters.py +709 -707
- meerk40t/core/planner.py +875 -785
- meerk40t/core/plotplanner.py +656 -652
- meerk40t/core/space.py +120 -113
- meerk40t/core/spoolers.py +706 -705
- meerk40t/core/svg_io.py +1836 -1549
- meerk40t/core/treeop.py +534 -445
- meerk40t/core/undos.py +278 -124
- meerk40t/core/units.py +784 -680
- meerk40t/core/view.py +393 -322
- meerk40t/core/webhelp.py +62 -62
- meerk40t/core/wordlist.py +513 -504
- meerk40t/cylinder/cylinder.py +247 -0
- meerk40t/cylinder/gui/cylindersettings.py +41 -0
- meerk40t/cylinder/gui/gui.py +24 -0
- meerk40t/device/__init__.py +1 -1
- meerk40t/device/basedevice.py +322 -123
- meerk40t/device/devicechoices.py +50 -0
- meerk40t/device/dummydevice.py +163 -128
- meerk40t/device/gui/defaultactions.py +618 -602
- meerk40t/device/gui/effectspanel.py +114 -0
- meerk40t/device/gui/formatterpanel.py +253 -290
- meerk40t/device/gui/warningpanel.py +337 -260
- meerk40t/device/mixins.py +13 -13
- meerk40t/dxf/__init__.py +1 -1
- meerk40t/dxf/dxf_io.py +766 -554
- meerk40t/dxf/plugin.py +47 -35
- meerk40t/external_plugins.py +79 -79
- meerk40t/external_plugins_build.py +28 -28
- meerk40t/extra/cag.py +112 -116
- meerk40t/extra/coolant.py +403 -0
- meerk40t/extra/encode_detect.py +198 -0
- meerk40t/extra/ezd.py +1165 -1165
- meerk40t/extra/hershey.py +835 -340
- meerk40t/extra/imageactions.py +322 -316
- meerk40t/extra/inkscape.py +630 -622
- meerk40t/extra/lbrn.py +424 -424
- meerk40t/extra/outerworld.py +284 -0
- meerk40t/extra/param_functions.py +1542 -1556
- meerk40t/extra/potrace.py +257 -253
- meerk40t/extra/serial_exchange.py +118 -0
- meerk40t/extra/updater.py +602 -453
- meerk40t/extra/vectrace.py +147 -146
- meerk40t/extra/winsleep.py +83 -83
- meerk40t/extra/xcs_reader.py +597 -0
- meerk40t/fill/fills.py +781 -335
- meerk40t/fill/patternfill.py +1061 -1061
- meerk40t/fill/patterns.py +614 -567
- meerk40t/grbl/control.py +87 -87
- meerk40t/grbl/controller.py +990 -903
- meerk40t/grbl/device.py +1081 -768
- meerk40t/grbl/driver.py +989 -771
- meerk40t/grbl/emulator.py +532 -497
- meerk40t/grbl/gcodejob.py +783 -767
- meerk40t/grbl/gui/grblconfiguration.py +373 -298
- meerk40t/grbl/gui/grblcontroller.py +485 -271
- meerk40t/grbl/gui/grblhardwareconfig.py +269 -153
- meerk40t/grbl/gui/grbloperationconfig.py +105 -0
- meerk40t/grbl/gui/gui.py +147 -116
- meerk40t/grbl/interpreter.py +44 -44
- meerk40t/grbl/loader.py +22 -22
- meerk40t/grbl/mock_connection.py +56 -56
- meerk40t/grbl/plugin.py +294 -264
- meerk40t/grbl/serial_connection.py +93 -88
- meerk40t/grbl/tcp_connection.py +81 -79
- meerk40t/grbl/ws_connection.py +112 -0
- meerk40t/gui/__init__.py +1 -1
- meerk40t/gui/about.py +2042 -296
- meerk40t/gui/alignment.py +1644 -1608
- meerk40t/gui/autoexec.py +199 -0
- meerk40t/gui/basicops.py +791 -670
- meerk40t/gui/bufferview.py +77 -71
- meerk40t/gui/busy.py +170 -133
- meerk40t/gui/choicepropertypanel.py +1673 -1469
- meerk40t/gui/consolepanel.py +706 -542
- meerk40t/gui/devicepanel.py +687 -581
- meerk40t/gui/dialogoptions.py +110 -107
- meerk40t/gui/executejob.py +316 -306
- meerk40t/gui/fonts.py +90 -90
- meerk40t/gui/functionwrapper.py +252 -0
- meerk40t/gui/gui_mixins.py +729 -0
- meerk40t/gui/guicolors.py +205 -182
- meerk40t/gui/help_assets/help_assets.py +218 -201
- meerk40t/gui/helper.py +154 -0
- meerk40t/gui/hersheymanager.py +1430 -846
- meerk40t/gui/icons.py +3422 -2747
- meerk40t/gui/imagesplitter.py +555 -508
- meerk40t/gui/keymap.py +354 -344
- meerk40t/gui/laserpanel.py +892 -806
- meerk40t/gui/laserrender.py +1470 -1232
- meerk40t/gui/lasertoolpanel.py +805 -793
- meerk40t/gui/magnetoptions.py +436 -0
- meerk40t/gui/materialmanager.py +2917 -0
- meerk40t/gui/materialtest.py +1722 -1694
- meerk40t/gui/mkdebug.py +646 -359
- meerk40t/gui/mwindow.py +163 -140
- meerk40t/gui/navigationpanels.py +2605 -2467
- meerk40t/gui/notes.py +143 -142
- meerk40t/gui/opassignment.py +414 -410
- meerk40t/gui/operation_info.py +310 -299
- meerk40t/gui/plugin.py +494 -328
- meerk40t/gui/position.py +714 -669
- meerk40t/gui/preferences.py +901 -650
- meerk40t/gui/propertypanels/attributes.py +1461 -1131
- meerk40t/gui/propertypanels/blobproperty.py +117 -114
- meerk40t/gui/propertypanels/consoleproperty.py +83 -80
- meerk40t/gui/propertypanels/gotoproperty.py +77 -0
- meerk40t/gui/propertypanels/groupproperties.py +223 -217
- meerk40t/gui/propertypanels/hatchproperty.py +489 -469
- meerk40t/gui/propertypanels/imageproperty.py +2244 -1384
- meerk40t/gui/propertypanels/inputproperty.py +59 -58
- meerk40t/gui/propertypanels/opbranchproperties.py +82 -80
- meerk40t/gui/propertypanels/operationpropertymain.py +1890 -1638
- meerk40t/gui/propertypanels/outputproperty.py +59 -58
- meerk40t/gui/propertypanels/pathproperty.py +389 -380
- meerk40t/gui/propertypanels/placementproperty.py +1214 -383
- meerk40t/gui/propertypanels/pointproperty.py +140 -136
- meerk40t/gui/propertypanels/propertywindow.py +313 -181
- meerk40t/gui/propertypanels/rasterwizardpanels.py +996 -912
- meerk40t/gui/propertypanels/regbranchproperties.py +76 -0
- meerk40t/gui/propertypanels/textproperty.py +770 -755
- meerk40t/gui/propertypanels/waitproperty.py +56 -55
- meerk40t/gui/propertypanels/warpproperty.py +121 -0
- meerk40t/gui/propertypanels/wobbleproperty.py +255 -204
- meerk40t/gui/ribbon.py +2468 -2210
- meerk40t/gui/scene/scene.py +1100 -1051
- meerk40t/gui/scene/sceneconst.py +22 -22
- meerk40t/gui/scene/scenepanel.py +439 -349
- meerk40t/gui/scene/scenespacewidget.py +365 -365
- meerk40t/gui/scene/widget.py +518 -505
- meerk40t/gui/scenewidgets/affinemover.py +215 -215
- meerk40t/gui/scenewidgets/attractionwidget.py +315 -309
- meerk40t/gui/scenewidgets/bedwidget.py +120 -97
- meerk40t/gui/scenewidgets/elementswidget.py +137 -107
- meerk40t/gui/scenewidgets/gridwidget.py +785 -745
- meerk40t/gui/scenewidgets/guidewidget.py +765 -765
- meerk40t/gui/scenewidgets/laserpathwidget.py +66 -66
- meerk40t/gui/scenewidgets/machineoriginwidget.py +86 -86
- meerk40t/gui/scenewidgets/nodeselector.py +28 -28
- meerk40t/gui/scenewidgets/rectselectwidget.py +589 -346
- meerk40t/gui/scenewidgets/relocatewidget.py +33 -33
- meerk40t/gui/scenewidgets/reticlewidget.py +83 -83
- meerk40t/gui/scenewidgets/selectionwidget.py +2952 -2756
- meerk40t/gui/simpleui.py +357 -333
- meerk40t/gui/simulation.py +2431 -2094
- meerk40t/gui/snapoptions.py +208 -203
- meerk40t/gui/spoolerpanel.py +1227 -1180
- meerk40t/gui/statusbarwidgets/defaultoperations.py +480 -353
- meerk40t/gui/statusbarwidgets/infowidget.py +520 -483
- meerk40t/gui/statusbarwidgets/opassignwidget.py +356 -355
- meerk40t/gui/statusbarwidgets/selectionwidget.py +172 -171
- meerk40t/gui/statusbarwidgets/shapepropwidget.py +754 -236
- meerk40t/gui/statusbarwidgets/statusbar.py +272 -260
- meerk40t/gui/statusbarwidgets/statusbarwidget.py +268 -270
- meerk40t/gui/statusbarwidgets/strokewidget.py +267 -251
- meerk40t/gui/themes.py +200 -78
- meerk40t/gui/tips.py +591 -0
- meerk40t/gui/toolwidgets/circlebrush.py +35 -35
- meerk40t/gui/toolwidgets/toolcircle.py +248 -242
- meerk40t/gui/toolwidgets/toolcontainer.py +82 -77
- meerk40t/gui/toolwidgets/tooldraw.py +97 -90
- meerk40t/gui/toolwidgets/toolellipse.py +219 -212
- meerk40t/gui/toolwidgets/toolimagecut.py +25 -132
- meerk40t/gui/toolwidgets/toolline.py +39 -144
- meerk40t/gui/toolwidgets/toollinetext.py +79 -236
- meerk40t/gui/toolwidgets/toollinetext_inline.py +296 -0
- meerk40t/gui/toolwidgets/toolmeasure.py +160 -216
- meerk40t/gui/toolwidgets/toolnodeedit.py +2088 -2074
- meerk40t/gui/toolwidgets/toolnodemove.py +92 -94
- meerk40t/gui/toolwidgets/toolparameter.py +754 -668
- meerk40t/gui/toolwidgets/toolplacement.py +108 -108
- meerk40t/gui/toolwidgets/toolpoint.py +68 -59
- meerk40t/gui/toolwidgets/toolpointlistbuilder.py +294 -0
- meerk40t/gui/toolwidgets/toolpointmove.py +183 -0
- meerk40t/gui/toolwidgets/toolpolygon.py +288 -403
- meerk40t/gui/toolwidgets/toolpolyline.py +38 -196
- meerk40t/gui/toolwidgets/toolrect.py +211 -207
- meerk40t/gui/toolwidgets/toolrelocate.py +72 -72
- meerk40t/gui/toolwidgets/toolribbon.py +598 -113
- meerk40t/gui/toolwidgets/tooltabedit.py +546 -0
- meerk40t/gui/toolwidgets/tooltext.py +98 -89
- meerk40t/gui/toolwidgets/toolvector.py +213 -204
- meerk40t/gui/toolwidgets/toolwidget.py +39 -39
- meerk40t/gui/usbconnect.py +98 -91
- meerk40t/gui/utilitywidgets/buttonwidget.py +18 -18
- meerk40t/gui/utilitywidgets/checkboxwidget.py +90 -90
- meerk40t/gui/utilitywidgets/controlwidget.py +14 -14
- meerk40t/gui/utilitywidgets/cyclocycloidwidget.py +343 -340
- meerk40t/gui/utilitywidgets/debugwidgets.py +148 -0
- meerk40t/gui/utilitywidgets/handlewidget.py +27 -27
- meerk40t/gui/utilitywidgets/harmonograph.py +450 -447
- meerk40t/gui/utilitywidgets/openclosewidget.py +40 -40
- meerk40t/gui/utilitywidgets/rotationwidget.py +54 -54
- meerk40t/gui/utilitywidgets/scalewidget.py +75 -75
- meerk40t/gui/utilitywidgets/seekbarwidget.py +183 -183
- meerk40t/gui/utilitywidgets/togglewidget.py +142 -142
- meerk40t/gui/utilitywidgets/toolbarwidget.py +8 -8
- meerk40t/gui/wordlisteditor.py +985 -931
- meerk40t/gui/wxmeerk40t.py +1444 -1169
- meerk40t/gui/wxmmain.py +5578 -4112
- meerk40t/gui/wxmribbon.py +1591 -1076
- meerk40t/gui/wxmscene.py +1635 -1453
- meerk40t/gui/wxmtree.py +2410 -2089
- meerk40t/gui/wxutils.py +1769 -1099
- meerk40t/gui/zmatrix.py +102 -102
- meerk40t/image/__init__.py +1 -1
- meerk40t/image/dither.py +429 -0
- meerk40t/image/imagetools.py +2778 -2269
- meerk40t/internal_plugins.py +150 -130
- meerk40t/kernel/__init__.py +63 -12
- meerk40t/kernel/channel.py +259 -212
- meerk40t/kernel/context.py +538 -538
- meerk40t/kernel/exceptions.py +41 -41
- meerk40t/kernel/functions.py +463 -414
- meerk40t/kernel/jobs.py +100 -100
- meerk40t/kernel/kernel.py +3809 -3571
- meerk40t/kernel/lifecycles.py +71 -71
- meerk40t/kernel/module.py +49 -49
- meerk40t/kernel/service.py +147 -147
- meerk40t/kernel/settings.py +383 -343
- meerk40t/lihuiyu/controller.py +883 -876
- meerk40t/lihuiyu/device.py +1181 -1069
- meerk40t/lihuiyu/driver.py +1466 -1372
- meerk40t/lihuiyu/gui/gui.py +127 -106
- meerk40t/lihuiyu/gui/lhyaccelgui.py +377 -363
- meerk40t/lihuiyu/gui/lhycontrollergui.py +741 -651
- meerk40t/lihuiyu/gui/lhydrivergui.py +470 -446
- meerk40t/lihuiyu/gui/lhyoperationproperties.py +238 -237
- meerk40t/lihuiyu/gui/tcpcontroller.py +226 -190
- meerk40t/lihuiyu/interpreter.py +53 -53
- meerk40t/lihuiyu/laserspeed.py +450 -450
- meerk40t/lihuiyu/loader.py +90 -90
- meerk40t/lihuiyu/parser.py +404 -404
- meerk40t/lihuiyu/plugin.py +101 -102
- meerk40t/lihuiyu/tcp_connection.py +111 -109
- meerk40t/main.py +231 -165
- meerk40t/moshi/builder.py +788 -781
- meerk40t/moshi/controller.py +505 -499
- meerk40t/moshi/device.py +495 -442
- meerk40t/moshi/driver.py +862 -696
- meerk40t/moshi/gui/gui.py +78 -76
- meerk40t/moshi/gui/moshicontrollergui.py +538 -522
- meerk40t/moshi/gui/moshidrivergui.py +87 -75
- meerk40t/moshi/plugin.py +43 -43
- meerk40t/network/console_server.py +102 -57
- meerk40t/network/kernelserver.py +10 -9
- meerk40t/network/tcp_server.py +142 -140
- meerk40t/network/udp_server.py +103 -77
- meerk40t/network/web_server.py +390 -0
- meerk40t/newly/controller.py +1158 -1144
- meerk40t/newly/device.py +874 -732
- meerk40t/newly/driver.py +540 -412
- meerk40t/newly/gui/gui.py +219 -188
- meerk40t/newly/gui/newlyconfig.py +116 -101
- meerk40t/newly/gui/newlycontroller.py +193 -186
- meerk40t/newly/gui/operationproperties.py +51 -51
- meerk40t/newly/mock_connection.py +82 -82
- meerk40t/newly/newly_params.py +56 -56
- meerk40t/newly/plugin.py +1214 -1246
- meerk40t/newly/usb_connection.py +322 -322
- meerk40t/rotary/gui/gui.py +52 -46
- meerk40t/rotary/gui/rotarysettings.py +240 -232
- meerk40t/rotary/rotary.py +202 -98
- meerk40t/ruida/control.py +291 -91
- meerk40t/ruida/controller.py +138 -1088
- meerk40t/ruida/device.py +672 -231
- meerk40t/ruida/driver.py +534 -472
- meerk40t/ruida/emulator.py +1494 -1491
- meerk40t/ruida/exceptions.py +4 -4
- meerk40t/ruida/gui/gui.py +71 -76
- meerk40t/ruida/gui/ruidaconfig.py +239 -72
- meerk40t/ruida/gui/ruidacontroller.py +187 -184
- meerk40t/ruida/gui/ruidaoperationproperties.py +48 -47
- meerk40t/ruida/loader.py +54 -52
- meerk40t/ruida/mock_connection.py +57 -109
- meerk40t/ruida/plugin.py +124 -87
- meerk40t/ruida/rdjob.py +2084 -945
- meerk40t/ruida/serial_connection.py +116 -0
- meerk40t/ruida/tcp_connection.py +146 -0
- meerk40t/ruida/udp_connection.py +73 -0
- meerk40t/svgelements.py +9671 -9669
- meerk40t/tools/driver_to_path.py +584 -579
- meerk40t/tools/geomstr.py +5583 -4680
- meerk40t/tools/jhfparser.py +357 -292
- meerk40t/tools/kerftest.py +904 -890
- meerk40t/tools/livinghinges.py +1168 -1033
- meerk40t/tools/pathtools.py +987 -949
- meerk40t/tools/pmatrix.py +234 -0
- meerk40t/tools/pointfinder.py +942 -942
- meerk40t/tools/polybool.py +940 -940
- meerk40t/tools/rasterplotter.py +1660 -547
- meerk40t/tools/shxparser.py +989 -901
- meerk40t/tools/ttfparser.py +726 -446
- meerk40t/tools/zinglplotter.py +595 -593
- {meerk40t-0.9.3001.dist-info → meerk40t-0.9.7010.dist-info}/LICENSE +21 -21
- {meerk40t-0.9.3001.dist-info → meerk40t-0.9.7010.dist-info}/METADATA +150 -139
- meerk40t-0.9.7010.dist-info/RECORD +445 -0
- {meerk40t-0.9.3001.dist-info → meerk40t-0.9.7010.dist-info}/WHEEL +1 -1
- {meerk40t-0.9.3001.dist-info → meerk40t-0.9.7010.dist-info}/top_level.txt +0 -1
- {meerk40t-0.9.3001.dist-info → meerk40t-0.9.7010.dist-info}/zip-safe +1 -1
- meerk40t/balormk/elementlightjob.py +0 -159
- meerk40t-0.9.3001.dist-info/RECORD +0 -437
- test/bootstrap.py +0 -63
- test/test_cli.py +0 -12
- test/test_core_cutcode.py +0 -418
- test/test_core_elements.py +0 -144
- test/test_core_plotplanner.py +0 -397
- test/test_core_viewports.py +0 -312
- test/test_drivers_grbl.py +0 -108
- test/test_drivers_lihuiyu.py +0 -443
- test/test_drivers_newly.py +0 -113
- test/test_element_degenerate_points.py +0 -43
- test/test_elements_classify.py +0 -97
- test/test_elements_penbox.py +0 -22
- test/test_file_svg.py +0 -176
- test/test_fill.py +0 -155
- test/test_geomstr.py +0 -1523
- test/test_geomstr_nodes.py +0 -18
- test/test_imagetools_actualize.py +0 -306
- test/test_imagetools_wizard.py +0 -258
- test/test_kernel.py +0 -200
- test/test_laser_speeds.py +0 -3303
- test/test_length.py +0 -57
- test/test_lifecycle.py +0 -66
- test/test_operations.py +0 -251
- test/test_operations_hatch.py +0 -57
- test/test_ruida.py +0 -19
- test/test_spooler.py +0 -22
- test/test_tools_rasterplotter.py +0 -29
- test/test_wobble.py +0 -133
- test/test_zingl.py +0 -124
- {test → meerk40t/cylinder}/__init__.py +0 -0
- /meerk40t/{core/element_commands.py → cylinder/gui/__init__.py} +0 -0
- {meerk40t-0.9.3001.dist-info → meerk40t-0.9.7010.dist-info}/entry_points.txt +0 -0
@@ -1,97 +1,120 @@
|
|
1
|
-
"""
|
2
|
-
Bedwidget is entirely concerned with drawing the background bed object. This is usually white colored box.
|
3
|
-
|
4
|
-
If a background is set, e.g. a camera image that is displayed instead. If there is a background image then, this widget
|
5
|
-
also implements a right-click menu to remove said background image.
|
6
|
-
"""
|
7
|
-
|
8
|
-
import wx
|
9
|
-
|
10
|
-
from meerk40t.gui.laserrender import DRAW_MODE_BACKGROUND, swizzlecolor
|
11
|
-
from meerk40t.gui.scene.sceneconst import (
|
12
|
-
HITCHAIN_DELEGATE,
|
13
|
-
HITCHAIN_HIT,
|
14
|
-
RESPONSE_CHAIN,
|
15
|
-
)
|
16
|
-
from meerk40t.gui.scene.widget import Widget
|
17
|
-
|
18
|
-
|
19
|
-
class BedWidget(Widget):
|
20
|
-
"""
|
21
|
-
Bed Widget Interface Widget
|
22
|
-
"""
|
23
|
-
|
24
|
-
def __init__(self, scene, name=None):
|
25
|
-
Widget.__init__(self, scene, all=True)
|
26
|
-
if name is None:
|
27
|
-
self.name = "Standard"
|
28
|
-
else:
|
29
|
-
self.name = name
|
30
|
-
self.
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
if
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
)
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
""
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
1
|
+
"""
|
2
|
+
Bedwidget is entirely concerned with drawing the background bed object. This is usually white colored box.
|
3
|
+
|
4
|
+
If a background is set, e.g. a camera image that is displayed instead. If there is a background image then, this widget
|
5
|
+
also implements a right-click menu to remove said background image.
|
6
|
+
"""
|
7
|
+
|
8
|
+
import wx
|
9
|
+
|
10
|
+
from meerk40t.gui.laserrender import DRAW_MODE_BACKGROUND, swizzlecolor
|
11
|
+
from meerk40t.gui.scene.sceneconst import (
|
12
|
+
HITCHAIN_DELEGATE,
|
13
|
+
HITCHAIN_HIT,
|
14
|
+
RESPONSE_CHAIN,
|
15
|
+
)
|
16
|
+
from meerk40t.gui.scene.widget import Widget
|
17
|
+
|
18
|
+
|
19
|
+
class BedWidget(Widget):
|
20
|
+
"""
|
21
|
+
Bed Widget Interface Widget
|
22
|
+
"""
|
23
|
+
|
24
|
+
def __init__(self, scene, name=None):
|
25
|
+
Widget.__init__(self, scene, all=True)
|
26
|
+
if name is None:
|
27
|
+
self.name = "Standard"
|
28
|
+
else:
|
29
|
+
self.name = name
|
30
|
+
self._background = {}
|
31
|
+
|
32
|
+
@property
|
33
|
+
def background(self):
|
34
|
+
try:
|
35
|
+
devlabel = self.scene.context.device.label
|
36
|
+
if devlabel in self._background:
|
37
|
+
return self._background[devlabel]
|
38
|
+
except AttributeError:
|
39
|
+
pass
|
40
|
+
return None
|
41
|
+
|
42
|
+
@background.setter
|
43
|
+
def background(self, value):
|
44
|
+
try:
|
45
|
+
devlabel = self.scene.context.device.label
|
46
|
+
except AttributeError:
|
47
|
+
return
|
48
|
+
|
49
|
+
if value is None:
|
50
|
+
self._background.pop(devlabel, None)
|
51
|
+
else:
|
52
|
+
self._background[devlabel] = value
|
53
|
+
|
54
|
+
def hit(self):
|
55
|
+
if self.background is None:
|
56
|
+
return HITCHAIN_DELEGATE
|
57
|
+
return HITCHAIN_HIT
|
58
|
+
|
59
|
+
def event(self, window_pos=None, space_pos=None, event_type=None, **kwargs):
|
60
|
+
"""
|
61
|
+
Capture and deal with the double click event.
|
62
|
+
|
63
|
+
Doubleclick in the grid loads a menu to remove the background.
|
64
|
+
"""
|
65
|
+
if event_type == "hover":
|
66
|
+
return RESPONSE_CHAIN
|
67
|
+
elif event_type == "doubleclick":
|
68
|
+
menu = wx.Menu()
|
69
|
+
_ = self.scene.context._
|
70
|
+
if self.background is not None:
|
71
|
+
item = menu.Append(wx.ID_ANY, _("Remove Background"), "")
|
72
|
+
self.scene.gui.Bind(
|
73
|
+
wx.EVT_MENU,
|
74
|
+
lambda e: self.scene.gui.signal("background", None),
|
75
|
+
id=item.GetId(),
|
76
|
+
)
|
77
|
+
if menu.MenuItemCount != 0:
|
78
|
+
self.scene.gui.PopupMenu(menu)
|
79
|
+
menu.Destroy()
|
80
|
+
return RESPONSE_CHAIN
|
81
|
+
|
82
|
+
def process_draw(self, gc):
|
83
|
+
"""
|
84
|
+
Draws the background on the scene.
|
85
|
+
"""
|
86
|
+
# print ("Bedwidget draw %s" % self.name)
|
87
|
+
if self.scene.context.draw_mode & DRAW_MODE_BACKGROUND == 0:
|
88
|
+
context = self.scene.context
|
89
|
+
try:
|
90
|
+
unit_width = context.device.view.unit_width
|
91
|
+
unit_height = context.device.view.unit_height
|
92
|
+
except AttributeError:
|
93
|
+
return
|
94
|
+
background = self.background
|
95
|
+
if background is None:
|
96
|
+
brush = wx.Brush(
|
97
|
+
colour=self.scene.colors.color_bed, style=wx.BRUSHSTYLE_SOLID
|
98
|
+
)
|
99
|
+
gc.SetBrush(brush)
|
100
|
+
gc.DrawRectangle(0, 0, unit_width, unit_height)
|
101
|
+
elif isinstance(background, int):
|
102
|
+
gc.SetBrush(wx.Brush(wx.Colour(swizzlecolor(background))))
|
103
|
+
gc.DrawRectangle(0, 0, unit_width, unit_height)
|
104
|
+
else:
|
105
|
+
gc.DrawBitmap(background, 0, 0, unit_width, unit_height)
|
106
|
+
|
107
|
+
def signal(self, signal, *args, **kwargs):
|
108
|
+
"""
|
109
|
+
Signal commands which draw the background and updates the grid when needed to recalculate the lines
|
110
|
+
"""
|
111
|
+
if signal == "background":
|
112
|
+
self.background = args[0]
|
113
|
+
if args[0] is None:
|
114
|
+
self.scene.has_background = False
|
115
|
+
elif isinstance(args[0], int):
|
116
|
+
# A pure color is not deemed to represent a 'real' background
|
117
|
+
self.scene.has_background = False
|
118
|
+
else:
|
119
|
+
self.scene.has_background = True
|
120
|
+
self.scene.active_background = self.background
|
@@ -1,107 +1,137 @@
|
|
1
|
-
from math import sqrt
|
2
|
-
|
3
|
-
from meerk40t.core.units import Length
|
4
|
-
from meerk40t.gui.laserrender import DRAW_MODE_EDIT, DRAW_MODE_REGMARKS
|
5
|
-
from meerk40t.gui.scene.sceneconst import (
|
6
|
-
HITCHAIN_HIT,
|
7
|
-
RESPONSE_CHAIN,
|
8
|
-
RESPONSE_CONSUME,
|
9
|
-
RESPONSE_DROP,
|
10
|
-
)
|
11
|
-
from meerk40t.gui.scene.widget import Widget
|
12
|
-
|
13
|
-
|
14
|
-
class ElementsWidget(Widget):
|
15
|
-
"""
|
16
|
-
The ElementsWidget is tasked with drawing the elements within the scene. It also
|
17
|
-
serves to process leftclick in order to emphasize the given object.
|
18
|
-
"""
|
19
|
-
|
20
|
-
def __init__(self, scene, renderer):
|
21
|
-
Widget.__init__(self, scene, all=True)
|
22
|
-
self.renderer = renderer
|
23
|
-
|
24
|
-
def hit(self):
|
25
|
-
return HITCHAIN_HIT
|
26
|
-
|
27
|
-
def process_draw(self, gc):
|
28
|
-
context = self.scene.context
|
29
|
-
matrix = self.scene.widget_root.scene_widget.matrix
|
30
|
-
scale_x = sqrt(abs(matrix.determinant))
|
31
|
-
try:
|
32
|
-
zoom_scale = 1 / scale_x
|
33
|
-
Length.units_per_spx = zoom_scale
|
34
|
-
except ZeroDivisionError:
|
35
|
-
matrix.reset()
|
36
|
-
zoom_scale = 1
|
37
|
-
if zoom_scale < 1:
|
38
|
-
zoom_scale = 1
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
)
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
1
|
+
from math import sqrt
|
2
|
+
|
3
|
+
from meerk40t.core.units import Length
|
4
|
+
from meerk40t.gui.laserrender import DRAW_MODE_EDIT, DRAW_MODE_REGMARKS
|
5
|
+
from meerk40t.gui.scene.sceneconst import (
|
6
|
+
HITCHAIN_HIT,
|
7
|
+
RESPONSE_CHAIN,
|
8
|
+
RESPONSE_CONSUME,
|
9
|
+
RESPONSE_DROP,
|
10
|
+
)
|
11
|
+
from meerk40t.gui.scene.widget import Widget
|
12
|
+
|
13
|
+
|
14
|
+
class ElementsWidget(Widget):
|
15
|
+
"""
|
16
|
+
The ElementsWidget is tasked with drawing the elements within the scene. It also
|
17
|
+
serves to process leftclick in order to emphasize the given object.
|
18
|
+
"""
|
19
|
+
|
20
|
+
def __init__(self, scene, renderer):
|
21
|
+
Widget.__init__(self, scene, all=True)
|
22
|
+
self.renderer = renderer
|
23
|
+
|
24
|
+
def hit(self):
|
25
|
+
return HITCHAIN_HIT
|
26
|
+
|
27
|
+
def process_draw(self, gc):
|
28
|
+
context = self.scene.context
|
29
|
+
matrix = self.scene.widget_root.scene_widget.matrix
|
30
|
+
scale_x = sqrt(abs(matrix.determinant))
|
31
|
+
try:
|
32
|
+
zoom_scale = 1 / scale_x
|
33
|
+
Length.units_per_spx = zoom_scale
|
34
|
+
except ZeroDivisionError:
|
35
|
+
matrix.reset()
|
36
|
+
zoom_scale = 1
|
37
|
+
if zoom_scale < 1:
|
38
|
+
zoom_scale = 1
|
39
|
+
win_x_max, win_y_max = self.scene.gui.ClientSize
|
40
|
+
win_x_min = 0
|
41
|
+
win_y_min = 0
|
42
|
+
xmin = float("inf")
|
43
|
+
ymin = float("inf")
|
44
|
+
xmax = -float("inf")
|
45
|
+
ymax = -float("inf")
|
46
|
+
# look at the four edges as we could be rotated / inverted etc.
|
47
|
+
for x in (win_x_min, win_x_max):
|
48
|
+
for y in (win_y_min, win_y_max):
|
49
|
+
win_pos = (x, y)
|
50
|
+
scene_pos = self.scene.convert_window_to_scene(win_pos)
|
51
|
+
xmin = min(xmin, scene_pos[0])
|
52
|
+
xmax = max(xmax, scene_pos[0])
|
53
|
+
ymin = min(ymin, scene_pos[1])
|
54
|
+
ymax = max(ymax, scene_pos[1])
|
55
|
+
# Set visible area
|
56
|
+
box = (xmin, ymin, xmax, ymax)
|
57
|
+
self.renderer.set_visible_area(box)
|
58
|
+
draw_mode = self.renderer.context.draw_mode
|
59
|
+
if (draw_mode & DRAW_MODE_REGMARKS) == 0:
|
60
|
+
# Very faint in the background as orientation - alpha 64
|
61
|
+
self.renderer.render(
|
62
|
+
context.elements.regmarks_nodes(selected=False),
|
63
|
+
gc,
|
64
|
+
draw_mode,
|
65
|
+
zoomscale=zoom_scale,
|
66
|
+
alpha=32,
|
67
|
+
msg="regmarks unselected",
|
68
|
+
)
|
69
|
+
self.renderer.render(
|
70
|
+
context.elements.regmarks_nodes(selected=True),
|
71
|
+
gc,
|
72
|
+
draw_mode,
|
73
|
+
zoomscale=zoom_scale,
|
74
|
+
alpha=64,
|
75
|
+
msg="regmarks selected",
|
76
|
+
)
|
77
|
+
# Slightly more prominent - alpha 96
|
78
|
+
self.renderer.render(
|
79
|
+
context.elements.placement_nodes(),
|
80
|
+
gc,
|
81
|
+
draw_mode,
|
82
|
+
zoomscale=zoom_scale,
|
83
|
+
alpha=96,
|
84
|
+
msg="placement node",
|
85
|
+
)
|
86
|
+
if self.scene.pane.tool_container.mode == "vertex":
|
87
|
+
draw_mode |= DRAW_MODE_EDIT
|
88
|
+
self.renderer.render(
|
89
|
+
context.elements.elems_nodes(),
|
90
|
+
gc,
|
91
|
+
draw_mode,
|
92
|
+
zoomscale=zoom_scale,
|
93
|
+
msg="elements",
|
94
|
+
)
|
95
|
+
|
96
|
+
def event(
|
97
|
+
self, window_pos=None, space_pos=None, event_type=None, modifiers=None, **kwargs
|
98
|
+
):
|
99
|
+
# Cover some unlikely crashes...
|
100
|
+
try:
|
101
|
+
elements = self.scene.context.elements
|
102
|
+
if elements is None:
|
103
|
+
return
|
104
|
+
except TypeError:
|
105
|
+
return
|
106
|
+
empty_or_right = True
|
107
|
+
if modifiers is not None:
|
108
|
+
for mod in modifiers:
|
109
|
+
if mod == "m_right":
|
110
|
+
continue
|
111
|
+
empty_or_right = False
|
112
|
+
break
|
113
|
+
|
114
|
+
if event_type == "rightdown" and empty_or_right:
|
115
|
+
if not self.scene.pane.tool_active:
|
116
|
+
if self.scene.pane.active_tool != "none":
|
117
|
+
self.scene.context("tool none\n")
|
118
|
+
return RESPONSE_CONSUME
|
119
|
+
else:
|
120
|
+
self.scene.context.signal("scene_right_click")
|
121
|
+
return RESPONSE_CONSUME
|
122
|
+
elif event_type == "rightdown": # any modifier
|
123
|
+
# if self.scene.context.use_toolmenu:
|
124
|
+
# self.scene.context("tool_menu")
|
125
|
+
# return RESPONSE_CONSUME
|
126
|
+
return RESPONSE_CHAIN
|
127
|
+
elif event_type == "leftclick":
|
128
|
+
if self.scene.pane.modif_active:
|
129
|
+
return RESPONSE_CHAIN
|
130
|
+
keep_old = "shift" in modifiers
|
131
|
+
smallest = bool(self.scene.context.select_smallest) != bool(
|
132
|
+
"ctrl" in modifiers
|
133
|
+
)
|
134
|
+
elements.set_emphasized_by_position(space_pos, keep_old, smallest)
|
135
|
+
elements.signal("select_emphasized_tree", 0)
|
136
|
+
return RESPONSE_CONSUME
|
137
|
+
return RESPONSE_DROP
|