Merge pull request #139 from joemarshall/medial_fixes

Medial fixes
pull/258/head
Alain Pelletier 2024-02-06 10:55:17 -04:00 zatwierdzone przez GitHub
commit c347ed7d20
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: B5690EEEBB952194
11 zmienionych plików z 23770 dodań i 27 usunięć

Wyświetl plik

@ -67,14 +67,18 @@ class camPathChunkBuilder:
if inpoints is None:
inpoints=[]
self.points=inpoints
self.startpoints=startpoints
self.endpoints=endpoints
self.rotations=rotations
self.startpoints=startpoints or []
self.endpoints=endpoints or []
self.rotations=rotations or []
self.depth = None
def to_chunk(self):
chunk = camPathChunk(self.points,self.startpoints,self.endpoints,self.rotations)
if len(self.points)>2 and np.array_equal(self.points[0],self.points[-1]):
chunk.closed = True
if self.depth is not None:
chunk.depth = self.depth
return chunk
# an actual chunk - stores points as numpy arrays
@ -113,7 +117,7 @@ class camPathChunk:
def update_poly(self):
if len(self._points) > 2:
self.poly = sgeometry.Polygon(self._points)
self.poly = sgeometry.Polygon(self._points[:,0:2])
else:
self.poly = sgeometry.Polygon()
@ -291,6 +295,18 @@ class camPathChunk:
self.endpoints.pop(index)
self.rotations.pop(index)
def dedupePoints(self):
if len(self._points)>1:
keep_points=np.empty(self._points.shape[0],dtype=bool)
keep_points[0]=True
diff_points=np.sum((self._points[1:]-self._points[:1])**2,axis=1)
keep_points[1:]=diff_points>0.000000001
self._points=self._points[keep_points,:]
def insert(self,at_index,point,startpoint=None, endpoint=None, rotation=None):
self.append(point,startpoint=startpoint,endpoint=endpoint,rotation=rotation,at_index=at_index)
def append(self, point, startpoint=None, endpoint=None, rotation=None,at_index=None):
if at_index is None:
self._points=np.concatenate((self._points,np.array([point])))
@ -857,19 +873,22 @@ def parentChild(parents, children, o):
def chunksToShapely(chunks): # this does more cleve chunks to Poly with hierarchies... ;)
# print ('analyzing paths')
for ch in chunks: # first convert chunk to poly
if len(ch._points) > 2:
# pchunk=[]
ch.poly = sgeometry.Polygon(ch._points)
ch.poly = sgeometry.Polygon(ch._points[:,0:2])
if not ch.poly.is_valid:
ch.poly = sgeometry.Polygon()
else:
ch.poly = sgeometry.Polygon()
for ppart in chunks: # then add hierarchy relations
for ptest in chunks:
if ppart != ptest:
if ptest.poly.contains(ppart.poly):
# hierarchy works like this: - children get milled first.
ppart.parents.append(ptest)
if not ppart.poly.is_empty and not ptest.poly.is_empty:
if ptest.poly.contains(ppart.poly):
# hierarchy works like this: - children get milled first.
ppart.parents.append(ptest)
for ch in chunks: # now make only simple polygons with holes, not more polys inside others
found = False
@ -897,14 +916,14 @@ def chunksToShapely(chunks): # this does more cleve chunks to Poly with hierarc
print('chunksToShapely oops!')
lastPt = False
lastPt = None
tolerance = 0.0000003
newPoints = []
for pt in ch._points:
toleranceXok = True
toleranceYok = True
if lastPt:
if lastPt is not None:
if abs(pt[0] - lastPt[0]) < tolerance:
toleranceXok = False
if abs(pt[1] - lastPt[1]) < tolerance:
@ -936,7 +955,7 @@ def chunksToShapely(chunks): # this does more cleve chunks to Poly with hierarc
# print('chunksToShapely double oops!')
lastPt = False
lastPt = None
tolerance = 0.0000003
newPoints = []
@ -945,7 +964,7 @@ def chunksToShapely(chunks): # this does more cleve chunks to Poly with hierarc
toleranceYok = True
# print( '{0:.9f}, {0:.9f}, {0:.9f}'.format(pt[0], pt[1], pt[2]) )
# print(pt)
if lastPt:
if lastPt is not None:
if abs(pt[0] - lastPt[0]) < tolerance:
toleranceXok = False
if abs(pt[1] - lastPt[1]) < tolerance:
@ -979,8 +998,9 @@ def chunksToShapely(chunks): # this does more cleve chunks to Poly with hierarc
for polyi in range(0, len(chunks)): # export only the booleaned polygons
ch = chunks[polyi]
if len(ch.parents) == 0:
returnpolys.append(ch.poly)
if not ch.poly.is_empty:
if len(ch.parents) == 0:
returnpolys.append(ch.poly)
from shapely.geometry import MultiPolygon
polys = MultiPolygon(returnpolys)
return polys
@ -1017,7 +1037,11 @@ def meshFromCurveToChunk(object):
chunk.points.append((mesh.vertices[lastvi].co + object.location).to_tuple())
# add first point to end#originally the z was mesh.vertices[lastvi].co.z+z
lastvi = vi + 1
chunks.append(chunk.to_chunk())
chunk=chunk.to_chunk()
chunk.dedupePoints()
if chunk.count()>=1:
# dump single point chunks
chunks.append(chunk)
chunk = camPathChunkBuilder()
progress('processing curve - FINISHED')
@ -1028,10 +1052,13 @@ def meshFromCurveToChunk(object):
chunk.closed = True
chunk.points.append(
(mesh.vertices[lastvi].co.x + x, mesh.vertices[lastvi].co.y + y, mesh.vertices[lastvi].co.z + z))
chunks.append(chunk.to_chunk())
chunk=chunk.to_chunk()
chunk.dedupePoints()
if chunk.count()>=1:
# dump single point chunks
chunks.append(chunk)
return chunks
def makeVisible(o):
storage = [True, []]

Wyświetl plik

@ -501,8 +501,9 @@ def getPathPattern4axis(operation):
rot[a1] = b * anglestep
chunk.rotations.append(rot)
chunk = chunk.to_chunk()
chunk.depth = radiusend - radius
pathchunks.append(chunk.to_chunk())
pathchunks.append(chunk)
if (reverse and o.movement.type == 'MEANDER') or (
o.movement.type == 'CONVENTIONAL' and o.movement.spindle_rotation == 'CW') or (
@ -540,9 +541,10 @@ def getPathPattern4axis(operation):
cutterstart.rotate(e)
cutterend.rotate(e)
chunk=chunk.to_chunk()
chunk.depth = radiusend - radius
pathchunks.append(chunk.to_chunk())
pathchunks.append(chunk)
# print(chunk.startpoints)
# print(pathchunks)
# sprint(len(pathchunks))

Wyświetl plik

@ -625,10 +625,20 @@ async def medial_axis(o):
ob.data.resolution_u = 64
polys = utils.getOperationSilhouete(o)
mpoly = sgeometry.shape(polys)
if isinstance(polys, list):
if len(polys)==1 and isinstance(polys[0],shapely.MultiPolygon):
mpoly=polys[0]
else:
mpoly=sgeometry.MultiPolygon(polys)
elif isinstance(polys,shapely.MultiPolygon):
# just a multipolygon
mpoly=polys
else:
raise CamException("Failed getting object silhouette. Is input curve closed?")
mpoly_boundary = mpoly.boundary
ipol = 0
for poly in polys.geoms:
for poly in mpoly.geoms:
ipol = ipol + 1
schunks = shapelyToChunks(poly, -1)
schunks = chunksRefineThreshold(schunks, o.medial_axis_subdivision,

Plik binarny nie jest wyświetlany.

Wyświetl plik

@ -0,0 +1,771 @@
(Created with grbl post processor 2024/02/05 19:50)
G21
(G-code generated with BlenderCAM and NC library)
G17G90
S12000M03
G00 Z10.0
G0X0Y0Z10
X5Y12.439
G1Z-3.732F500
X5.011Y12.478F1000
X5.021Y12.507
X5.06Y12.616
X5.074Y12.651
X5.092Y12.69
X5.142Y12.795
X5.159Y12.828
X5.18Y12.865
X5.24Y12.965
X5.26Y12.996
X5.285Y13.031
X5.354Y13.124
X5.377Y13.153
X5.406Y13.185
X5.484Y13.272
X5.51Y13.298
X5.541Y13.328
X5.627Y13.406
X5.655Y13.429
X5.689Y13.456
X5.783Y13.525
X5.813Y13.546
X5.85Y13.569
X5.95Y13.628
X5.97Y13.64
X5.934Y13.66
X5.834Y13.72
X5.803Y13.74
X5.768Y13.765
X5.675Y13.834
X5.646Y13.857
X5.614Y13.886
X5.527Y13.964
X5.501Y13.99
X5.471Y14.021
X5.393Y14.107
X5.37Y14.135
X5.343Y14.169
X5.274Y14.263
X5.253Y14.293
X5.23Y14.33
X5.171Y14.43
X5.153Y14.462
X5.134Y14.501
X5.084Y14.606
X5.069Y14.64
X5.054Y14.68
X5.015Y14.79
X5.004Y14.825
X5Y14.84
Y12.439
G0Z10
X23.149Y13.64
G1Z-3.732F500
X23.185Y13.619F1000
X23.285Y13.559
X23.316Y13.539
X23.351Y13.514
X23.444Y13.445
X23.473Y13.422
X23.505Y13.393
X23.592Y13.315
X23.618Y13.289
X23.648Y13.258
X23.726Y13.172
X23.749Y13.144
X23.776Y13.11
X23.845Y13.016
X23.866Y12.986
X23.889Y12.949
X23.948Y12.849
X23.966Y12.817
X23.985Y12.778
X24.035Y12.673
X24.05Y12.639
X24.065Y12.599
X24.104Y12.489
X24.115Y12.454
X24.12Y12.439
Y14.84
X24.108Y14.801
X24.098Y14.772
X24.059Y14.663
X24.045Y14.628
X24.027Y14.589
X23.977Y14.484
X23.96Y14.451
X23.939Y14.414
X23.879Y14.314
X23.859Y14.283
X23.834Y14.248
X23.765Y14.155
X23.742Y14.126
X23.713Y14.094
X23.635Y14.007
X23.609Y13.981
X23.578Y13.951
X23.492Y13.873
X23.464Y13.85
X23.43Y13.823
X23.336Y13.754
X23.306Y13.733
X23.269Y13.71
X23.169Y13.651
X23.149Y13.64
X22.907Y14.077
X22.885Y14.066
X22.785Y14.019
X22.762Y14.009
X22.647Y13.968
X22.623Y13.961
X22.504Y13.931
X22.48Y13.926
X22.359Y13.908
X22.334Y13.906
X22.212Y13.9
X6.907
X6.785Y13.906
X6.76Y13.908
X6.639Y13.926
X6.615Y13.931
X6.496Y13.961
X6.472Y13.968
X6.357Y14.009
X6.334Y14.019
X6.223Y14.071
X6.202Y14.083
X6.096Y14.146
X6.076Y14.159
X5.977Y14.232
X5.959Y14.248
X5.868Y14.33
X5.85Y14.348
X5.768Y14.439
X5.752Y14.457
X5.679Y14.556
X5.666Y14.576
X5.603Y14.682
X5.591Y14.703
X5.539Y14.814
X5.529Y14.837
X5.488Y14.952
X5.481Y14.976
X5.451Y15.095
X5.446Y15.119
X5.428Y15.24
X5.426Y15.265
X5.42Y15.387
Y25.78
X4.5
Y1.5
X5.42
Y11.892
X5.426Y12.014
X5.428Y12.039
X5.446Y12.16
X5.451Y12.184
X5.481Y12.303
X5.488Y12.327
X5.529Y12.442
X5.539Y12.465
X5.591Y12.576
X5.603Y12.597
X5.666Y12.703
X5.679Y12.723
X5.752Y12.822
X5.768Y12.84
X5.85Y12.931
X5.868Y12.949
X5.959Y13.031
X5.977Y13.047
X6.076Y13.12
X6.096Y13.133
X6.202Y13.196
X6.223Y13.208
X6.334Y13.26
X6.357Y13.27
X6.472Y13.311
X6.496Y13.318
X6.615Y13.348
X6.639Y13.353
X6.76Y13.371
X6.785Y13.373
X6.907Y13.379
X22.212
X22.334Y13.373
X22.359Y13.371
X22.48Y13.353
X22.504Y13.348
X22.623Y13.318
X22.647Y13.311
X22.762Y13.27
X22.785Y13.26
X22.896Y13.208
X22.917Y13.196
X23.023Y13.133
X23.043Y13.12
X23.142Y13.047
X23.16Y13.031
X23.251Y12.949
X23.269Y12.931
X23.351Y12.84
X23.367Y12.822
X23.44Y12.723
X23.453Y12.703
X23.516Y12.597
X23.528Y12.576
X23.58Y12.465
X23.59Y12.442
X23.631Y12.327
X23.638Y12.303
X23.668Y12.184
X23.673Y12.16
X23.691Y12.039
X23.693Y12.014
X23.699Y11.892
Y1.5
X24.62
Y25.78
X23.699
Y15.387
X23.693Y15.265
X23.691Y15.24
X23.673Y15.119
X23.668Y15.095
X23.638Y14.976
X23.631Y14.952
X23.59Y14.837
X23.58Y14.814
X23.528Y14.703
X23.516Y14.682
X23.453Y14.576
X23.44Y14.556
X23.367Y14.457
X23.351Y14.439
X23.269Y14.348
X23.251Y14.33
X23.16Y14.248
X23.142Y14.232
X23.043Y14.159
X23.023Y14.146
X22.917Y14.083
X22.907Y14.077
G0Z10
X32.542Y11.429
G1Z-3.732F500
X32.363Y10.358F1000
X32.302Y9.199
X32.358Y8.128
X32.525Y7.088
X32.798Y6.094
X33.174Y5.16
X33.647Y4.3
X34.212Y3.525
X34.865Y2.845
X35.606Y2.266
X36.435Y1.797
X37.358Y1.445
X38.384Y1.222
X39.557Y1.14
X40.197Y1.153
X40.829Y1.192
X41.417Y1.255
X41.97Y1.344
X42.491Y1.457
X42.989Y1.594
X43.47Y1.757
X43.942Y1.946
X44.409Y2.165
X44.88Y2.413
X45.18Y2.589
Y2.648
X44.679Y2.43
X44.626Y2.408
X44.095Y2.205
X44.037Y2.184
X43.503Y2.009
X43.44Y1.991
X42.904Y1.846
X42.837Y1.83
X42.311Y1.718
X42.24Y1.705
X42.226Y1.703
X41.696Y1.622
X41.622Y1.613
X41.608Y1.611
X41.074Y1.562
X40.998Y1.557
X40.983
X40.436Y1.54
X40.34Y1.541
X39.487Y1.58
X39.361Y1.592
X38.576Y1.709
X38.562Y1.711
X38.437Y1.736
X38.424Y1.74
X37.686Y1.936
X37.667Y1.942
X37.538Y1.986
X37.519Y1.993
X36.854Y2.263
X36.834Y2.272
X36.703Y2.336
X36.683Y2.347
X36.079Y2.694
X36.059Y2.706
X35.933Y2.79
X35.915Y2.804
X35.37Y3.227
X35.353Y3.242
X35.24Y3.344
X35.223Y3.36
X34.74Y3.858
X34.725Y3.875
X34.63Y3.987
X34.617Y4.005
X34.196Y4.577
X34.184Y4.594
X34.11Y4.71
X34.099Y4.728
X33.745Y5.365
X33.738Y5.377
X33.681Y5.494
X33.675Y5.508
X33.67Y5.521
X33.371Y6.242
X33.328Y6.364
X33.089Y7.169
X33.062Y7.28
X32.886Y8.157
X32.868Y8.279
X32.866Y8.303
X32.86Y8.426
Y8.45
X32.866Y8.573
X32.868Y8.597
X32.886Y8.719
X32.891Y8.743
X32.92Y8.862
X32.927Y8.886
X32.969Y9.001
X32.978Y9.024
X33.031Y9.135
X33.042Y9.157
X33.105Y9.262
X33.119Y9.282
X33.192Y9.381
X33.207Y9.4
X33.29Y9.491
X33.307Y9.508
X33.398Y9.591
X33.417Y9.606
X33.476Y9.65
X33.464Y9.66
X33.382Y9.736
X33.365Y9.753
X33.283Y9.845
X33.267Y9.864
X33.194Y9.964
X33.18Y9.984
X33.118Y10.091
X33.106Y10.113
X33.054Y10.225
X33.045Y10.247
X33.004Y10.364
X32.997Y10.388
X32.968Y10.508
X32.964Y10.532
X32.947Y10.654
X32.944Y10.679
X32.94Y10.802
Y10.827
X32.947Y10.95
X32.95Y10.975
X32.969Y11.097
X33.118Y11.803
X33.146Y11.91
X33.345Y12.563
X33.386Y12.679
X33.636Y13.28
X33.696Y13.403
X33.99Y13.937
X33.997Y13.95
X34.005Y13.963
X34.069Y14.064
X34.077Y14.077
X34.086Y14.089
X34.427Y14.563
X34.44Y14.58
X34.529Y14.688
X34.544Y14.704
X34.933Y15.119
X34.949Y15.135
X35.057Y15.234
X35.074Y15.249
X35.511Y15.604
X35.53Y15.618
X35.652Y15.703
X35.671Y15.715
X36.156Y16.009
X36.175Y16.019
X36.306Y16.086
X36.326Y16.096
X36.857Y16.326
X36.877Y16.333
X37.009Y16.38
X37.029Y16.387
X37.596Y16.55
X37.61Y16.553
X37.625Y16.557
X37.742Y16.583
X37.757Y16.586
X37.771Y16.589
X38.397Y16.689
X38.533Y16.704
X39.218Y16.738
X39.353
X39.987Y16.701
X40.007Y16.699
X40.14Y16.683
X40.161Y16.679
X40.74Y16.573
X40.761Y16.568
X40.901Y16.532
X40.923Y16.525
X41.458Y16.35
X41.48Y16.342
X41.622Y16.285
X41.643Y16.275
X42.133Y16.034
X42.154Y16.022
X42.29Y15.943
X42.31Y15.93
X42.753Y15.626
X42.773Y15.611
X42.896Y15.512
X42.914Y15.496
X43.307Y15.132
X43.324Y15.115
X43.429Y15.002
X43.445Y14.984
X43.787Y14.562
X43.8Y14.544
X43.885Y14.423
X43.897Y14.404
X44.186Y13.928
X44.196Y13.909
X44.26Y13.786
X44.269Y13.767
X44.499Y13.248
X44.504Y13.234
X44.551Y13.11
X44.556Y13.096
X44.561Y13.082
X44.739Y12.501
X44.772Y12.369
X44.895Y11.729
X44.912Y11.606
X44.974Y10.923
X44.979Y10.801
Y10.776
X44.972Y10.654
X44.97Y10.63
X44.951Y10.509
X44.946Y10.486
X44.916Y10.367
X44.909Y10.344
X44.867Y10.229
X44.857Y10.207
X44.805Y10.097
X44.793Y10.075
X44.73Y9.971
X44.716Y9.95
X44.708Y9.94
X45.436
X45.274Y11.213
X45.008Y12.363
X44.654Y13.358
X44.224Y14.204
X43.726Y14.91
X43.164Y15.491
X42.536Y15.96
X41.834Y16.327
X41.047Y16.594
X40.169Y16.76
X39.202Y16.817
X38.184Y16.753
X37.243Y16.569
X36.379Y16.274
X35.591Y15.874
X34.879Y15.375
X34.243Y14.778
X33.686Y14.084
X33.212Y13.295
X32.828Y12.409
X32.542Y11.429
G0Z10
X52.42Y1.5
G1Z-3.732F500
X52.98F1000
Y25.78
X52.42
Y1.5
G0Z10
X61.18
G1Z-3.732F500
X61.74F1000
Y25.78
X61.18
Y1.5
G0Z10
X69.381Y5.899
G1Z-3.732F500
X69.822Y4.974F1000
X70.369Y4.136
X71.016Y3.39
X71.758Y2.739
X72.591Y2.188
X73.51Y1.745
X74.514Y1.417
X75.599Y1.213
X76.763Y1.142
X77.988Y1.211
X79.128Y1.411
X80.174Y1.733
X81.123Y2.167
X81.975Y2.707
X82.729Y3.345
X83.382Y4.08
X83.932Y4.909
X84.374Y5.832
X84.702Y6.849
X84.906Y7.96
X84.977Y9.155
X84.905Y10.262
X84.7Y11.292
X84.37Y12.247
X83.923Y13.126
X83.366Y13.925
X82.703Y14.64
X81.94Y15.268
X81.08Y15.8
X80.127Y16.23
X79.086Y16.549
X77.961Y16.748
X76.763Y16.817
X75.635Y16.747
X74.571Y16.544
X73.575Y16.218
X72.652Y15.779
X71.81Y15.235
X71.055Y14.594
X70.395Y13.866
X69.838Y13.058
X69.39Y12.178
X69.059Y11.231
X68.854Y10.223
X68.783Y9.155
X68.852Y7.996
X69.055Y6.907
X69.381Y5.899
X69.91Y6.123
X69.904Y6.143
X69.669Y6.956
X69.665Y6.97
X69.636Y7.099
X69.633Y7.114
X69.63Y7.128
X69.486Y8.007
X69.471Y8.144
X69.421Y9.095
X69.422Y9.235
X69.472Y10.088
X69.473Y10.104
X69.475Y10.119
X69.49Y10.24
X69.492Y10.256
X69.494Y10.271
X69.643Y11.077
X69.647Y11.097
X69.68Y11.23
X69.686Y11.25
X69.927Y12.007
X69.935Y12.027
X69.986Y12.157
X69.994Y12.177
X70.322Y12.879
X70.333Y12.898
X70.402Y13.023
X70.413Y13.042
X70.823Y13.683
X70.836Y13.701
X70.922Y13.817
X70.936Y13.835
X71.423Y14.408
X71.438Y14.425
X71.541Y14.53
X71.557Y14.545
X72.115Y15.046
X72.132Y15.061
X72.249Y15.151
X72.267Y15.164
X72.89Y15.587
X72.91Y15.599
X73.037Y15.673
X73.057Y15.683
X73.74Y16.021
X73.761Y16.03
X73.896Y16.086
X73.917Y16.094
X74.655Y16.342
X74.676Y16.348
X74.815Y16.385
X74.837Y16.389
X75.624Y16.542
X75.645Y16.545
X75.784Y16.563
X75.805Y16.565
X76.625Y16.617
X76.641
X76.656Y16.618
X76.778
X76.793
X76.808Y16.617
X77.677Y16.565
X77.692Y16.564
X77.707Y16.563
X77.829Y16.548
X77.844Y16.546
X77.859Y16.543
X78.691Y16.39
X78.712Y16.385
X78.845Y16.352
X78.865Y16.346
X79.644Y16.097
X79.664Y16.089
X79.796Y16.038
X79.816Y16.029
X80.536Y15.69
X80.556Y15.68
X80.682Y15.61
X80.701Y15.598
X81.358Y15.174
X81.376Y15.161
X81.494Y15.074
X81.511Y15.059
X82.098Y14.557
X82.115Y14.541
X82.22Y14.437
X82.236Y14.421
X82.748Y13.844
X82.762Y13.827
X82.853Y13.71
X82.866Y13.691
X83.297Y13.047
X83.308Y13.027
X83.382Y12.9
X83.392Y12.88
X83.737Y12.173
X83.746Y12.152
X83.8Y12.018
X83.808Y11.997
X84.061Y11.234
X84.067Y11.213
X84.102Y11.075
X84.107Y11.054
X84.262Y10.24
X84.265Y10.219
X84.282Y10.082
X84.284Y10.061
X84.337Y9.198
X84.338Y9.07
Y9.056
X84.288Y8.089
X84.273Y7.951
X84.127Y7.064
X84.125Y7.049
X84.122Y7.034
X84.095Y6.916
X84.091Y6.901
X84.087Y6.887
X83.849Y6.07
X83.842Y6.05
X83.793Y5.917
X83.785Y5.897
X83.456Y5.152
X83.446Y5.131
X83.376Y4.997
X83.364Y4.977
X82.949Y4.307
X82.935Y4.287
X82.842Y4.16
X82.827Y4.141
X82.331Y3.551
X82.267Y3.481
X82.249Y3.463
X82.189Y3.406
X81.606Y2.892
X81.533Y2.832
X81.513Y2.817
X81.445Y2.77
X80.784Y2.341
X80.763Y2.329
X80.628Y2.254
X80.606Y2.244
X79.881Y1.909
X79.86Y1.9
X79.723Y1.848
X79.701Y1.841
X78.907Y1.598
X78.887Y1.593
X78.754Y1.561
X78.733Y1.557
X77.885Y1.411
X77.87Y1.409
X77.74Y1.394
X77.726Y1.392
X77.711Y1.391
X76.801Y1.342
X76.786Y1.341
X76.656
X76.641Y1.342
X76.627
X75.779Y1.395
X75.758Y1.397
X75.619Y1.415
X75.598Y1.419
X74.799Y1.573
X74.777Y1.579
X74.635Y1.617
X74.613Y1.623
X73.869Y1.876
X73.847Y1.885
X73.707Y1.944
X73.686Y1.954
X73Y2.3
X72.979Y2.312
X72.846Y2.392
X72.827Y2.405
X72.205Y2.841
X72.186Y2.855
X72.065Y2.953
X72.047Y2.969
X71.494Y3.49
X71.477Y3.506
X71.374Y3.619
X71.359Y3.637
X70.878Y4.237
X70.865Y4.256
X70.78Y4.378
X70.768Y4.398
X70.365Y5.073
X70.355Y5.093
X70.29Y5.22
X70.281Y5.24
X69.96Y5.986
X69.953Y6.006
X69.91Y6.123
G0Z10

Plik binarny nie jest wyświetlany.

Wyświetl plik

@ -675,6 +675,7 @@ async def sampleChunksNAxis(o, pathSamples, layers):
lastrunchunks.append([])
n = 0
last_percent=-1
lastz = minz
for patternchunk in pathSamples:
# print (patternchunk.endpoints)
@ -693,8 +694,10 @@ async def sampleChunksNAxis(o, pathSamples, layers):
# #TODO: seems we are writing into the source chunk ,
# and that is why we need to write endpoints everywhere too?
if n / 200.0 == int(n / 200.0):
await progress_async('sampling paths', int(100 * n / totlen))
percent=int(100 * n / totlen)
if percent!=last_percent:
await progress_async('sampling paths', percent)
last_percent=percent
n += 1
sampled = False
# print(si)
@ -841,10 +844,10 @@ async def sampleChunksNAxis(o, pathSamples, layers):
for i, l in enumerate(layers):
ch = layeractivechunks[i]
if len(ch.points) > 0:
if ch.count() > 0:
layerchunks[i].append(ch)
thisrunchunks[i].append(ch)
layeractivechunks[i] = None
layeractivechunks[i] = camPathChunkBuilder([])
if o.strategy == 'PARALLEL' or o.strategy == 'CROSS' or o.strategy == 'OUTLINEFILL':
parentChildDist(thisrunchunks[i], lastrunchunks[i], o)