Assembly: fix gears created with null radius and de-sync (#18275)

This commit is contained in:
Vincent
2024-12-09 11:23:05 -06:00
committed by GitHub
parent 2e7e01febe
commit ebf528a653

View File

@@ -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