From ebf528a65390485033db1f5579190249a97c5656 Mon Sep 17 00:00:00 2001 From: Vincent <46542431+VincidaB@users.noreply.github.com> Date: Mon, 9 Dec 2024 11:23:05 -0600 Subject: [PATCH] Assembly: fix gears created with null radius and de-sync (#18275) --- src/Mod/Assembly/JointObject.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/Mod/Assembly/JointObject.py b/src/Mod/Assembly/JointObject.py index 99f83c83d8..a2c06ea7ca 100644 --- a/src/Mod/Assembly/JointObject.py +++ b/src/Mod/Assembly/JointObject.py @@ -1234,11 +1234,6 @@ class TaskAssemblyCreateJoint(QtCore.QObject): self.jType = JointTypes[self.jForm.jointType.currentIndex()] self.jForm.jointType.currentIndexChanged.connect(self.onJointTypeChanged) - self.jForm.reverseRotCheckbox.setChecked(self.jType == "Gears") - self.jForm.reverseRotCheckbox.stateChanged.connect(self.reverseRotToggled) - - self.jForm.advancedOffsetCheckbox.stateChanged.connect(self.advancedOffsetToggled) - if jointObj: Gui.Selection.clearSelection() self.creating = False @@ -1264,8 +1259,6 @@ class TaskAssemblyCreateJoint(QtCore.QObject): self.createJointObject() self.visibilityBackup = False - self.adaptUi() - self.jForm.distanceSpinbox.valueChanged.connect(self.onDistanceChanged) self.jForm.distanceSpinbox2.valueChanged.connect(self.onDistance2Changed) self.jForm.offsetSpinbox.valueChanged.connect(self.onOffsetChanged) @@ -1276,6 +1269,12 @@ class TaskAssemblyCreateJoint(QtCore.QObject): bind = Gui.ExpressionBinding(self.jForm.rotationSpinbox).bind( self.joint, "Offset2.Rotation.Yaw" ) + + self.jForm.reverseRotCheckbox.setChecked(self.jType == "Gears") + self.jForm.reverseRotCheckbox.stateChanged.connect(self.reverseRotToggled) + + self.jForm.advancedOffsetCheckbox.stateChanged.connect(self.advancedOffsetToggled) + self.jForm.offset1Button.clicked.connect(self.onOffset1Clicked) self.jForm.offset2Button.clicked.connect(self.onOffset2Clicked) self.jForm.PushButtonReverse.clicked.connect(self.onReverseClicked) @@ -1294,6 +1293,8 @@ class TaskAssemblyCreateJoint(QtCore.QObject): bind = Gui.ExpressionBinding(self.jForm.limitRotMinSpinbox).bind(self.joint, "AngleMin") bind = Gui.ExpressionBinding(self.jForm.limitRotMaxSpinbox).bind(self.joint, "AngleMax") + self.adaptUi() + if self.creating: # This has to be after adaptUi so that properties default values are adapted # if needed. For instance for gears adaptUi will prevent radii from being 0