mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-08-14 05:55:53 +08:00
Fix crash when arranging objects in one-at-a-time mode
Crashing was occuring because node.getPoints() can return None. CURA-7440
This commit is contained in:
parent
9f929298d7
commit
972e2f6716
@ -64,24 +64,26 @@ def findNodePlacement(nodes_to_arrange: List["SceneNode"], build_volume: "BuildV
|
|||||||
# Clip the disallowed areas so that they don't overlap the bounding box (The arranger chokes otherwise)
|
# Clip the disallowed areas so that they don't overlap the bounding box (The arranger chokes otherwise)
|
||||||
clipped_area = area.intersectionConvexHulls(build_plate_polygon)
|
clipped_area = area.intersectionConvexHulls(build_plate_polygon)
|
||||||
|
|
||||||
for point in clipped_area.getPoints():
|
if clipped_area.getPoints() is not None: # numpy array has to be explicitly checked against None
|
||||||
converted_points.append(Point(point[0] * factor, point[1] * factor))
|
for point in clipped_area.getPoints():
|
||||||
|
converted_points.append(Point(point[0] * factor, point[1] * factor))
|
||||||
|
|
||||||
disallowed_area = Item(converted_points)
|
disallowed_area = Item(converted_points)
|
||||||
disallowed_area.markAsDisallowedAreaInBin(0)
|
disallowed_area.markAsDisallowedAreaInBin(0)
|
||||||
node_items.append(disallowed_area)
|
node_items.append(disallowed_area)
|
||||||
num_disallowed_areas_added += 1
|
num_disallowed_areas_added += 1
|
||||||
|
|
||||||
for node in fixed_nodes:
|
for node in fixed_nodes:
|
||||||
converted_points = []
|
converted_points = []
|
||||||
hull_polygon = node.callDecoration("getConvexHull")
|
hull_polygon = node.callDecoration("getConvexHull")
|
||||||
|
|
||||||
for point in hull_polygon.getPoints():
|
if hull_polygon.getPoints() is not None: # numpy array has to be explicitly checked against None
|
||||||
converted_points.append(Point(point[0] * factor, point[1] * factor))
|
for point in hull_polygon.getPoints():
|
||||||
item = Item(converted_points)
|
converted_points.append(Point(point[0] * factor, point[1] * factor))
|
||||||
item.markAsFixedInBin(0)
|
item = Item(converted_points)
|
||||||
node_items.append(item)
|
item.markAsFixedInBin(0)
|
||||||
num_disallowed_areas_added += 1
|
node_items.append(item)
|
||||||
|
num_disallowed_areas_added += 1
|
||||||
|
|
||||||
config = NfpConfig()
|
config = NfpConfig()
|
||||||
config.accuracy = 1.0
|
config.accuracy = 1.0
|
||||||
|
Loading…
x
Reference in New Issue
Block a user