Fem: Improve constraint tie - partial fixes #11653
This commit is contained in:
@@ -28,31 +28,13 @@
|
||||
<layout class="QVBoxLayout" name="verticalLayout_5">
|
||||
<item>
|
||||
<layout class="QFormLayout" name="formLayout_1">
|
||||
<property name="fieldGrowthPolicy">
|
||||
<enum>QFormLayout::AllNonFixedFieldsGrow</enum>
|
||||
</property>
|
||||
<item row="1" column="1">
|
||||
<widget class="Gui::InputField" name="if_tolerance">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
<widget class="Gui::QuantitySpinBox" name="spb_tolerance">
|
||||
<property name="unit" stdset="0">
|
||||
<string notr="true">mm</string>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>80</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="layoutDirection">
|
||||
<enum>Qt::LeftToRight</enum>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0 mm</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
<property name="value" stdset="0">
|
||||
<double>0.000000000000000</double>
|
||||
</property>
|
||||
<property name="singleStep">
|
||||
<double>1.000000000000000</double>
|
||||
@@ -60,9 +42,6 @@
|
||||
<property name="maximum">
|
||||
<double>1000000000.000000000000000</double>
|
||||
</property>
|
||||
<property name="unit" stdset="0">
|
||||
<string notr="true">mm</string>
|
||||
</property>
|
||||
<property name="decimals" stdset="0">
|
||||
<number>2</number>
|
||||
</property>
|
||||
@@ -74,7 +53,14 @@
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="l_tolerance">
|
||||
<property name="text">
|
||||
<string>Tolerance: </string>
|
||||
<string>Tolerance</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QCheckBox" name="ckb_adjust">
|
||||
<property name="text">
|
||||
<string>Enable Adjust</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@@ -87,9 +73,9 @@
|
||||
</widget>
|
||||
<customwidgets>
|
||||
<customwidget>
|
||||
<class>Gui::InputField</class>
|
||||
<extends>QLineEdit</extends>
|
||||
<header>Gui/InputField.h</header>
|
||||
<class>Gui::QuantitySpinBox</class>
|
||||
<extends>QWidget</extends>
|
||||
<header>Gui/QuantitySpinBox.h</header>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<resources/>
|
||||
|
||||
@@ -46,5 +46,14 @@ class ConstraintTie(base_fempythonobject.BaseFemPythonObject):
|
||||
"App::PropertyLength",
|
||||
"Tolerance",
|
||||
"Geometry",
|
||||
"set max gap between tied faces"
|
||||
"Set max gap between tied faces"
|
||||
)
|
||||
obj.Tolerance = "0.0 mm"
|
||||
|
||||
obj.addProperty(
|
||||
"App::PropertyBool",
|
||||
"Adjust",
|
||||
"Geometry",
|
||||
"Adjust connected nodes"
|
||||
)
|
||||
obj.Adjust = False
|
||||
|
||||
@@ -70,10 +70,13 @@ def write_constraint(f, femobj, tie_obj, ccxwriter):
|
||||
# floats read from ccx should use {:.13G}, see comment in writer module
|
||||
|
||||
tolerance = tie_obj.Tolerance.getValueAs("mm").Value
|
||||
adjust = ""
|
||||
if not tie_obj.Adjust:
|
||||
adjust = ", ADJUST=NO"
|
||||
f.write(
|
||||
"*TIE, POSITION TOLERANCE={:.13G}, ADJUST=NO, NAME=TIE{}\n"
|
||||
.format(tolerance, tie_obj.Name)
|
||||
"*TIE, POSITION TOLERANCE={:.13G}{}, NAME=TIE{}\n"
|
||||
.format(tolerance, adjust, tie_obj.Name)
|
||||
)
|
||||
ind_surf = "TIE_IND{}".format(tie_obj.Name)
|
||||
dep_surf = "TIE_DEP{}".format(tie_obj.Name)
|
||||
f.write("{},{}\n".format(dep_surf, ind_surf))
|
||||
f.write("{}, {}\n".format(dep_surf, ind_surf))
|
||||
|
||||
@@ -52,10 +52,15 @@ class _TaskPanel:
|
||||
FreeCAD.getHomePath() + "Mod/Fem/Resources/ui/ConstraintTie.ui"
|
||||
)
|
||||
QtCore.QObject.connect(
|
||||
self.parameterWidget.if_tolerance,
|
||||
self.parameterWidget.spb_tolerance,
|
||||
QtCore.SIGNAL("valueChanged(Base::Quantity)"),
|
||||
self.tolerance_changed
|
||||
)
|
||||
QtCore.QObject.connect(
|
||||
self.parameterWidget.ckb_adjust,
|
||||
QtCore.SIGNAL("toggled(bool)"),
|
||||
self.adjust_changed
|
||||
)
|
||||
self.init_parameter_widget()
|
||||
|
||||
# geometry selection widget
|
||||
@@ -67,7 +72,7 @@ class _TaskPanel:
|
||||
)
|
||||
|
||||
# form made from param and selection widget
|
||||
self.form = [self.parameterWidget, self.selectionWidget]
|
||||
self.form = [self.selectionWidget, self.parameterWidget]
|
||||
|
||||
def accept(self):
|
||||
# check values
|
||||
@@ -94,6 +99,7 @@ class _TaskPanel:
|
||||
elif msgBox.clickedButton() == ignoreButton:
|
||||
pass
|
||||
self.obj.Tolerance = self.tolerance
|
||||
self.obj.Adjust = self.adjust
|
||||
self.obj.References = self.selectionWidget.references
|
||||
self.recompute_and_set_back_all()
|
||||
return True
|
||||
@@ -112,7 +118,12 @@ class _TaskPanel:
|
||||
|
||||
def init_parameter_widget(self):
|
||||
self.tolerance = self.obj.Tolerance
|
||||
self.parameterWidget.if_tolerance.setText(self.tolerance.UserString)
|
||||
self.adjust = self.obj.Adjust
|
||||
self.parameterWidget.spb_tolerance.setProperty("value", self.tolerance)
|
||||
self.parameterWidget.ckb_adjust.setChecked(self.adjust)
|
||||
|
||||
def tolerance_changed(self, base_quantity_value):
|
||||
self.tolerance = base_quantity_value
|
||||
|
||||
def adjust_changed(self, bool_value):
|
||||
self.adjust = bool_value
|
||||
|
||||
@@ -18608,7 +18608,7 @@ Evolumes
|
||||
** Tie Constraints
|
||||
** ConstraintTie
|
||||
*TIE, POSITION TOLERANCE=25, ADJUST=NO, NAME=TIEConstraintTie
|
||||
TIE_DEPConstraintTie,TIE_INDConstraintTie
|
||||
TIE_DEPConstraintTie, TIE_INDConstraintTie
|
||||
|
||||
***********************************************************
|
||||
** At least one step is needed to run an CalculiX analysis of FreeCAD
|
||||
|
||||
Reference in New Issue
Block a user