Skip arranging objects that have no convex hull

CURA-7780
This commit is contained in:
Kostas Karmas 2020-10-16 11:31:00 +02:00
parent 148dd26b67
commit 8c1cf89d45

View File

@ -3,6 +3,7 @@ from pynest2d import Point, Box, Item, NfpConfig, nest
from typing import List, TYPE_CHECKING, Optional, Tuple from typing import List, TYPE_CHECKING, Optional, Tuple
from UM.Application import Application from UM.Application import Application
from UM.Logger import Logger
from UM.Math.Matrix import Matrix from UM.Math.Matrix import Matrix
from UM.Math.Polygon import Polygon from UM.Math.Polygon import Polygon
from UM.Math.Quaternion import Quaternion from UM.Math.Quaternion import Quaternion
@ -44,6 +45,9 @@ def findNodePlacement(nodes_to_arrange: List["SceneNode"], build_volume: "BuildV
node_items = [] node_items = []
for node in nodes_to_arrange: for node in nodes_to_arrange:
hull_polygon = node.callDecoration("getConvexHull") hull_polygon = node.callDecoration("getConvexHull")
if not hull_polygon or hull_polygon.getPoints is None:
Logger.log("w", "Object {} cannot be arranged because it has no convex hull.".format(node.getName()))
continue
converted_points = [] converted_points = []
for point in hull_polygon.getPoints(): for point in hull_polygon.getPoints():
converted_points.append(Point(point[0] * factor, point[1] * factor)) converted_points.append(Point(point[0] * factor, point[1] * factor))