meerk40t 0.9.7910__py2.py3-none-any.whl → 0.9.7940__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/balormk/controller.py +46 -13
- meerk40t/balormk/livelightjob.py +34 -7
- meerk40t/core/bindalias.py +12 -4
- meerk40t/core/cutcode/plotcut.py +2 -1
- meerk40t/core/elements/branches.py +35 -14
- meerk40t/core/elements/clipboard.py +10 -12
- meerk40t/core/elements/elements.py +23 -0
- meerk40t/core/elements/files.py +1 -1
- meerk40t/core/elements/geometry.py +48 -14
- meerk40t/core/elements/grid.py +56 -24
- meerk40t/core/elements/offset_clpr.py +2 -4
- meerk40t/core/elements/placements.py +17 -22
- meerk40t/core/elements/render.py +30 -11
- meerk40t/core/elements/shapes.py +206 -126
- meerk40t/core/node/effect_hatch.py +8 -7
- meerk40t/core/node/effect_warp.py +7 -2
- meerk40t/core/node/effect_wobble.py +8 -2
- meerk40t/core/node/op_image.py +79 -25
- meerk40t/core/spoolers.py +1 -1
- meerk40t/core/units.py +4 -0
- meerk40t/grbl/emulator.py +10 -8
- meerk40t/grbl/gcodejob.py +11 -3
- meerk40t/grbl/plugin.py +10 -1
- meerk40t/gui/help_assets/help_assets.py +402 -43
- meerk40t/gui/plugin.py +12 -0
- meerk40t/gui/tips.py +78 -41
- meerk40t/gui/wxmmain.py +99 -4
- meerk40t/lihuiyu/driver.py +46 -9
- meerk40t/main.py +1 -1
- meerk40t/ruida/emulator.py +13 -10
- meerk40t/ruida/plugin.py +5 -0
- meerk40t/ruida/rdjob.py +5 -5
- meerk40t/tools/geomstr.py +15 -0
- {meerk40t-0.9.7910.dist-info → meerk40t-0.9.7940.dist-info}/METADATA +1 -1
- {meerk40t-0.9.7910.dist-info → meerk40t-0.9.7940.dist-info}/RECORD +40 -40
- {meerk40t-0.9.7910.dist-info → meerk40t-0.9.7940.dist-info}/LICENSE +0 -0
- {meerk40t-0.9.7910.dist-info → meerk40t-0.9.7940.dist-info}/WHEEL +0 -0
- {meerk40t-0.9.7910.dist-info → meerk40t-0.9.7940.dist-info}/entry_points.txt +0 -0
- {meerk40t-0.9.7910.dist-info → meerk40t-0.9.7940.dist-info}/top_level.txt +0 -0
- {meerk40t-0.9.7910.dist-info → meerk40t-0.9.7940.dist-info}/zip-safe +0 -0
meerk40t/gui/wxmmain.py
CHANGED
@@ -449,11 +449,94 @@ class MeerK40t(MWindow):
|
|
449
449
|
self.autosave = Autosaver(self.context)
|
450
450
|
self.handover = GUIThread(self.context)
|
451
451
|
kernel = self.context.kernel
|
452
|
-
|
452
|
+
|
453
|
+
maxit = hasattr(kernel.args, "maximized") and kernel.args.maximized
|
454
|
+
minit = hasattr(kernel.args, "minimized") and kernel.args.minimized
|
455
|
+
remember = self.context.setting(bool, "remember_main_pos", True)
|
456
|
+
if remember:
|
457
|
+
self.RestoreWindowState(force_maximized=maxit, force_minimized=minit)
|
458
|
+
else:
|
459
|
+
self.CenterOnScreen()
|
460
|
+
if maxit:
|
461
|
+
self.Maximize()
|
462
|
+
elif minit:
|
463
|
+
self.Iconize()
|
464
|
+
self.Bind(wx.EVT_ACTIVATE, self.on_active)
|
465
|
+
|
466
|
+
|
467
|
+
def SaveWindowState(self):
|
468
|
+
# Save window position, size, and state
|
469
|
+
pos = self.GetPosition()
|
470
|
+
size = self.GetSize()
|
471
|
+
maximized = self.IsMaximized()
|
472
|
+
minimized = self.IsIconized()
|
473
|
+
# Store in settings (replace with your config system)
|
474
|
+
self.context.mainwin_pos = (pos.x, pos.y)
|
475
|
+
self.context.mainwin_size = (size.x, size.y)
|
476
|
+
self.context.mainwin_maximized = maximized
|
477
|
+
self.context.mainwin_minimized = minimized
|
478
|
+
|
479
|
+
def RestoreWindowState(self, default_pos=None, default_size=None, force_minimized=False, force_maximized=False):
|
480
|
+
# Restore window position, size, and state
|
481
|
+
pos = self.context.mainwin_pos
|
482
|
+
size = self.context.mainwin_size
|
483
|
+
maximized = self.context.mainwin_maximized or force_maximized
|
484
|
+
minimized = self.context.mainwin_minimized or force_minimized
|
485
|
+
# Get all screens
|
486
|
+
display_count = wx.Display.GetCount()
|
487
|
+
screens = [wx.Display(i).GetGeometry() for i in range(display_count)]
|
488
|
+
def in_any_screen(x, y):
|
489
|
+
for rect in screens:
|
490
|
+
if rect.Contains(wx.Point(x, y)):
|
491
|
+
return True
|
492
|
+
return False
|
493
|
+
# Default position and size: use first screen's geometry
|
494
|
+
if screens:
|
495
|
+
first_screen = screens[0]
|
496
|
+
if default_pos is None:
|
497
|
+
default_pos = wx.Point(first_screen.x, first_screen.y)
|
498
|
+
if default_size is None:
|
499
|
+
default_size = wx.Size(first_screen.width, first_screen.height)
|
500
|
+
else:
|
501
|
+
if default_pos is None:
|
502
|
+
default_pos = wx.Point(0, 0)
|
503
|
+
if default_size is None:
|
504
|
+
default_size = wx.Size(1024, 768)
|
505
|
+
# Validate position and size to ensure the window is mostly visible on a screen
|
506
|
+
def rect_mostly_in_screen(x, y, w, h, threshold=0.5):
|
507
|
+
# Returns True if at least `threshold` fraction of the window area is on any screen
|
508
|
+
window_rect = wx.Rect(x, y, w, h)
|
509
|
+
for screen in wx.Display.GetCount() and [wx.Display(i).GetGeometry() for i in range(wx.Display.GetCount())] or []:
|
510
|
+
intersection = window_rect.Intersect(screen)
|
511
|
+
if intersection.IsEmpty():
|
512
|
+
continue
|
513
|
+
visible_area = intersection.GetWidth() * intersection.GetHeight()
|
514
|
+
total_area = w * h
|
515
|
+
if total_area == 0:
|
516
|
+
continue
|
517
|
+
if visible_area / total_area >= threshold:
|
518
|
+
return True
|
519
|
+
return False
|
520
|
+
|
521
|
+
# Determine intended position and size
|
522
|
+
intended_pos = pos if pos else (default_pos.x, default_pos.y)
|
523
|
+
intended_size = size if size else (default_size.GetWidth(), default_size.GetHeight())
|
524
|
+
|
525
|
+
if rect_mostly_in_screen(intended_pos[0], intended_pos[1], intended_size[0], intended_size[1]):
|
526
|
+
self.SetPosition(wx.Point(intended_pos[0], intended_pos[1]))
|
527
|
+
else:
|
528
|
+
self.SetPosition(default_pos)
|
529
|
+
|
530
|
+
# Validate size
|
531
|
+
if size:
|
532
|
+
self.SetSize(wx.Size(size[0], size[1]))
|
533
|
+
else:
|
534
|
+
self.SetSize(default_size)
|
535
|
+
# Restore state
|
536
|
+
if maximized:
|
453
537
|
self.Maximize()
|
454
|
-
|
538
|
+
elif minimized:
|
455
539
|
self.Iconize()
|
456
|
-
self.Bind(wx.EVT_ACTIVATE, self.on_active)
|
457
540
|
|
458
541
|
def on_active(self, event):
|
459
542
|
if event.GetActive():
|
@@ -1060,6 +1143,11 @@ class MeerK40t(MWindow):
|
|
1060
1143
|
context.setting(bool, "enable_sel_rotate", True)
|
1061
1144
|
context.setting(bool, "enable_sel_skew", False)
|
1062
1145
|
context.setting(int, "zoom_margin", 4) # 4%
|
1146
|
+
context.setting(tuple, "mainwin_pos", None)
|
1147
|
+
context.setting(tuple, "mainwin_size", None)
|
1148
|
+
context.setting(bool, "mainwin_maximized", False)
|
1149
|
+
context.setting(bool, "mainwin_minimized", False)
|
1150
|
+
|
1063
1151
|
# Standard-Icon-Sizes
|
1064
1152
|
# default, factor 1 - leave as is
|
1065
1153
|
# small = factor 2/3, min_size = 32
|
@@ -4836,11 +4924,18 @@ class MeerK40t(MWindow):
|
|
4836
4924
|
return True
|
4837
4925
|
if answer == wx.CANCEL:
|
4838
4926
|
return True # VETO
|
4927
|
+
for job in self.context.device.spooler.queue:
|
4928
|
+
if job.is_running():
|
4929
|
+
print(f"{job.label} was still running, stopping...")
|
4930
|
+
try:
|
4931
|
+
job.stop()
|
4932
|
+
except Exception as e:
|
4933
|
+
print(f"Error stopping job {job.label}: {e}")
|
4839
4934
|
return False
|
4840
4935
|
|
4841
4936
|
def window_close(self):
|
4842
4937
|
context = self.context
|
4843
|
-
|
4938
|
+
self.SaveWindowState()
|
4844
4939
|
context.aui = self._mgr.SavePerspective()
|
4845
4940
|
self.on_panes_closed()
|
4846
4941
|
self._mgr.UnInit()
|
meerk40t/lihuiyu/driver.py
CHANGED
@@ -12,12 +12,15 @@ import time
|
|
12
12
|
|
13
13
|
from meerk40t.tools.zinglplotter import ZinglPlotter
|
14
14
|
|
15
|
+
from ..core.cutcode.cubiccut import CubicCut
|
15
16
|
from ..core.cutcode.dwellcut import DwellCut
|
16
17
|
from ..core.cutcode.gotocut import GotoCut
|
17
18
|
from ..core.cutcode.homecut import HomeCut
|
18
19
|
from ..core.cutcode.inputcut import InputCut
|
20
|
+
from ..core.cutcode.linecut import LineCut
|
19
21
|
from ..core.cutcode.outputcut import OutputCut
|
20
22
|
from ..core.cutcode.plotcut import PlotCut
|
23
|
+
from ..core.cutcode.quadcut import QuadCut
|
21
24
|
from ..core.cutcode.waitcut import WaitCut
|
22
25
|
from ..core.parameters import Parameters
|
23
26
|
from ..core.plotplanner import PlotPlanner, grouped
|
@@ -719,12 +722,39 @@ class LihuiyuDriver(Parameters):
|
|
719
722
|
"""
|
720
723
|
for segment_type, start, c1, c2, end, sets in geom.as_lines():
|
721
724
|
if segment_type == "line":
|
725
|
+
plot = LineCut(
|
726
|
+
start,
|
727
|
+
end,
|
728
|
+
settings={
|
729
|
+
"power": sets.get("power", 1000.0),
|
730
|
+
"speed": sets.get("speed", self.speed),
|
731
|
+
},
|
732
|
+
)
|
722
733
|
self.plot_planner.push(plot)
|
723
734
|
elif segment_type == "end":
|
724
735
|
pass
|
725
736
|
elif segment_type == "quad":
|
737
|
+
plot = QuadCut(
|
738
|
+
start,
|
739
|
+
c1,
|
740
|
+
end,
|
741
|
+
settings={
|
742
|
+
"power": sets.get("power", 1000.0),
|
743
|
+
"speed": sets.get("speed", self.speed),
|
744
|
+
},
|
745
|
+
)
|
726
746
|
self.plot_planner.push(plot)
|
727
747
|
elif segment_type == "cubic":
|
748
|
+
plot = CubicCut(
|
749
|
+
start,
|
750
|
+
c1,
|
751
|
+
c2,
|
752
|
+
end,
|
753
|
+
settings={
|
754
|
+
"power": sets.get("power", 1000.0),
|
755
|
+
"speed": sets.get("speed", self.speed),
|
756
|
+
},
|
757
|
+
)
|
728
758
|
self.plot_planner.push(plot)
|
729
759
|
elif segment_type == "arc":
|
730
760
|
interp = 50
|
@@ -733,7 +763,15 @@ class LihuiyuDriver(Parameters):
|
|
733
763
|
g.arc(start, c1, end)
|
734
764
|
last = start
|
735
765
|
for p in list(g.as_equal_interpolated_points(distance=interp))[1:]:
|
736
|
-
|
766
|
+
plot = LineCut(
|
767
|
+
last,
|
768
|
+
p,
|
769
|
+
settings={
|
770
|
+
"power": sets.get("power", 1000.0),
|
771
|
+
"speed": sets.get("speed", self.speed),
|
772
|
+
},
|
773
|
+
)
|
774
|
+
self.plot_planner.push(plot)
|
737
775
|
last = p
|
738
776
|
elif segment_type == "point":
|
739
777
|
function = sets.get("function")
|
@@ -968,7 +1006,10 @@ class LihuiyuDriver(Parameters):
|
|
968
1006
|
sx = self.native_x
|
969
1007
|
sy = self.native_y
|
970
1008
|
# print("x: %s, y: %s -- c: %s, %s" % (str(x), str(y), str(sx), str(sy)))
|
971
|
-
on
|
1009
|
+
if self.state == DRIVER_STATE_RASTER and on >= 0.3 and on < 1:
|
1010
|
+
on = 1
|
1011
|
+
else:
|
1012
|
+
on = int(on)
|
972
1013
|
if on > 1:
|
973
1014
|
# Special Command.
|
974
1015
|
if on & PLOT_FINISH: # Plot planner is ending.
|
@@ -976,8 +1017,7 @@ class LihuiyuDriver(Parameters):
|
|
976
1017
|
break
|
977
1018
|
elif on & PLOT_SETTING: # Plot planner settings have changed.
|
978
1019
|
p_set = Parameters(self.plot_planner.settings)
|
979
|
-
|
980
|
-
self._set_power(p_set.power)
|
1020
|
+
self._set_power(p_set.power)
|
981
1021
|
if (
|
982
1022
|
p_set.raster_step_x != self.raster_step_x
|
983
1023
|
or p_set.raster_step_y != self.raster_step_y
|
@@ -1068,11 +1108,8 @@ class LihuiyuDriver(Parameters):
|
|
1068
1108
|
self.state = DRIVER_STATE_MODECHANGE
|
1069
1109
|
|
1070
1110
|
def _set_power(self, power=1000.0):
|
1071
|
-
self.power = power
|
1072
|
-
|
1073
|
-
self.power = 1000.0
|
1074
|
-
if self.power <= 0:
|
1075
|
-
self.power = 0.0
|
1111
|
+
self.power = min(1000, max(0, power))
|
1112
|
+
self.settings["power"] = self.power
|
1076
1113
|
if self.service.supports_pwm:
|
1077
1114
|
self.send_at_pwm_code(self.power)
|
1078
1115
|
|
meerk40t/main.py
CHANGED
meerk40t/ruida/emulator.py
CHANGED
@@ -161,6 +161,15 @@ class RuidaEmulator:
|
|
161
161
|
if self.channel:
|
162
162
|
self.channel(f"Process Failure: {str(bytes(array).hex())}")
|
163
163
|
|
164
|
+
def _home_device(self):
|
165
|
+
if hasattr(self.device.driver, "physical_home"):
|
166
|
+
# If the driver has a physical home, we can use that.
|
167
|
+
self.device.driver.physical_home()
|
168
|
+
elif hasattr(self.device.driver, "home"):
|
169
|
+
self.device.driver.home()
|
170
|
+
else:
|
171
|
+
self.device.driver.move_abs(0, 0)
|
172
|
+
|
164
173
|
def _channel(self, text):
|
165
174
|
if self.channel:
|
166
175
|
self.channel(text)
|
@@ -357,7 +366,7 @@ class RuidaEmulator:
|
|
357
366
|
self._describe(array, "Stop Process")
|
358
367
|
try:
|
359
368
|
self.device.driver.reset()
|
360
|
-
self.
|
369
|
+
self._home_device()
|
361
370
|
except AttributeError:
|
362
371
|
pass
|
363
372
|
return True
|
@@ -383,10 +392,7 @@ class RuidaEmulator:
|
|
383
392
|
return True
|
384
393
|
elif array[1] == 0x2A:
|
385
394
|
self._describe(array, "Home XY")
|
386
|
-
|
387
|
-
self.device.driver.home()
|
388
|
-
except AttributeError:
|
389
|
-
pass
|
395
|
+
self._home_device()
|
390
396
|
return True
|
391
397
|
elif array[1] == 0x2E:
|
392
398
|
self._describe(array, "FocusZ")
|
@@ -628,7 +634,7 @@ class RuidaEmulator:
|
|
628
634
|
x = abscoord(array[3:8])
|
629
635
|
y = abscoord(array[8:13])
|
630
636
|
self._describe(array, f"Move {param} XY ({x}μm, {y}μm)")
|
631
|
-
if
|
637
|
+
if x != 0 or y != 0:
|
632
638
|
try:
|
633
639
|
self.device.driver.move_abs(
|
634
640
|
f"{x / 1000}mm",
|
@@ -637,10 +643,7 @@ class RuidaEmulator:
|
|
637
643
|
except AttributeError:
|
638
644
|
pass
|
639
645
|
else:
|
640
|
-
|
641
|
-
self.device.driver.home()
|
642
|
-
except AttributeError:
|
643
|
-
pass
|
646
|
+
self._home_device()
|
644
647
|
elif array[1] == 0x30 or array[1] == 0x70:
|
645
648
|
x = abscoord(array[3:8])
|
646
649
|
y = abscoord(array[8:13])
|
meerk40t/ruida/plugin.py
CHANGED
@@ -93,6 +93,7 @@ def plugin(kernel, lifecycle=None):
|
|
93
93
|
jogless=False,
|
94
94
|
man_in_the_middle=None,
|
95
95
|
bridge=False,
|
96
|
+
remainder=None,
|
96
97
|
**kwargs,
|
97
98
|
):
|
98
99
|
"""
|
@@ -101,10 +102,14 @@ def plugin(kernel, lifecycle=None):
|
|
101
102
|
controls that type of device. This would then be sent to the device in a
|
102
103
|
somewhat agnostic fashion.
|
103
104
|
"""
|
105
|
+
if remainder and remainder.lower() in ("stop", "quit"):
|
106
|
+
quit = True
|
107
|
+
|
104
108
|
root = kernel.root
|
105
109
|
ruidacontrol = root.device.lookup("ruidacontrol")
|
106
110
|
if ruidacontrol is None:
|
107
111
|
if quit:
|
112
|
+
channel(_("No control instance to stop."))
|
108
113
|
return
|
109
114
|
ruidacontrol = RuidaControl(root)
|
110
115
|
root.device.register("ruidacontrol", ruidacontrol)
|
meerk40t/ruida/rdjob.py
CHANGED
@@ -663,6 +663,7 @@ class RDJob:
|
|
663
663
|
self.x = x
|
664
664
|
self.y = y
|
665
665
|
ox, oy = matrix.transform_point([self.x, self.y])
|
666
|
+
# print (f"Will generate plotcut with power: {self.power}")
|
666
667
|
self.plotcut = PlotCut(
|
667
668
|
settings={
|
668
669
|
"speed": self.speed,
|
@@ -672,9 +673,8 @@ class RDJob:
|
|
672
673
|
)
|
673
674
|
self.plotcut.plot_init(int(round(ox)), int(round(oy)))
|
674
675
|
tx, ty = matrix.transform_point([x, y])
|
675
|
-
self.
|
676
|
-
|
677
|
-
)
|
676
|
+
# power is not a fraction of self.power, but just denoting laser on or off.
|
677
|
+
self.plotcut.plot_append(int(round(tx)), int(round(ty)), power)
|
678
678
|
self.x = x
|
679
679
|
self.y = y
|
680
680
|
|
@@ -1276,7 +1276,7 @@ class RDJob:
|
|
1276
1276
|
else:
|
1277
1277
|
desc = "Unknown Command!"
|
1278
1278
|
if self.channel:
|
1279
|
-
prefix = f"{offset:06x}" if offset is not None else
|
1279
|
+
prefix = f"{offset:06x}" if offset is not None else ""
|
1280
1280
|
self.channel(f"{prefix}-**-> {str(bytes(array).hex())}\t({desc})")
|
1281
1281
|
|
1282
1282
|
def unswizzle(self, data):
|
@@ -1422,7 +1422,7 @@ class RDJob:
|
|
1422
1422
|
self.laser_device_0()
|
1423
1423
|
if air == 1:
|
1424
1424
|
self.air_assist_on()
|
1425
|
-
elif air==2:
|
1425
|
+
elif air == 2:
|
1426
1426
|
self.air_assist_off()
|
1427
1427
|
self.speed_laser_1(speed)
|
1428
1428
|
self.laser_on_delay(0)
|
meerk40t/tools/geomstr.py
CHANGED
@@ -658,6 +658,14 @@ class Pattern:
|
|
658
658
|
current = 0j
|
659
659
|
|
660
660
|
for entry in pattern(a, b, *args, **kwargs):
|
661
|
+
if (
|
662
|
+
not isinstance(entry, (list, tuple))
|
663
|
+
or len(entry) < 3
|
664
|
+
or np.isnan(entry[1])
|
665
|
+
or np.isnan(entry[2])
|
666
|
+
):
|
667
|
+
# If the entry is not a list or tuple, or if the first element is NaN, we just skip it.
|
668
|
+
continue
|
661
669
|
key = entry[0].lower()
|
662
670
|
if key == "m":
|
663
671
|
current = complex(entry[1], entry[2])
|
@@ -715,6 +723,13 @@ class Pattern:
|
|
715
723
|
@param y1:
|
716
724
|
@return:
|
717
725
|
"""
|
726
|
+
try:
|
727
|
+
if np.isnan(x0) or np.isnan(y0) or np.isnan(x1) or np.isnan(y1):
|
728
|
+
# If any of the coordinates are NaN, we cannot generate a pattern.
|
729
|
+
return Geomstr()
|
730
|
+
except TypeError:
|
731
|
+
# If the coordinates are not numbers, we cannot generate a pattern.
|
732
|
+
return Geomstr()
|
718
733
|
cw = self.cell_width
|
719
734
|
ch = self.cell_height
|
720
735
|
px = self.padding_x
|
@@ -3,17 +3,17 @@ meerk40t/constants.py,sha256=iTcOFJF_MLo3Ugms_A5kyz5MM0Ln9ZlZweMepW6Peto,203
|
|
3
3
|
meerk40t/external_plugins.py,sha256=OQ2475hUr9KJDmrIip4zyf-851igd5n6IIMrsAvnA-U,2126
|
4
4
|
meerk40t/external_plugins_build.py,sha256=8pwgdxSpsQMdiXJAX9kXQUc0-Dw9AMBgBfcLbTLAKfI,857
|
5
5
|
meerk40t/internal_plugins.py,sha256=lMslowIIev1t1mf_VTewNwNgFLn1W2xTCqa9Je00Bjw,3455
|
6
|
-
meerk40t/main.py,sha256=
|
6
|
+
meerk40t/main.py,sha256=OV93S9IrOENthfVlWJvH8P3heBVTpoEJyzdm-3vbW9Y,7572
|
7
7
|
meerk40t/svgelements.py,sha256=OlHkjm9kDgx6ARGJ3M2Fyd2kMi06kWJizEt8zzV5xX8,333052
|
8
8
|
meerk40t/balormk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
9
9
|
meerk40t/balormk/balor_params.py,sha256=S-kwGaHfBtXWDgtZlaudvQN_HkXPqlQyp8xVh5iSxW0,4290
|
10
10
|
meerk40t/balormk/clone_loader.py,sha256=L2aMhCgvbKynqXcX3bVnvEtrL9EN26PBXNABUuEAJlU,20815
|
11
|
-
meerk40t/balormk/controller.py,sha256=
|
11
|
+
meerk40t/balormk/controller.py,sha256=cOrSTNuu9z8l2AfiHr8j4q5ATv9Na72U2seWEf6CJss,50229
|
12
12
|
meerk40t/balormk/cylindermod.py,sha256=uHcH9gDJffr9hoLwkFp0frFeBRsUiGg9MJZjMx3F0z0,2223
|
13
13
|
meerk40t/balormk/device.py,sha256=LjKr8lvACsKpb57RsGPo7m38IElJAotajMMzWlmqzgU,33735
|
14
14
|
meerk40t/balormk/driver.py,sha256=iFgQ6EoSTvCNDjJGqJTIeRmTw-HE1x7gRO47U0fjb7U,27909
|
15
15
|
meerk40t/balormk/galvo_commands.py,sha256=b09BinrPWwo4KYTMVdUFGtk_jGl1wEwngfSGwaqsK7g,42584
|
16
|
-
meerk40t/balormk/livelightjob.py,sha256=
|
16
|
+
meerk40t/balormk/livelightjob.py,sha256=sios52dTkUnE_z6Zek0L0WYbVS-h9lKD5HcugIVk2Fk,17962
|
17
17
|
meerk40t/balormk/mock_connection.py,sha256=FCaInibW3wkGAL8GTqsB1As4Yfv0u33k6soTpC6hjcs,4295
|
18
18
|
meerk40t/balormk/plugin.py,sha256=NhZ0oGJM_msmradpn2QkBgjukPO4_r_-aonLNTZcaVM,4887
|
19
19
|
meerk40t/balormk/usb_connection.py,sha256=A6xgGKfjH95xdwJi2ytsKVj-GtsvhFeItkjykVRrgfI,11374
|
@@ -35,7 +35,7 @@ meerk40t/ch341/libusb.py,sha256=48NYQsgO7j-Sh8itRVLmC56bjjTyXIsY0lAjdBKV9yQ,2137
|
|
35
35
|
meerk40t/ch341/mock.py,sha256=aaBXkC1KPRtyXweCi2LiyS5vDysNBVwZBk7Dw6ppymc,5497
|
36
36
|
meerk40t/ch341/windriver.py,sha256=nEXAA0P-F7c-HL11kSJWUj1ZEelCPZKAqDEM-vDQ7Oo,5192
|
37
37
|
meerk40t/core/__init__.py,sha256=hHHkA6qmojSU-5L1uDC_4A-EYfT38nbiYclZqKDdktI,14
|
38
|
-
meerk40t/core/bindalias.py,sha256=
|
38
|
+
meerk40t/core/bindalias.py,sha256=ZeCdsIwr9vz1aVjZNcNrLvuIF8qOV9Jm1mZ9c153HEI,18516
|
39
39
|
meerk40t/core/core.py,sha256=plyFMXXzGjNRRt6WeBuha5g7g0STaWd2I8ZAk-pDQGE,865
|
40
40
|
meerk40t/core/cutplan.py,sha256=D-_ibSfsCWeI9QFoH_4QKAzmyGXNpL0s3lLuFJZrtFw,75668
|
41
41
|
meerk40t/core/drivers.py,sha256=uSI5quDubayhmgsQ5GqHlmCiDIgJXwQ16tL0TfgwvPI,9654
|
@@ -46,11 +46,11 @@ meerk40t/core/parameters.py,sha256=cJYN0KAmvP8Iho2JdDucP2Q68vlj0nRI6aVK-Qdr3PE,1
|
|
46
46
|
meerk40t/core/planner.py,sha256=CG7ygD96hWUZdGYPqpMR1qvevB929oIs0QbYnv55Syg,36711
|
47
47
|
meerk40t/core/plotplanner.py,sha256=p_YsaSoPAdvCL1aAsY2q8sfHwCMwRPP-SG9ebcTnZbo,23177
|
48
48
|
meerk40t/core/space.py,sha256=0Epmr5hYHkw1shU1OiEt_tK9eq7BRc8XWhRn7tQ6Po8,4002
|
49
|
-
meerk40t/core/spoolers.py,sha256=
|
49
|
+
meerk40t/core/spoolers.py,sha256=PMG-BR78EfroPTnjh--fYbfh_-j1yx5dT0qzX_mpRuQ,25091
|
50
50
|
meerk40t/core/svg_io.py,sha256=aBIHEGiAp5q3xTPFumA0kfhFb0Yd9Wp-uIU1zOsMS1Y,70520
|
51
51
|
meerk40t/core/treeop.py,sha256=_L8Vv5Gp2JPxFzOZxsU17XiVFVrusmzLOHo5QtCH5CA,15190
|
52
52
|
meerk40t/core/undos.py,sha256=VAvR4RZXp-jQC498JdqXYqyy2g28e3e6P7rnIfdH50A,11049
|
53
|
-
meerk40t/core/units.py,sha256=
|
53
|
+
meerk40t/core/units.py,sha256=82L3aJGPqd_eIPkuo28dH_Y9O03y2k3BHWmoqooysps,23352
|
54
54
|
meerk40t/core/view.py,sha256=4y5DI0b9C0FTSQvMo-5Sf2c-Qvc3zZjwUM2zLqr5UI0,12641
|
55
55
|
meerk40t/core/webhelp.py,sha256=2IuysYKzjQnIObombd1tTQmEqsdvpumh-xBTyr3Z4iM,2807
|
56
56
|
meerk40t/core/wordlist.py,sha256=Rta262IKuSdNwYliLhgNUI0lcR2nOlvtMH10zKvD7eo,18325
|
@@ -65,28 +65,28 @@ meerk40t/core/cutcode/homecut.py,sha256=fsYY2MPU68hY5WScM2atnRhWcKtReb9ePzB_L0uC
|
|
65
65
|
meerk40t/core/cutcode/inputcut.py,sha256=-xyCRLjxT-CoKIU0LfITWmwnKzW75HGd_yDhKUZK8WM,742
|
66
66
|
meerk40t/core/cutcode/linecut.py,sha256=QRXfSTa0iAQFKBFhBO2qXGt5vF_LZMeP-BGa0QX35TA,919
|
67
67
|
meerk40t/core/cutcode/outputcut.py,sha256=xiYWfGw0L17Fc6QHXIgjbHfNGnHeMlW_VPIIZy9KBr0,752
|
68
|
-
meerk40t/core/cutcode/plotcut.py,sha256=
|
68
|
+
meerk40t/core/cutcode/plotcut.py,sha256=FUufzVnT_k2X5Ni3sh78oRUJW-0ePb1Nu9ISDqieJBw,10737
|
69
69
|
meerk40t/core/cutcode/quadcut.py,sha256=zMZ_KRv0fWdXwrZgPTidZ6UqqzTV9hP63POivxXmVIk,1592
|
70
70
|
meerk40t/core/cutcode/rastercut.py,sha256=azBJhFJS1zhRhjUUvB553HHKDpts_eDijKdXerUKwTg,4793
|
71
71
|
meerk40t/core/cutcode/waitcut.py,sha256=E5dOO5-LBUVBcP9_qClPkChYBNhQ8ElwucWqEkTlgRE,866
|
72
72
|
meerk40t/core/elements/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
73
73
|
meerk40t/core/elements/align.py,sha256=r68DOSr9DgkwbT8BvjoPGxtgJv52Hyz0YDMIFFIgMkA,30177
|
74
|
-
meerk40t/core/elements/branches.py,sha256=
|
75
|
-
meerk40t/core/elements/clipboard.py,sha256=
|
74
|
+
meerk40t/core/elements/branches.py,sha256=TH6VXV9rtwCnOqP_RrtDW_YPhWfhAlA4HeYT6KsF0L0,67382
|
75
|
+
meerk40t/core/elements/clipboard.py,sha256=RXS3nYKmDmonYDIyYQTSaQTy19ezTLYXelwJ2dciILo,8190
|
76
76
|
meerk40t/core/elements/element_treeops.py,sha256=D2PzNY9NbMU_Qp9tVvs9G5IGdiSHruI1-Ik91nrYm6M,174699
|
77
77
|
meerk40t/core/elements/element_types.py,sha256=MvHz7cYG1s4wAB215ZlEd1i4zanc2vv8iOxWzU0J4ys,2334
|
78
|
-
meerk40t/core/elements/elements.py,sha256=
|
79
|
-
meerk40t/core/elements/files.py,sha256=
|
80
|
-
meerk40t/core/elements/geometry.py,sha256=
|
81
|
-
meerk40t/core/elements/grid.py,sha256=
|
78
|
+
meerk40t/core/elements/elements.py,sha256=pkzMO1xUunhr1RvbMPR5QHJY-1JzsImAWJL4NdZ38hE,181797
|
79
|
+
meerk40t/core/elements/files.py,sha256=Cki0DEXjJA0vj18QTFJ-9QX4UY_gj7aM-uBiueAvkUU,4569
|
80
|
+
meerk40t/core/elements/geometry.py,sha256=tvIz3Rbr-yhwwcJjlAL8zQqhfHlDvi7CJ9M6NYtQ5vU,19464
|
81
|
+
meerk40t/core/elements/grid.py,sha256=ub3AV44gFjqz3RecaQl-nQWpPgQZaaCY08D29toBApk,19639
|
82
82
|
meerk40t/core/elements/materials.py,sha256=FvypUyQ7hVf3fP8_cyLKYFGra9c-4rRgnUF1F_hd6Es,5873
|
83
83
|
meerk40t/core/elements/notes.py,sha256=tReyNmqe5YwC2IntMJZ8f0qvKw0oH0RU5He34TKfgt4,1781
|
84
|
-
meerk40t/core/elements/offset_clpr.py,sha256=
|
84
|
+
meerk40t/core/elements/offset_clpr.py,sha256=XZ7fA9nUdbhBUdJUD6qkyDirmBLOs7-DBJM44yWOhWI,35562
|
85
85
|
meerk40t/core/elements/offset_mk.py,sha256=LUjGbVgvPsHyy5T6AsB65Icok-SYl-GBJWyigdcRgfQ,37917
|
86
86
|
meerk40t/core/elements/penbox.py,sha256=kW162SViOSMxJukBHafQa1i0H0qfgPhiPWbw3NrB8fs,12837
|
87
|
-
meerk40t/core/elements/placements.py,sha256=
|
88
|
-
meerk40t/core/elements/render.py,sha256=
|
89
|
-
meerk40t/core/elements/shapes.py,sha256=
|
87
|
+
meerk40t/core/elements/placements.py,sha256=4h45hmeSBhhxd6Bi_peq_-dNmUmHHXCFAY9df5UP3gs,10901
|
88
|
+
meerk40t/core/elements/render.py,sha256=x9wU_cGjXPWOjcTl_X4dtAIAJEs4YzIJpJPrH2TGriQ,27806
|
89
|
+
meerk40t/core/elements/shapes.py,sha256=ZVbjYzVm_H4eP3uHuyYe0UApU0n8zAV6_9i_10lc0ZM,111454
|
90
90
|
meerk40t/core/elements/testcases.py,sha256=4Oqq2ruNh_E71LmxHkSUC93Bo6_A8GPDamw73xJolHk,3758
|
91
91
|
meerk40t/core/elements/trace.py,sha256=OT2hWFKAVflHJS1BHu12zoUyohFpIFzvEvlfGArgZug,20427
|
92
92
|
meerk40t/core/elements/tree_commands.py,sha256=KkB1h3FSNNpflBEsJfLEhFGDR3q2IsJHCSGyXYS4BQE,14612
|
@@ -99,9 +99,9 @@ meerk40t/core/node/branch_elems.py,sha256=pe1baIxNpkGXX0Uoes6PTStq_leGuTTYDoRc7Y
|
|
99
99
|
meerk40t/core/node/branch_ops.py,sha256=dtezh9pPRe0Pch3aRdnNTdcCNiblRyP_RTk0ZzQejtY,1425
|
100
100
|
meerk40t/core/node/branch_regmark.py,sha256=-wo8J69dVind2-DNTDQrZZBiANLeWXP7E4Z1l7VcnfY,1501
|
101
101
|
meerk40t/core/node/cutnode.py,sha256=8bN-oa0ZQzyQ4li9-bnP1U4m_EOKxqKJms8ltnDsweU,839
|
102
|
-
meerk40t/core/node/effect_hatch.py,sha256=
|
103
|
-
meerk40t/core/node/effect_warp.py,sha256=
|
104
|
-
meerk40t/core/node/effect_wobble.py,sha256=
|
102
|
+
meerk40t/core/node/effect_hatch.py,sha256=1EXbiIhttbhZwLUov__gnFoAQA4XuetJynZ7-sEH0sk,12389
|
103
|
+
meerk40t/core/node/effect_warp.py,sha256=C_FNnJrZ8yAOFzFfXWMJoXDa-ljRIaNUqQ3rrPPZVxc,13797
|
104
|
+
meerk40t/core/node/effect_wobble.py,sha256=Q4sRz8dKFhmZfgojtPJi9R6rvLYA8-R1tOKchhF8h1M,14855
|
105
105
|
meerk40t/core/node/elem_ellipse.py,sha256=NJTNqe3F95qxLlGUNR-WUp1Ulr7mswjbtiIztNIwVWo,14429
|
106
106
|
meerk40t/core/node/elem_image.py,sha256=SfpBG-gl9dR4JAghsoJctTnNdEnWMZwwUXu96iIKywY,43878
|
107
107
|
meerk40t/core/node/elem_line.py,sha256=wAMqCl8PGOCCk4NwzDLdlPyGHe4TybyvbJ8nLshv0Fc,12777
|
@@ -121,7 +121,7 @@ meerk40t/core/node/nutils.py,sha256=YfET5o-9Q-2f-8TNTdk-xruSDwpnzD4rhRBcCZKvhyI,
|
|
121
121
|
meerk40t/core/node/op_cut.py,sha256=j-ZXhcrIlr2Z6Bi8Dra9QldXSbhoEhXPvSPTRaM0Yk8,17875
|
122
122
|
meerk40t/core/node/op_dots.py,sha256=OfoQdOjEGh1RV8J0t-V7Rd3nAr0tO3-aT-FG3dRcHHQ,11570
|
123
123
|
meerk40t/core/node/op_engrave.py,sha256=dczEX1oGQEOB8rNP_Y1DOD65BgljAXBQJa26xLCo4uc,15873
|
124
|
-
meerk40t/core/node/op_image.py,sha256=
|
124
|
+
meerk40t/core/node/op_image.py,sha256=qh0_F-Il8HGj2XjHQBY57-m4pAMLm8iMfa53wp_vyfk,33564
|
125
125
|
meerk40t/core/node/op_raster.py,sha256=-iAWKvhuefZozaJRySXvtzjQhw9bbCMsDTlH1bNHyGU,32433
|
126
126
|
meerk40t/core/node/place_current.py,sha256=YbMwOZP3pCeINlKLIvxihCuon1WGFlo8TyDtqo0Lojo,1216
|
127
127
|
meerk40t/core/node/place_point.py,sha256=XEA3yGejiwuGUt2H1IbNoTUX2Pfdg2_qBAGRAE9IMKE,11439
|
@@ -179,12 +179,12 @@ meerk40t/grbl/control.py,sha256=WiWMOzXOvmIu1EWHHsGYN0o2sg5Pe33svWsfbRjuCPg,2622
|
|
179
179
|
meerk40t/grbl/controller.py,sha256=zxQ733MFzgEssaQ1NlxPyAqzqf3fLH39evDxVjyMHK4,42040
|
180
180
|
meerk40t/grbl/device.py,sha256=C30K5_9uwKjy9mrc6TYBM2gKW1Xc3lvvQJcSnNQPbo4,44216
|
181
181
|
meerk40t/grbl/driver.py,sha256=npde5mUwUkP3ZdCrnwx3TdF_O5F0LF6XbRXLHNFIYY4,33286
|
182
|
-
meerk40t/grbl/emulator.py,sha256=
|
183
|
-
meerk40t/grbl/gcodejob.py,sha256=
|
182
|
+
meerk40t/grbl/emulator.py,sha256=tTBipjjzH6VGRamyHG_paQqIbJQxAIed9t__Sr8l1No,21910
|
183
|
+
meerk40t/grbl/gcodejob.py,sha256=lkxlmUE8-aTcZxYt7XbUzXct2cR0MZacr1iBqWMmEcU,29644
|
184
184
|
meerk40t/grbl/interpreter.py,sha256=jzUess5Ywxj_O9pkZL3gAWdRmBiGvRetRWt9SDC39sY,1569
|
185
185
|
meerk40t/grbl/loader.py,sha256=UbXfTCJdkRbQBrEvlKcrZ2cfGiz8NJC8heyIOGYpyqo,596
|
186
186
|
meerk40t/grbl/mock_connection.py,sha256=p-J8u1znNdNJ7olprZF-A5Ki9Kd_5Wls_oHH_85aVv4,1797
|
187
|
-
meerk40t/grbl/plugin.py,sha256=
|
187
|
+
meerk40t/grbl/plugin.py,sha256=nbZ4T9lj8K6SZco2eAvbS9jqUyvS3KGgu1tXyASa_U4,10856
|
188
188
|
meerk40t/grbl/serial_connection.py,sha256=n0Uqvx_4K3KNpPWpvveRUF19uQ1gFDSVQ2-TFTfaCus,3188
|
189
189
|
meerk40t/grbl/tcp_connection.py,sha256=Wlr2CXGBCiedfEuxArgLqPLpO9ybaYzk-WEqt93nAvQ,2741
|
190
190
|
meerk40t/grbl/ws_connection.py,sha256=Vr2EqJvtgrEHPIJPpb5-FO7gOz1H5o6Qto5T0se_iz8,4028
|
@@ -227,7 +227,7 @@ meerk40t/gui/navigationpanels.py,sha256=N6GD-AkFUagIoNKQi7AKbskJs7Hx75-_3xMjUBv0
|
|
227
227
|
meerk40t/gui/notes.py,sha256=UNuXa0V0qj7tYvWbTnFr_plkRziRANhgqJXDIx89OUY,4573
|
228
228
|
meerk40t/gui/opassignment.py,sha256=b6UCXZboOVsnmymTrZ1ycn7sryF98EwrIhXizpyIWFQ,14584
|
229
229
|
meerk40t/gui/operation_info.py,sha256=Y5zyMOHPRQdT06gQ7WUeLSJgoCJsp5D5mhlufb_VxvQ,11129
|
230
|
-
meerk40t/gui/plugin.py,sha256=
|
230
|
+
meerk40t/gui/plugin.py,sha256=N0Kn3emZegEAxx_qThsb0F11HWKrNb1ZHbpZwxBDknw,20010
|
231
231
|
meerk40t/gui/position.py,sha256=9wvNKuJrM5c-5l-4R7B2ZFXJtc7Q0KLlyST70ZuFdjI,27387
|
232
232
|
meerk40t/gui/preferences.py,sha256=mD-bYAW3gLkDv9z_r8UjxfNVI6FhRr9XwiVpilelBIU,30840
|
233
233
|
meerk40t/gui/ribbon.py,sha256=HYLiAhdnL9VTjLazBNlmlz2CEuH8sxFEP3jSd-HOObs,90472
|
@@ -236,18 +236,18 @@ meerk40t/gui/simulation.py,sha256=mzkWkb8QDgY3CSkaq9FvGRxkD4vdgFWeeDsM3Ubdv5k,96
|
|
236
236
|
meerk40t/gui/snapoptions.py,sha256=Vd1PbMWyWSCXeRIOqc12ksx_lUZyNZzV-g9uJ23LcsA,8404
|
237
237
|
meerk40t/gui/spoolerpanel.py,sha256=gu3ncSRMo2GEJyHZzepXEG93sv9ct0v6un8hke1k2iI,47203
|
238
238
|
meerk40t/gui/themes.py,sha256=jVt5Km7if0IVV1MnpGvtvMlbvRqpO_DQzLLen_QzsXs,8299
|
239
|
-
meerk40t/gui/tips.py,sha256=
|
239
|
+
meerk40t/gui/tips.py,sha256=y0FUqMYTW8JXvI7wE7Iy3K3uQwuWfJmL24wif3NgcD4,23460
|
240
240
|
meerk40t/gui/usbconnect.py,sha256=1kznvNlXlT14NCev1PngYFmvmTKXLGxoti94FuoWF28,3018
|
241
241
|
meerk40t/gui/wordlisteditor.py,sha256=PHuz9wEkyGtK2IuoRTZvI1xHJ_rC6p6kEmUnLFQZlxI,36955
|
242
242
|
meerk40t/gui/wxmeerk40t.py,sha256=VlIn5N2vxt6a9rEUd-2XgX67pHwo20kJI-J-XcGXKFo,55540
|
243
|
-
meerk40t/gui/wxmmain.py,sha256=
|
243
|
+
meerk40t/gui/wxmmain.py,sha256=SGJXSmQB70Ixy1oZxUXXSXiMGuwIX-TmKq4ENIo-b7M,218917
|
244
244
|
meerk40t/gui/wxmribbon.py,sha256=-qiWL0c2fNfl6d-bwHF_PROKy3i34aTs9ujCaw37tYU,61708
|
245
245
|
meerk40t/gui/wxmscene.py,sha256=KVx8DMjWwWd1HidaldYKChhYTlaSz5QzvGm-dFPyzYU,71657
|
246
246
|
meerk40t/gui/wxmtree.py,sha256=_guVz39SxL7xQ_OoX7U6OvqrQ9eSbXnPzlI40G03VMc,93430
|
247
247
|
meerk40t/gui/wxutils.py,sha256=zydAiHhpQZJIqoTP-8Lj00XajuMYmiAACieJHKfq6os,68424
|
248
248
|
meerk40t/gui/zmatrix.py,sha256=kNK4RQ9F9AFW32Gow4u2ZjLdmQXMPBhhv9DEhMU7utI,2705
|
249
249
|
meerk40t/gui/help_assets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
250
|
-
meerk40t/gui/help_assets/help_assets.py,sha256=
|
250
|
+
meerk40t/gui/help_assets/help_assets.py,sha256=7K79w6oAuSjXGLixKXB48BjJEvBiC_fkrR4wBekg0y8,59771
|
251
251
|
meerk40t/gui/propertypanels/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
252
252
|
meerk40t/gui/propertypanels/attributes.py,sha256=p9hWJIOl5MNLCTyf3ZfyN2L5HRf0ILoNp990c2HXFTw,54392
|
253
253
|
meerk40t/gui/propertypanels/blobproperty.py,sha256=dFKFM-OGyQszf6BZlyhWh_KPgwQr1c4tGnuJcuWuXu0,3529
|
@@ -359,7 +359,7 @@ meerk40t/kernel/states.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
359
359
|
meerk40t/lihuiyu/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
360
360
|
meerk40t/lihuiyu/controller.py,sha256=VGnoWfs13JMUNXg7t2nzGW3OIt27UYXkzFoT1Lv1yWs,32973
|
361
361
|
meerk40t/lihuiyu/device.py,sha256=lhNQ__lnLhARhuCDUwl54vDtzOXSrSArk7tFblkMy7Y,49802
|
362
|
-
meerk40t/lihuiyu/driver.py,sha256=
|
362
|
+
meerk40t/lihuiyu/driver.py,sha256=2wEeXuVupNMA1WXrG1USnTpO9_K9zeYL__9VIIfTmak,51405
|
363
363
|
meerk40t/lihuiyu/interpreter.py,sha256=BzzWGREVHnmqO1E3hRWA5vLdwqE59oiDo7ePqtP1RZo,1639
|
364
364
|
meerk40t/lihuiyu/laserspeed.py,sha256=GkcUlOVjkSwtybhosS05Wd7tVo8EM0dIfqpIPf2hta0,16351
|
365
365
|
meerk40t/lihuiyu/loader.py,sha256=zwOINnkqfVlVjY-MQIBpF6BtpiTRGO7EzaaH-oRUOAY,2618
|
@@ -412,12 +412,12 @@ meerk40t/ruida/control.py,sha256=ir9uddn_hZ-QjPxGWBKLc6xy1JtqXVBE904lLR63dUA,104
|
|
412
412
|
meerk40t/ruida/controller.py,sha256=RIdFegB_tuaI1q2Asl3pXNTERMVvl8ltYL9kQNy4mTU,3460
|
413
413
|
meerk40t/ruida/device.py,sha256=iojk8_ry5chLCBGnYfgG7tPddhFQQf-ncS5UOFi5P8Y,23656
|
414
414
|
meerk40t/ruida/driver.py,sha256=4Hgm5ptXjARThqf76k1AqznpHl7PgJ7FIZwswnFlKPg,17340
|
415
|
-
meerk40t/ruida/emulator.py,sha256=
|
415
|
+
meerk40t/ruida/emulator.py,sha256=8S-XbfM-OqXMFa16o9K9XQku8VyoyMyTsTdDZM0xyP8,55516
|
416
416
|
meerk40t/ruida/exceptions.py,sha256=xJtpaxuLOLANQuo15p6Fl0Lgq3eUwODCIsWw0TQm78s,116
|
417
417
|
meerk40t/ruida/loader.py,sha256=8gHnKX3D5V7qQltvueO-m6X9-xARjVEl8rjYIpKqLbk,1516
|
418
418
|
meerk40t/ruida/mock_connection.py,sha256=Qig2x5s01f6U3BKHNlZockyaJTWHhfgcVV6w895R8R4,1577
|
419
|
-
meerk40t/ruida/plugin.py,sha256=
|
420
|
-
meerk40t/ruida/rdjob.py,sha256=
|
419
|
+
meerk40t/ruida/plugin.py,sha256=NRuDolYS-HNrxShEPRxhFlcLS8LCHJllWZd038agXOY,4279
|
420
|
+
meerk40t/ruida/rdjob.py,sha256=JzQl4lEWnMdv33OiIdrW3C3JD6gEPJvu_u4UuK1eJJY,71977
|
421
421
|
meerk40t/ruida/serial_connection.py,sha256=RJ95TX933rAD3eUL2Uz48xwhm-7wm1m3Jo-Tv6jsypk,3573
|
422
422
|
meerk40t/ruida/tcp_connection.py,sha256=3utEZQDDUI6DzYJP83RABoXAFB-wEYGVRaoNsuWqCqE,4657
|
423
423
|
meerk40t/ruida/udp_connection.py,sha256=S6eSoh9smYWmax6VdSOTJyc9ixEStgvy7bWVkHgqtDU,2130
|
@@ -428,7 +428,7 @@ meerk40t/ruida/gui/ruidacontroller.py,sha256=nJpZPW-dy7YbxxLnHzmYcU6guc-6tK1oJIw
|
|
428
428
|
meerk40t/ruida/gui/ruidaoperationproperties.py,sha256=pMEZFyWHDsbzoIfIKrFrKsw2IDPEK2HhHDw3HDQM3dw,1002
|
429
429
|
meerk40t/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
430
430
|
meerk40t/tools/driver_to_path.py,sha256=eeQOGZO-08CJBqeF9epQv-P7T3dcpP2grMILW5LLd3U,20851
|
431
|
-
meerk40t/tools/geomstr.py,sha256=
|
431
|
+
meerk40t/tools/geomstr.py,sha256=kSR9E-LRxZuA1hzYCnk1nf_YwHB5RqQee1QoMG4CPJg,208380
|
432
432
|
meerk40t/tools/jhfparser.py,sha256=CGC9C2cthrMWfUfumFs5EBzVCUP4PldwIqkf1Qhq52k,14395
|
433
433
|
meerk40t/tools/kerftest.py,sha256=dtm4sP-cXQdwr3tkEImif30lnd1tyEYGxnN6vUTWe2M,36449
|
434
434
|
meerk40t/tools/livinghinges.py,sha256=oO9ERPh2ILXpJj3-DvYyA3P7Y6FR2ACf3dbBehJlgR4,46949
|
@@ -440,10 +440,10 @@ meerk40t/tools/rasterplotter.py,sha256=pfIIwWjBaVnJQH2dSyfj7nj-cAK7AGmTU0kD6dBzz
|
|
440
440
|
meerk40t/tools/shxparser.py,sha256=5CPV4HW5ulH71hWtiIFMFj0-Jn4-OqXRCdaimjOSfOs,35169
|
441
441
|
meerk40t/tools/ttfparser.py,sha256=Dqd8msoqiaJAyFQ-Kdr3sBGyi5QxJFq0EOVf6-LM4Ac,61301
|
442
442
|
meerk40t/tools/zinglplotter.py,sha256=wsXA9jnORb0AR0Bvrhcow-hROJhgDeLRcE8DmnEbiWo,20164
|
443
|
-
meerk40t-0.9.
|
444
|
-
meerk40t-0.9.
|
445
|
-
meerk40t-0.9.
|
446
|
-
meerk40t-0.9.
|
447
|
-
meerk40t-0.9.
|
448
|
-
meerk40t-0.9.
|
449
|
-
meerk40t-0.9.
|
443
|
+
meerk40t-0.9.7940.dist-info/LICENSE,sha256=sMsd9pY-cLfcNzUkQ2DvZobE0qpiiLMmoPfJMBTznNY,1065
|
444
|
+
meerk40t-0.9.7940.dist-info/METADATA,sha256=5v5vKxOkUu1vNyCQgBThuFi6mUlpoQO2Nost8xf2RAQ,8014
|
445
|
+
meerk40t-0.9.7940.dist-info/WHEEL,sha256=Ll72iyqtt6Rbxp-Q7FSafYA1LeRv98X15xcZWRsFEmY,109
|
446
|
+
meerk40t-0.9.7940.dist-info/entry_points.txt,sha256=5KjPHpJvgQq3-SwLWJQtLE1BvfGeINBae3Josx6fgpk,47
|
447
|
+
meerk40t-0.9.7940.dist-info/top_level.txt,sha256=ng4SDtNom2u-smf8sCHERr74HYQIOJOjZbBlDdlpvjU,9
|
448
|
+
meerk40t-0.9.7940.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
449
|
+
meerk40t-0.9.7940.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|