meerk40t 0.9.7930__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/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
- if hasattr(kernel.args, "maximized") and kernel.args.maximized:
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
- if hasattr(kernel.args, "minimized") and kernel.args.minimized:
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
@@ -4847,7 +4935,7 @@ class MeerK40t(MWindow):
4847
4935
 
4848
4936
  def window_close(self):
4849
4937
  context = self.context
4850
-
4938
+ self.SaveWindowState()
4851
4939
  context.aui = self._mgr.SavePerspective()
4852
4940
  self.on_panes_closed()
4853
4941
  self._mgr.UnInit()
@@ -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
- self.plot_planner.push((last, p))
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 = int(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
- if p_set.power != self.power:
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
meerk40t/main.py CHANGED
@@ -11,7 +11,7 @@ import os.path
11
11
  import sys
12
12
 
13
13
  APPLICATION_NAME = "MeerK40t"
14
- APPLICATION_VERSION = "0.9.7930"
14
+ APPLICATION_VERSION = "0.9.7940"
15
15
 
16
16
  if not getattr(sys, "frozen", False):
17
17
  # If .git directory does not exist we are running from a package like pypi
@@ -634,7 +634,7 @@ class RuidaEmulator:
634
634
  x = abscoord(array[3:8])
635
635
  y = abscoord(array[8:13])
636
636
  self._describe(array, f"Move {param} XY ({x}μm, {y}μm)")
637
- if "Origin" in param:
637
+ if x != 0 or y != 0:
638
638
  try:
639
639
  self.device.driver.move_abs(
640
640
  f"{x / 1000}mm",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: meerk40t
3
- Version: 0.9.7930
3
+ Version: 0.9.7940
4
4
  Summary: MeerK40t LaserCutter Software
5
5
  Home-page: https://github.com/meerk40t/meerk40t
6
6
  Author: Tatarize
@@ -3,7 +3,7 @@ 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=U3iU2hf4cLWHDjPvtdmN_Kue-HllcQtyJ_eBQ1ZJ354,7572
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
@@ -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=YdKaVxpjidzUKiRDM0h93V5FXblEPgi4fdfdZpy2LE4,18282
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
@@ -76,7 +76,7 @@ meerk40t/core/elements/clipboard.py,sha256=RXS3nYKmDmonYDIyYQTSaQTy19ezTLYXelwJ2
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
78
  meerk40t/core/elements/elements.py,sha256=pkzMO1xUunhr1RvbMPR5QHJY-1JzsImAWJL4NdZ38hE,181797
79
- meerk40t/core/elements/files.py,sha256=cuZPrRmvLqdhQ0Nft4Bm4yDQjI44mMR08AMEHSYAfOQ,4548
79
+ meerk40t/core/elements/files.py,sha256=Cki0DEXjJA0vj18QTFJ-9QX4UY_gj7aM-uBiueAvkUU,4569
80
80
  meerk40t/core/elements/geometry.py,sha256=tvIz3Rbr-yhwwcJjlAL8zQqhfHlDvi7CJ9M6NYtQ5vU,19464
81
81
  meerk40t/core/elements/grid.py,sha256=ub3AV44gFjqz3RecaQl-nQWpPgQZaaCY08D29toBApk,19639
82
82
  meerk40t/core/elements/materials.py,sha256=FvypUyQ7hVf3fP8_cyLKYFGra9c-4rRgnUF1F_hd6Es,5873
@@ -86,7 +86,7 @@ meerk40t/core/elements/offset_mk.py,sha256=LUjGbVgvPsHyy5T6AsB65Icok-SYl-GBJWyig
86
86
  meerk40t/core/elements/penbox.py,sha256=kW162SViOSMxJukBHafQa1i0H0qfgPhiPWbw3NrB8fs,12837
87
87
  meerk40t/core/elements/placements.py,sha256=4h45hmeSBhhxd6Bi_peq_-dNmUmHHXCFAY9df5UP3gs,10901
88
88
  meerk40t/core/elements/render.py,sha256=x9wU_cGjXPWOjcTl_X4dtAIAJEs4YzIJpJPrH2TGriQ,27806
89
- meerk40t/core/elements/shapes.py,sha256=wkH68VLcl2jM1f7geQbV--lKIBOhBGjDkCnk7R5Tvg8,111438
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=hlJQvkFRt22JRjF0ILFcsqyZC7jvWGl8MzWs0TGq0Ng,12297
103
- meerk40t/core/node/effect_warp.py,sha256=9I-kTHsbnkFe6FEgmecjXPcx4R66hRFx5oawDPhPowo,13659
104
- meerk40t/core/node/effect_wobble.py,sha256=UDXT-MtgckwHw9kEbHky-sBawNVWOS7-rjMo1HTrEJs,14716
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=HoV8Dz5IbLIFiWsv5XuKW1TR_D5zd0l6qAZ0q-fYLNY,32578
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
@@ -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=6PUx5GPEgOojwofMrHovx74TJYh9cqqd27btnVD000Y,19579
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=gJhKbNA7UKeJXgfTC3UYjAX8OHfcXjb0Ew6XwM2BOwo,22132
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=xqM8SmX0qataIvcz6nZwbJNsUTuUXax3v4npsskG-1U,215072
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=611_dH6Sa3ZE8nh8q6WzU_ERHH7JLqRLo-jTswcR0C8,28488
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=TeFjAKOK4pnjRWNhhBf9_rmcynBi1UtRvKIFPaS2BQg,49991
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,7 +412,7 @@ 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=IUaJv-7JwARa6AyJFKanYtJBjJS6aJkF-Yaqe3lg2XI,55517
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
@@ -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.7930.dist-info/LICENSE,sha256=sMsd9pY-cLfcNzUkQ2DvZobE0qpiiLMmoPfJMBTznNY,1065
444
- meerk40t-0.9.7930.dist-info/METADATA,sha256=Z6pG-w2XQmvbJfn9Ih7qz0alxr3beE4ZZcnHUDClk0s,8014
445
- meerk40t-0.9.7930.dist-info/WHEEL,sha256=Ll72iyqtt6Rbxp-Q7FSafYA1LeRv98X15xcZWRsFEmY,109
446
- meerk40t-0.9.7930.dist-info/entry_points.txt,sha256=5KjPHpJvgQq3-SwLWJQtLE1BvfGeINBae3Josx6fgpk,47
447
- meerk40t-0.9.7930.dist-info/top_level.txt,sha256=ng4SDtNom2u-smf8sCHERr74HYQIOJOjZbBlDdlpvjU,9
448
- meerk40t-0.9.7930.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
449
- meerk40t-0.9.7930.dist-info/RECORD,,
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,,