From 7e455c6661724612ce194e6f74e92d9e819bd85f Mon Sep 17 00:00:00 2001 From: IArchi Date: Fri, 12 Jul 2024 19:40:51 +0200 Subject: [PATCH] Avoid too many dialogs. Fix crash when one of the objects is not a component. --- NesterCommand.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/NesterCommand.py b/NesterCommand.py index 4bb4a69..e57614a 100644 --- a/NesterCommand.py +++ b/NesterCommand.py @@ -91,14 +91,17 @@ def createJoint(face1, face2): if face1.assemblyContext == face2.assemblyContext: ui.messageBox("Faces are from the same Component. Each part must be a component") adsk.terminate() + return False elif not face2.assemblyContext: ui.messageBox("Face is from the root component. Each part must be a component") adsk.terminate() + return False elif not face1.assemblyContext: ui.messageBox("Face is from the root component. Each part must be a component") adsk.terminate() + return False else: # Create the joint geometry @@ -113,6 +116,8 @@ def createJoint(face1, face2): # Create the joint joints.add(jointInput) + return True + # Returns a normalized vector in positive XYZ space from a given edge def getPositiveUnitVectorFromEdge(edge): # Set up a vector based on input edge @@ -150,6 +155,7 @@ def transformAlongVector(select, directionVector, magnatude): vector.scaleBy(magnatude) # Create a transform to do move + if select is None or select.assemblyContext is None: return transform = adsk.core.Matrix3D.cast(select.assemblyContext.transform) newTransform = adsk.core.Matrix3D.create() newTransform.translation = vector @@ -218,7 +224,7 @@ def onExecute(self, command, inputs): # Apply Joints for face in newFaces: - createJoint(face, plane) + if not createJoint(face, plane): return # Arrange Components arrangeComponents(newFaces, plane, edge, spacing)