meerk40t 0.9.7040__py2.py3-none-any.whl → 0.9.7051__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/tools/geomstr.py CHANGED
@@ -187,6 +187,39 @@ def remove(s, i):
187
187
  s[i:-1] = s[i + 1 :]
188
188
 
189
189
 
190
+ def stitcheable_nodes(data, tolerance) -> list:
191
+ out = []
192
+ geoms = []
193
+ # Store all geometries together with an indicator, to which node they belong
194
+ for idx, node in enumerate(data):
195
+ if not hasattr(node, "as_geometry"):
196
+ continue
197
+ for g1 in node.as_geometry().as_contiguous():
198
+ geoms.append((idx, g1))
199
+ if tolerance == 0:
200
+ tolerance = 1e-6
201
+ for idx1, (nodeidx1, g1) in enumerate(geoms):
202
+ for idx2 in range(idx1 + 1, len(geoms)):
203
+ nodeidx2 = geoms[idx2][0]
204
+ g2 = geoms[idx2][1]
205
+ fp1 = g1.first_point
206
+ fp2 = g2.first_point
207
+ lp1 = g1.last_point
208
+ lp2 = g2.last_point
209
+ if (
210
+ abs(lp1 - lp2) <= tolerance
211
+ or abs(lp1 - fp2) <= tolerance
212
+ or abs(fp1 - fp2) <= tolerance
213
+ or abs(fp1 - lp2) <= tolerance
214
+ ):
215
+ if nodeidx1 not in out:
216
+ out.append(nodeidx1)
217
+ if nodeidx2 not in out:
218
+ out.append(nodeidx2)
219
+ # print (f"Stitchable nodes: {len(out)}")
220
+ return [data[idx] for idx in out]
221
+
222
+
190
223
  def stitch_geometries(geometry_list: list, tolerance: float = 0.0) -> list:
191
224
  """
192
225
  Stitches geometries within the given tolerance.
@@ -198,58 +231,75 @@ def stitch_geometries(geometry_list: list, tolerance: float = 0.0) -> list:
198
231
  Returns:
199
232
  List of stitched Geomstr objects, or None if no stitches were made.
200
233
  """
234
+ # def coord(point):
235
+ # return f"{point.real:.2f},{point.imag:.2f}"
201
236
 
202
237
  geometries = [g for g in geometry_list if g is not None]
203
238
  if not geometries:
204
239
  return None
205
240
  if tolerance == 0:
206
241
  tolerance = 1e-6
207
-
208
- stitched_geometries = []
209
- while geometries:
210
- g1 = geometries.pop(0)
211
- stitched = False
212
- for i, g2 in enumerate(stitched_geometries):
213
- for reverse1 in (False, True):
214
- for reverse2 in (False, True):
215
- g1_start = g1.last_point if reverse1 else g1.first_point
216
- g1_end = g1.first_point if reverse1 else g1.last_point
217
- g2_start = g2.last_point if reverse2 else g2.first_point
218
- g2_end = g2.first_point if reverse2 else g2.last_point
219
-
220
- if (
221
- g1_start is None
222
- or g1_end is None
223
- or g2_start is None
224
- or g2_end is None
225
- ):
226
- continue
227
- if abs(g2_end - g1_start) <= tolerance:
228
- if abs(g2_end - g1_start) > 0:
229
- g2.line(g2_end, g1_start)
230
- if reverse1:
231
- g1.reverse()
232
- g2.append(g1, end=False)
233
- stitched_geometries[i] = g2
234
- stitched = True
235
- break
236
- elif abs(g2_start - g1_end) <= tolerance:
237
- if abs(g2_start - g1_end) > 0:
238
- g1.line(g1_end, g2_start)
239
- if reverse1:
240
- g1.reverse()
241
- g2.insert(0, g1.segments[: g1.index])
242
- stitched_geometries[i] = g2
243
- stitched = True
244
- break
245
- if stitched:
242
+ # geometries.sort(key=lambda g: g.first_point)
243
+ anystitches = 1
244
+ pass_count = 0
245
+ # for idx, g in enumerate(geometries):
246
+ # print (f"{idx}: {g.first_point} -> {g.last_point} ({g.index} segments)")
247
+
248
+ while anystitches > 0:
249
+ stitched_geometries = []
250
+ anystitches = 0
251
+ while geometries:
252
+ candidate = geometries.pop(0)
253
+ stitched = False
254
+ for i, target in enumerate(stitched_geometries):
255
+ cand_fp = candidate.first_point
256
+ cand_lp = candidate.last_point
257
+ targ_fp = target.first_point
258
+ targ_lp = target.last_point
259
+ if abs(targ_lp - cand_fp) <= tolerance:
260
+ # Just append g1 to g2
261
+ if abs(targ_lp - cand_fp) > 0:
262
+ target.line(targ_lp, cand_fp)
263
+ target.append(candidate)
264
+ stitched_geometries[i] = target
265
+ stitched = True
266
+ break
267
+ if abs(targ_fp - cand_lp) <= tolerance:
268
+ # Insert g1 at the start of g2
269
+ if abs(targ_fp - cand_lp) > 0:
270
+ candidate.line(cand_lp, targ_fp)
271
+ candidate.append(target)
272
+ stitched_geometries[i] = candidate
273
+ stitched = True
274
+ break
275
+ if abs(targ_fp - cand_fp) <= tolerance:
276
+ # Insert the reverse of g1 at the start
277
+ candidate.reverse()
278
+ if abs(targ_fp - cand_fp) > 0:
279
+ candidate.line(cand_fp, targ_fp)
280
+ candidate.append(target)
281
+ stitched_geometries[i] = candidate
282
+ stitched = True
283
+ break
284
+ if abs(targ_lp - cand_lp) <= tolerance:
285
+ if abs(targ_lp - cand_lp) > 0:
286
+ target.line(targ_lp, cand_lp)
287
+ candidate.reverse()
288
+ target.append(candidate)
289
+ stitched_geometries[i] = target
290
+ stitched = True
246
291
  break
247
- if stitched:
248
- break
249
292
 
250
- if not stitched:
251
- stitched_geometries.append(g1)
293
+ if stitched:
294
+ anystitches += 1
295
+ else:
296
+ stitched_geometries.append(candidate)
252
297
 
298
+ # print (f"Stitch pass {pass_count}: {len(stitched_geometries)} geometries, {anystitches} stitches made, org= {len(geometry_list)}, tolerance={tolerance:.2f}")
299
+ if anystitches > 0:
300
+ # Stitches were made, so lets try again
301
+ geometries = list(stitched_geometries)
302
+ pass_count += 1
253
303
  # Close any remaining small gaps between start and end points.
254
304
  for g in stitched_geometries:
255
305
  if 0 < abs(g.last_point - g.first_point) <= tolerance:
@@ -258,7 +308,6 @@ def stitch_geometries(geometry_list: list, tolerance: float = 0.0) -> list:
258
308
  return stitched_geometries
259
309
 
260
310
 
261
-
262
311
  class Simplifier:
263
312
  # Copyright (c) 2014 Elliot Hallmark
264
313
  # The MIT License (MIT)
@@ -462,7 +462,12 @@ class RasterPlotter:
462
462
  of the width and height.
463
463
  @return:
464
464
  """
465
- if self.final_x is None: # image is blank.
465
+ if self.final_x is None or isinf(self.final_x): # image is blank.
466
+ if self.use_integers:
467
+ return int(round(self.offset_x)), int(round(self.offset_y))
468
+ else:
469
+ return self.offset_x, self.offset_y
470
+ if self.use_integers:
466
471
  if self.use_integers:
467
472
  return int(round(self.offset_x)), int(round(self.offset_y))
468
473
  else:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: meerk40t
3
- Version: 0.9.7040
3
+ Version: 0.9.7051
4
4
  Summary: MeerK40t LaserCutter Software
5
5
  Home-page: https://github.com/meerk40t/meerk40t
6
6
  Author: Tatarize
@@ -3,12 +3,12 @@ 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=fg3fNionawqwZ_MqyNW4Nm0hA-NDyfx0wB9E2UoYnW0,7438
6
+ meerk40t/main.py,sha256=Jdv42_1JvIMkGUOBxVEuyMF15OtIFnRJHYC-VWLKgwU,7568
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=Av0ABrgXew1E77gfHeEEYuU4TDwlQ6lCyiOTeMwXa8o,48621
11
+ meerk40t/balormk/controller.py,sha256=qvSmf2ZEVNzkEMuBevt7gvORgslKXsELvGWGSiQ_uac,48967
12
12
  meerk40t/balormk/cylindermod.py,sha256=uHcH9gDJffr9hoLwkFp0frFeBRsUiGg9MJZjMx3F0z0,2223
13
13
  meerk40t/balormk/device.py,sha256=x9LLuvuG2VTaQnUyali3Z3fadqgriCVcJo4jRLYDpPM,33598
14
14
  meerk40t/balormk/driver.py,sha256=gdqdLqr5Sv2LZp5GK9cSxIMnTHai7fZcEpr0ElA_urc,27500
@@ -37,13 +37,13 @@ meerk40t/ch341/windriver.py,sha256=nEXAA0P-F7c-HL11kSJWUj1ZEelCPZKAqDEM-vDQ7Oo,5
37
37
  meerk40t/core/__init__.py,sha256=hHHkA6qmojSU-5L1uDC_4A-EYfT38nbiYclZqKDdktI,14
38
38
  meerk40t/core/bindalias.py,sha256=YdKaVxpjidzUKiRDM0h93V5FXblEPgi4fdfdZpy2LE4,18282
39
39
  meerk40t/core/core.py,sha256=plyFMXXzGjNRRt6WeBuha5g7g0STaWd2I8ZAk-pDQGE,865
40
- meerk40t/core/cutplan.py,sha256=35jbVfgK3P5D2S7OB6tUAyescIwm-o11vQbqm93dyBU,77495
40
+ meerk40t/core/cutplan.py,sha256=D-_ibSfsCWeI9QFoH_4QKAzmyGXNpL0s3lLuFJZrtFw,75668
41
41
  meerk40t/core/drivers.py,sha256=uSI5quDubayhmgsQ5GqHlmCiDIgJXwQ16tL0TfgwvPI,9654
42
42
  meerk40t/core/exceptions.py,sha256=OPYFL-sAdgaS93-f-zJBbf9-HEEeFlmMJiLMfj6bF-8,260
43
43
  meerk40t/core/laserjob.py,sha256=WCZBp-I1kJ5n8S8ZO14DZQYwnPEQUVoH-2dq8pJTBc4,6896
44
44
  meerk40t/core/logging.py,sha256=hbbkQOuWvbRXkdaW_wkawUMBX-q5OYHvhwcsAuIG1l0,2073
45
45
  meerk40t/core/parameters.py,sha256=cJYN0KAmvP8Iho2JdDucP2Q68vlj0nRI6aVK-Qdr3PE,18846
46
- meerk40t/core/planner.py,sha256=HFhuZ1AVZCFgbeSRznKFHn2hO4n6ndvWyM6WoMkZ3mw,36315
46
+ meerk40t/core/planner.py,sha256=CG7ygD96hWUZdGYPqpMR1qvevB929oIs0QbYnv55Syg,36711
47
47
  meerk40t/core/plotplanner.py,sha256=-zbJIGf42nYGs_Ktrwq80QQC0fhCmfdBNVJibCdgXJA,23104
48
48
  meerk40t/core/space.py,sha256=0Epmr5hYHkw1shU1OiEt_tK9eq7BRc8XWhRn7tQ6Po8,4002
49
49
  meerk40t/core/spoolers.py,sha256=vvbxxYSoACPc_KTAFPWtcp-PIRM55YxtXgLnHI8r13I,25089
@@ -86,14 +86,14 @@ 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=r_b_8Net4_stPm0yPVKjyzA3WELXGZs6Susff5Y7QkI,10680
88
88
  meerk40t/core/elements/render.py,sha256=F-qsV7ii8Zh2xBMO7-orZKptkCbFPXbfahdt2qFXwTE,27382
89
- meerk40t/core/elements/shapes.py,sha256=QbYY9wAe4fhc6MbycMkOLG6KSkvm4RNoljgLkNHBb8Q,106960
89
+ meerk40t/core/elements/shapes.py,sha256=rjWCojJii6qZ36f4evDZ9QhuH9Y--1a58W8VrsUsg0I,105549
90
90
  meerk40t/core/elements/testcases.py,sha256=4Oqq2ruNh_E71LmxHkSUC93Bo6_A8GPDamw73xJolHk,3758
91
91
  meerk40t/core/elements/trace.py,sha256=J4Wre8XfjSKhfZweoi41vUSlRB2KuHCaQQYK9U1g0Zs,20251
92
92
  meerk40t/core/elements/tree_commands.py,sha256=KkB1h3FSNNpflBEsJfLEhFGDR3q2IsJHCSGyXYS4BQE,14612
93
93
  meerk40t/core/elements/undo_redo.py,sha256=clmXAF-v7skKvCJ1DpZFYiegWEyY8eGpy52dc7sdjLk,4130
94
94
  meerk40t/core/elements/wordlist.py,sha256=xk66NrooX1kByML_fDtzoeG8EWDo5UM945TPGFaSFDI,12165
95
95
  meerk40t/core/node/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
96
- meerk40t/core/node/blobnode.py,sha256=ci0TI1v_QMp-k73RHOpB0Qi_hIEk-q3-Nit-tzPrT9E,2801
96
+ meerk40t/core/node/blobnode.py,sha256=KbqLqYIPw2U7e4SHA6yHmC506yw6ShG52BIz60I8fV4,3275
97
97
  meerk40t/core/node/bootstrap.py,sha256=NudxuQ3Cc_bgZljRPihC40VVqIeh2j3IFGhcMDVR-1A,3927
98
98
  meerk40t/core/node/branch_elems.py,sha256=pe1baIxNpkGXX0Uoes6PTStq_leGuTTYDoRc7YOgapk,1183
99
99
  meerk40t/core/node/branch_ops.py,sha256=dtezh9pPRe0Pch3aRdnNTdcCNiblRyP_RTk0ZzQejtY,1425
@@ -177,8 +177,8 @@ meerk40t/fill/patterns.py,sha256=BpvQWEJrqqm9HEsNkBO_-KWd8hUG-EJA0Kse0_LPi58,181
177
177
  meerk40t/grbl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
178
178
  meerk40t/grbl/control.py,sha256=WiWMOzXOvmIu1EWHHsGYN0o2sg5Pe33svWsfbRjuCPg,2622
179
179
  meerk40t/grbl/controller.py,sha256=0b_m3qvAYX3nPYNIArUT2AEnrUCzj7e-2Gx7RIFZD2o,39374
180
- meerk40t/grbl/device.py,sha256=hlqV2cjAQkMDbFQ7FHJoL17trH5sGfpozMr4fSTkel8,41186
181
- meerk40t/grbl/driver.py,sha256=BgRrsCGI6S7TCGCc4p16Vf9_2omLHxijkYuGqhurYuA,32818
180
+ meerk40t/grbl/device.py,sha256=5DhwHcQkPKdK67ZFrRb9AP0K6-IcQOadwQuYwPU34BU,41733
181
+ meerk40t/grbl/driver.py,sha256=1Dgpcg7OsN503iiUKVxyDzGNC2QuiIhWwltoyZYRLyY,33098
182
182
  meerk40t/grbl/emulator.py,sha256=_rn0v5m0ZXHpXtLYKnr8OOYYc1juo3RUkF8ut1ZaQ38,21778
183
183
  meerk40t/grbl/gcodejob.py,sha256=YZRlhA6_W6rVEyBHUUiQTLK6SWQfKkXeDqmWgElegjA,29238
184
184
  meerk40t/grbl/interpreter.py,sha256=jzUess5Ywxj_O9pkZL3gAWdRmBiGvRetRWt9SDC39sY,1569
@@ -215,12 +215,12 @@ meerk40t/gui/hersheymanager.py,sha256=pSl0sV96_WTK5zWUFC7p5RX5yexNEVv1DAs6bLN0a0
215
215
  meerk40t/gui/icons.py,sha256=Y3JShT6hMpNHIW5F0SFoudNBZF9b5kthS7TevVpwVEQ,331189
216
216
  meerk40t/gui/imagesplitter.py,sha256=-2ZaFoohJ_mYrZ0Ng89q1aNYonMtwBOvmuxzKn3HEJw,20403
217
217
  meerk40t/gui/keymap.py,sha256=Hkg1AqBZVrRCoXvZ_pl2qDRBGIwXdLv4FoOdFvCZySY,11850
218
- meerk40t/gui/laserpanel.py,sha256=TS5xY3vQWV1_Rcve7fwmg6S5y6s1G2hNdLp0HbMGdTo,36191
218
+ meerk40t/gui/laserpanel.py,sha256=MrWAby62yPHJkueU7YVYv_7HIC5tyvvlyZ4az_NGGyM,37026
219
219
  meerk40t/gui/laserrender.py,sha256=raNwZrKnOAMpHJBtZrMg906Z-i6N86gIC_4SYuKKpjU,53702
220
220
  meerk40t/gui/lasertoolpanel.py,sha256=Toaw06E819yRMDoJJV13cA2-i0B8ky74_wg4_liiX0M,31255
221
221
  meerk40t/gui/magnetoptions.py,sha256=7CZ_DErL1Yof6JvtJ-m1qaDXIdgGf-3k7lEoVGysgHo,20055
222
222
  meerk40t/gui/materialmanager.py,sha256=gqXyZ0vPDPw5ZjKQTwTIPFT4-GG8ddYCMmUqgWlVC7k,117204
223
- meerk40t/gui/materialtest.py,sha256=B1DhUtSK1UksUP62et_IkNAkFT_fts4CR_bnGQDSHkI,77381
223
+ meerk40t/gui/materialtest.py,sha256=Ci6O4o9d-hmEZXrj-CelGtF9zEO9QeZF8BTGtLarAIw,82186
224
224
  meerk40t/gui/mkdebug.py,sha256=FbUgFB83-WltuKMKfh1sRc6Y8F1E8dsdgV0XrxXbh1s,22140
225
225
  meerk40t/gui/mwindow.py,sha256=F9a3g1cIC_8Wrv_qlBtSFBa99yrE7pKMemm-HZ7WvIU,6102
226
226
  meerk40t/gui/navigationpanels.py,sha256=MEXPQeYC9HgDtfNVLqul3OlzCNsSsmeY_GXEXU-ag2A,105552
@@ -234,7 +234,7 @@ meerk40t/gui/ribbon.py,sha256=HYLiAhdnL9VTjLazBNlmlz2CEuH8sxFEP3jSd-HOObs,90472
234
234
  meerk40t/gui/simpleui.py,sha256=XmpyAv0vR6bJ0i7lxBquBWlBiR0IDBEuANP4s7Qhdx8,12761
235
235
  meerk40t/gui/simulation.py,sha256=FotRPAc0DsqoMTJz9XfLfAH4kpSAX9IrV7eHixvp82M,96690
236
236
  meerk40t/gui/snapoptions.py,sha256=Vd1PbMWyWSCXeRIOqc12ksx_lUZyNZzV-g9uJ23LcsA,8404
237
- meerk40t/gui/spoolerpanel.py,sha256=sTWCfkFEPx_GBm5IbYdd9DjEPBhyUkCqRSXoV_GsorY,46246
237
+ meerk40t/gui/spoolerpanel.py,sha256=gu3ncSRMo2GEJyHZzepXEG93sv9ct0v6un8hke1k2iI,47203
238
238
  meerk40t/gui/themes.py,sha256=jVt5Km7if0IVV1MnpGvtvMlbvRqpO_DQzLLen_QzsXs,8299
239
239
  meerk40t/gui/tips.py,sha256=gJhKbNA7UKeJXgfTC3UYjAX8OHfcXjb0Ew6XwM2BOwo,22132
240
240
  meerk40t/gui/usbconnect.py,sha256=1kznvNlXlT14NCev1PngYFmvmTKXLGxoti94FuoWF28,3018
@@ -244,7 +244,7 @@ meerk40t/gui/wxmmain.py,sha256=p_ZUOdDXaoeoxpf5s7jMPsIEVtFHDRv-jAfAL6VHt6U,21403
244
244
  meerk40t/gui/wxmribbon.py,sha256=0ZVITcsBkX_18fHF7xEXqYRiK_daBVCS51fdyEiweBg,60081
245
245
  meerk40t/gui/wxmscene.py,sha256=KVx8DMjWwWd1HidaldYKChhYTlaSz5QzvGm-dFPyzYU,71657
246
246
  meerk40t/gui/wxmtree.py,sha256=_guVz39SxL7xQ_OoX7U6OvqrQ9eSbXnPzlI40G03VMc,93430
247
- meerk40t/gui/wxutils.py,sha256=O3DEh5IZjqVE1nybmC06pGGgo-OXUqc_7pI5mCXq_BA,59481
247
+ meerk40t/gui/wxutils.py,sha256=Gb4E5AbpqR3svSHB66XwO04HUa2BNBhgltrJtShHenk,66717
248
248
  meerk40t/gui/zmatrix.py,sha256=kNK4RQ9F9AFW32Gow4u2ZjLdmQXMPBhhv9DEhMU7utI,2705
249
249
  meerk40t/gui/help_assets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
250
250
  meerk40t/gui/help_assets/help_assets.py,sha256=th46QCiVRYQSOsRuu-aYUqeYlYoceJo4iSH2GxDIiaw,14851
@@ -269,7 +269,7 @@ meerk40t/gui/propertypanels/regbranchproperties.py,sha256=O_bGfff_JXrcooemHAkrlW
269
269
  meerk40t/gui/propertypanels/textproperty.py,sha256=QQ2hlDjoZPGM4Ubfr2gZXfcTOf3tvcj_U-dSZnretG4,27838
270
270
  meerk40t/gui/propertypanels/waitproperty.py,sha256=gE_3Pi8z1-0L5y2iVJauA3SXaeYth9U5BXlnr9dNjGM,1768
271
271
  meerk40t/gui/propertypanels/warpproperty.py,sha256=s7eTJBfqKRIJNYB2g7ckNKvt75HoJrV8I3pOUpgz3Po,4016
272
- meerk40t/gui/propertypanels/wobbleproperty.py,sha256=I-lr4_bUfoL6ye4BVmj4f3KhGBonYtrwmqoTRJc4nmY,8604
272
+ meerk40t/gui/propertypanels/wobbleproperty.py,sha256=6wep3hY7MMcyu75vAMzc1geyCSjA-mwuRMAEUxAtLPo,8650
273
273
  meerk40t/gui/scene/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
274
274
  meerk40t/gui/scene/scene.py,sha256=xpJf4KOEEDc7W5U054tu0N69FcAGiGUAmNI_vcv9kc4,40679
275
275
  meerk40t/gui/scene/sceneconst.py,sha256=TTU4LctBWQ4K7-jsZ01iyXqDkOYnxw0AQHg6F4H4LmM,653
@@ -349,7 +349,7 @@ meerk40t/kernel/context.py,sha256=flOfrOtY0Hrg0sExJLHpTwOjDynJdqZUkx1MMRv7lg8,17
349
349
  meerk40t/kernel/exceptions.py,sha256=fgnh5cWGjLsiWnuotQW-BuwX6jydPaNF8BvyjWUW1AA,1146
350
350
  meerk40t/kernel/functions.py,sha256=3u-MAYWtq8LXBskJDE_ujLDqfjg8zHDoOwe6OCFbBG0,16248
351
351
  meerk40t/kernel/jobs.py,sha256=9QNec0aWm2BkwR1g_4D-iijFYPDsmicGr7rC-rG91zk,2715
352
- meerk40t/kernel/kernel.py,sha256=xiVpPDZMaG5goWhqHbiuM6FRYZthjFFMJJ7sBMRv3Kg,142150
352
+ meerk40t/kernel/kernel.py,sha256=kpqlrjgP1umuD3vUFrpO7eJgds1sS-I1bvbLQZqpbLY,143262
353
353
  meerk40t/kernel/lifecycles.py,sha256=GK_l3Werg1MnnsxJj6BNVG_lc8_tPo1Lzwr-lBRN0JI,2192
354
354
  meerk40t/kernel/module.py,sha256=QFKzNQNgUgediAAT-DTFLslOKBgs0EDr0oETaEh4O4w,1892
355
355
  meerk40t/kernel/service.py,sha256=pTAw51TitJO3JoiGqsn-T_1kACza9Tz6ArBjT5kulQM,5065
@@ -413,10 +413,10 @@ meerk40t/ruida/device.py,sha256=iojk8_ry5chLCBGnYfgG7tPddhFQQf-ncS5UOFi5P8Y,2365
413
413
  meerk40t/ruida/driver.py,sha256=4Hgm5ptXjARThqf76k1AqznpHl7PgJ7FIZwswnFlKPg,17340
414
414
  meerk40t/ruida/emulator.py,sha256=nr3Qisv7Ix4-HWK4DpReeXw004LAEF2AzciU0mjV6g0,55390
415
415
  meerk40t/ruida/exceptions.py,sha256=xJtpaxuLOLANQuo15p6Fl0Lgq3eUwODCIsWw0TQm78s,116
416
- meerk40t/ruida/loader.py,sha256=kLWzU76e7QSjO1KtL_u3BDQaQz1BcZHyxdA5lhQeRgc,1448
416
+ meerk40t/ruida/loader.py,sha256=8gHnKX3D5V7qQltvueO-m6X9-xARjVEl8rjYIpKqLbk,1516
417
417
  meerk40t/ruida/mock_connection.py,sha256=Qig2x5s01f6U3BKHNlZockyaJTWHhfgcVV6w895R8R4,1577
418
418
  meerk40t/ruida/plugin.py,sha256=WCMm0PKc3I9Q8iI1ptXfWVcWp_j20-UUR_SowSFEvbU,4091
419
- meerk40t/ruida/rdjob.py,sha256=7Wvn3vNKle2rOZNKBWP4ujpyco2EJBmlRYrZvimIRhI,70211
419
+ meerk40t/ruida/rdjob.py,sha256=DkqvSiEndzO26kwOzBsBayq5FjFHvExj0Z1_YS3n1-4,71865
420
420
  meerk40t/ruida/serial_connection.py,sha256=RJ95TX933rAD3eUL2Uz48xwhm-7wm1m3Jo-Tv6jsypk,3573
421
421
  meerk40t/ruida/tcp_connection.py,sha256=3utEZQDDUI6DzYJP83RABoXAFB-wEYGVRaoNsuWqCqE,4657
422
422
  meerk40t/ruida/udp_connection.py,sha256=S6eSoh9smYWmax6VdSOTJyc9ixEStgvy7bWVkHgqtDU,2130
@@ -427,7 +427,7 @@ meerk40t/ruida/gui/ruidacontroller.py,sha256=nJpZPW-dy7YbxxLnHzmYcU6guc-6tK1oJIw
427
427
  meerk40t/ruida/gui/ruidaoperationproperties.py,sha256=pMEZFyWHDsbzoIfIKrFrKsw2IDPEK2HhHDw3HDQM3dw,1002
428
428
  meerk40t/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
429
429
  meerk40t/tools/driver_to_path.py,sha256=eeQOGZO-08CJBqeF9epQv-P7T3dcpP2grMILW5LLd3U,20851
430
- meerk40t/tools/geomstr.py,sha256=ROIa55K3aNMSx2ZBFohQ2mSrzYzYbi04PshQdlhIN84,202135
430
+ meerk40t/tools/geomstr.py,sha256=F82L0k61wecOlwx9c2RbZ-NKX7eWT8FWoLtfcAS5cOE,204174
431
431
  meerk40t/tools/jhfparser.py,sha256=CGC9C2cthrMWfUfumFs5EBzVCUP4PldwIqkf1Qhq52k,14395
432
432
  meerk40t/tools/kerftest.py,sha256=dtm4sP-cXQdwr3tkEImif30lnd1tyEYGxnN6vUTWe2M,36449
433
433
  meerk40t/tools/livinghinges.py,sha256=oO9ERPh2ILXpJj3-DvYyA3P7Y6FR2ACf3dbBehJlgR4,46949
@@ -435,14 +435,14 @@ meerk40t/tools/pathtools.py,sha256=J0KAQOJNqoOW-FdQysi-poO6hf-xpxgXiBF9eqLD5Zk,3
435
435
  meerk40t/tools/pmatrix.py,sha256=lM9IKZ3m3MJYlMf8o6ZskLBWq4SDfmhZOAGfIo5saDI,6415
436
436
  meerk40t/tools/pointfinder.py,sha256=-EwZosM3uA-U3M8vr9ylFHedoLh3LNoEXwx7RR8c1YY,34858
437
437
  meerk40t/tools/polybool.py,sha256=EE1D-Lg1MeqaXenWx_3FPfw57KXo9TW4ok7AY4_hVUo,27214
438
- meerk40t/tools/rasterplotter.py,sha256=rnLD1QS-hwQRlH8h2dFqOTJXiDDlMdZ4CD30b0FMbFc,69678
438
+ meerk40t/tools/rasterplotter.py,sha256=YH4cLDNa_LrEmNdG93JIghYsd3ynndiasQmUzjDmM7I,69911
439
439
  meerk40t/tools/shxparser.py,sha256=5CPV4HW5ulH71hWtiIFMFj0-Jn4-OqXRCdaimjOSfOs,35169
440
440
  meerk40t/tools/ttfparser.py,sha256=XKB6Nar1MpQZYx7bZ1HGcw3JJnaHckuvsghJexMcJz4,26471
441
441
  meerk40t/tools/zinglplotter.py,sha256=wsXA9jnORb0AR0Bvrhcow-hROJhgDeLRcE8DmnEbiWo,20164
442
- meerk40t-0.9.7040.dist-info/LICENSE,sha256=sMsd9pY-cLfcNzUkQ2DvZobE0qpiiLMmoPfJMBTznNY,1065
443
- meerk40t-0.9.7040.dist-info/METADATA,sha256=QbtveSBKMJb7DifLEly4mzq_zPeHVZC0imXwYcLZ4OU,8014
444
- meerk40t-0.9.7040.dist-info/WHEEL,sha256=Ll72iyqtt6Rbxp-Q7FSafYA1LeRv98X15xcZWRsFEmY,109
445
- meerk40t-0.9.7040.dist-info/entry_points.txt,sha256=5KjPHpJvgQq3-SwLWJQtLE1BvfGeINBae3Josx6fgpk,47
446
- meerk40t-0.9.7040.dist-info/top_level.txt,sha256=ng4SDtNom2u-smf8sCHERr74HYQIOJOjZbBlDdlpvjU,9
447
- meerk40t-0.9.7040.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
448
- meerk40t-0.9.7040.dist-info/RECORD,,
442
+ meerk40t-0.9.7051.dist-info/LICENSE,sha256=sMsd9pY-cLfcNzUkQ2DvZobE0qpiiLMmoPfJMBTznNY,1065
443
+ meerk40t-0.9.7051.dist-info/METADATA,sha256=TDYM-xSZj7q63FQBQ_wZD2sJYYjKPX7-Ja8AwiJYKsE,8014
444
+ meerk40t-0.9.7051.dist-info/WHEEL,sha256=Ll72iyqtt6Rbxp-Q7FSafYA1LeRv98X15xcZWRsFEmY,109
445
+ meerk40t-0.9.7051.dist-info/entry_points.txt,sha256=5KjPHpJvgQq3-SwLWJQtLE1BvfGeINBae3Josx6fgpk,47
446
+ meerk40t-0.9.7051.dist-info/top_level.txt,sha256=ng4SDtNom2u-smf8sCHERr74HYQIOJOjZbBlDdlpvjU,9
447
+ meerk40t-0.9.7051.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
448
+ meerk40t-0.9.7051.dist-info/RECORD,,