|
@@ -75,7 +75,7 @@ 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)
|
|
|
clipped_area = area.intersectionConvexHulls(build_plate_polygon)
|
|
|
|
|
|
- if clipped_area.getPoints() is not None: # numpy array has to be explicitly checked against None
|
|
|
+ if clipped_area.getPoints() is not None and len(clipped_area.getPoints()) > 2: # numpy array has to be explicitly checked against None
|
|
|
for point in clipped_area.getPoints():
|
|
|
converted_points.append(Point(int(point[0] * factor), int(point[1] * factor)))
|
|
|
|
|
@@ -88,7 +88,7 @@ def findNodePlacement(nodes_to_arrange: List["SceneNode"], build_volume: "BuildV
|
|
|
converted_points = []
|
|
|
hull_polygon = node.callDecoration("getConvexHull")
|
|
|
|
|
|
- if hull_polygon is not None and hull_polygon.getPoints() is not None: # numpy array has to be explicitly checked against None
|
|
|
+ if hull_polygon is not None and hull_polygon.getPoints() is not None and len(hull_polygon.getPoints()) > 2: # numpy array has to be explicitly checked against None
|
|
|
for point in hull_polygon.getPoints():
|
|
|
converted_points.append(Point(point[0] * factor, point[1] * factor))
|
|
|
item = Item(converted_points)
|