Fem: Enable expression for the centrif constraint task panel
This commit is contained in:
committed by
Chris Hennes
parent
d94c65ba3f
commit
a5720ec496
@@ -48,35 +48,35 @@ class _TaskPanel(base_femtaskpanel._BaseTaskPanel):
|
||||
super().__init__(obj)
|
||||
|
||||
# parameter widget
|
||||
self.parameterWidget = FreeCADGui.PySideUic.loadUi(
|
||||
self.parameter_widget = FreeCADGui.PySideUic.loadUi(
|
||||
FreeCAD.getHomePath() + "Mod/Fem/Resources/ui/ConstraintCentrif.ui"
|
||||
)
|
||||
QtCore.QObject.connect(
|
||||
self.parameterWidget.if_rotation_frequency,
|
||||
self.parameter_widget.qsb_rotation_frequency,
|
||||
QtCore.SIGNAL("valueChanged(Base::Quantity)"),
|
||||
self.rotation_frequency_changed,
|
||||
)
|
||||
self.init_parameter_widget()
|
||||
|
||||
# axis of rotation selection widget
|
||||
self.AxisSelectionWidget = selection_widgets.GeometryElementsSelection(
|
||||
self.axis_selection_widget = selection_widgets.GeometryElementsSelection(
|
||||
obj.RotationAxis, ["Edge"], False, False
|
||||
)
|
||||
|
||||
# loaded body selection widget
|
||||
self.BodySelectionWidget = selection_widgets.GeometryElementsSelection(
|
||||
self.body_selection_widget = selection_widgets.GeometryElementsSelection(
|
||||
obj.References, ["Solid"], False, False
|
||||
)
|
||||
|
||||
# form made from param and selection widget
|
||||
self.form = [self.parameterWidget, self.BodySelectionWidget, self.AxisSelectionWidget]
|
||||
self.form = [self.parameter_widget, self.body_selection_widget, self.axis_selection_widget]
|
||||
|
||||
def accept(self):
|
||||
# check values RotationAxis
|
||||
items = len(self.AxisSelectionWidget.references)
|
||||
items = len(self.axis_selection_widget.references)
|
||||
FreeCAD.Console.PrintMessage(
|
||||
"Task panel: found axis references: {}\n{}\n".format(
|
||||
items, self.AxisSelectionWidget.references
|
||||
items, self.axis_selection_widget.references
|
||||
)
|
||||
)
|
||||
|
||||
@@ -97,10 +97,10 @@ class _TaskPanel(base_femtaskpanel._BaseTaskPanel):
|
||||
pass
|
||||
|
||||
# check values BodyReference
|
||||
items = len(self.BodySelectionWidget.references)
|
||||
items = len(self.body_selection_widget.references)
|
||||
FreeCAD.Console.PrintMessage(
|
||||
"Task panel: found body references: {}\n{}\n".format(
|
||||
items, self.BodySelectionWidget.references
|
||||
items, self.body_selection_widget.references
|
||||
)
|
||||
)
|
||||
|
||||
@@ -137,20 +137,23 @@ class _TaskPanel(base_femtaskpanel._BaseTaskPanel):
|
||||
pass
|
||||
|
||||
self.obj.RotationFrequency = self.rotation_frequency
|
||||
self.obj.RotationAxis = self.AxisSelectionWidget.references
|
||||
self.obj.References = self.BodySelectionWidget.references
|
||||
self.AxisSelectionWidget.finish_selection()
|
||||
self.BodySelectionWidget.finish_selection()
|
||||
self.obj.RotationAxis = self.axis_selection_widget.references
|
||||
self.obj.References = self.body_selection_widget.references
|
||||
self.axis_selection_widget.finish_selection()
|
||||
self.body_selection_widget.finish_selection()
|
||||
return super().accept()
|
||||
|
||||
def reject(self):
|
||||
self.AxisSelectionWidget.finish_selection()
|
||||
self.BodySelectionWidget.finish_selection()
|
||||
self.axis_selection_widget.finish_selection()
|
||||
self.body_selection_widget.finish_selection()
|
||||
return super().reject()
|
||||
|
||||
def init_parameter_widget(self):
|
||||
self.rotation_frequency = self.obj.RotationFrequency
|
||||
self.parameterWidget.if_rotation_frequency.setText(self.rotation_frequency.UserString)
|
||||
FreeCADGui.ExpressionBinding(self.parameter_widget.qsb_rotation_frequency).bind(
|
||||
self.obj, "RotationFrequency"
|
||||
)
|
||||
self.parameter_widget.qsb_rotation_frequency.setProperty("value", self.rotation_frequency)
|
||||
|
||||
def rotation_frequency_changed(self, base_quantity_value):
|
||||
self.rotation_frequency = base_quantity_value
|
||||
|
||||
Reference in New Issue
Block a user