FEM: Add NetGen Min Size (#12794)
This commit is contained in:
@@ -53,6 +53,7 @@ const char* FinenessEnums[] =
|
||||
FemMeshShapeNetgenObject::FemMeshShapeNetgenObject()
|
||||
{
|
||||
ADD_PROPERTY_TYPE(MaxSize, (1000), "MeshParams", Prop_None, "Maximum element size");
|
||||
ADD_PROPERTY_TYPE(MinSize, (0), "MeshParams", Prop_None, "Minimum element size");
|
||||
ADD_PROPERTY_TYPE(SecondOrder, (true), "MeshParams", Prop_None, "Create quadric elements");
|
||||
ADD_PROPERTY_TYPE(Fineness, (2), "MeshParams", Prop_None, "Fineness level of the mesh");
|
||||
Fineness.setEnums(FinenessEnums);
|
||||
@@ -95,6 +96,7 @@ App::DocumentObjectExecReturn* FemMeshShapeNetgenObject::execute()
|
||||
NETGENPlugin_Hypothesis* tet = new NETGENPlugin_Hypothesis(0, 1, newMesh.getGenerator());
|
||||
#endif
|
||||
tet->SetMaxSize(MaxSize.getValue());
|
||||
tet->SetMinSize(MinSize.getValue());
|
||||
tet->SetSecondOrder(SecondOrder.getValue());
|
||||
tet->SetOptimize(Optimize.getValue());
|
||||
int iFineness = Fineness.getValue();
|
||||
|
||||
@@ -39,6 +39,7 @@ public:
|
||||
~FemMeshShapeNetgenObject() override;
|
||||
|
||||
App::PropertyFloat MaxSize;
|
||||
App::PropertyFloat MinSize;
|
||||
App::PropertyBool SecondOrder;
|
||||
App::PropertyEnumeration Fineness;
|
||||
App::PropertyFloat GrowthRate;
|
||||
|
||||
@@ -49,6 +49,7 @@ TaskTetParameter::TaskTetParameter(Fem::FemMeshShapeNetgenObject* pcObject, QWid
|
||||
this->groupLayout()->addWidget(proxy);
|
||||
|
||||
ui->doubleSpinBox_MaxSize->setValue(pcObject->MaxSize.getValue());
|
||||
ui->doubleSpinBox_MinSize->setValue(pcObject->MinSize.getValue());
|
||||
ui->comboBox_Fineness->setCurrentIndex(pcObject->Fineness.getValue());
|
||||
ui->checkBox_SecondOrder->setChecked(pcObject->SecondOrder.getValue());
|
||||
ui->doubleSpinBox_GrowthRate->setValue(pcObject->GrowthRate.getValue());
|
||||
@@ -60,6 +61,10 @@ TaskTetParameter::TaskTetParameter(Fem::FemMeshShapeNetgenObject* pcObject, QWid
|
||||
qOverload<double>(&QDoubleSpinBox::valueChanged),
|
||||
this,
|
||||
&TaskTetParameter::maxSizeValueChanged);
|
||||
QObject::connect(ui->doubleSpinBox_MinSize,
|
||||
qOverload<double>(&QDoubleSpinBox::valueChanged),
|
||||
this,
|
||||
&TaskTetParameter::minSizeValueChanged);
|
||||
QObject::connect(ui->comboBox_Fineness,
|
||||
qOverload<int>(&QComboBox::activated),
|
||||
this,
|
||||
@@ -120,6 +125,12 @@ void TaskTetParameter::maxSizeValueChanged(double Value)
|
||||
touched = true;
|
||||
}
|
||||
|
||||
void TaskTetParameter::minSizeValueChanged(double Value)
|
||||
{
|
||||
pcObject->MinSize.setValue(Value);
|
||||
touched = true;
|
||||
}
|
||||
|
||||
void TaskTetParameter::setQuadric(int s)
|
||||
{
|
||||
pcObject->SecondOrder.setValue(s != 0);
|
||||
|
||||
@@ -69,6 +69,7 @@ public:
|
||||
private Q_SLOTS:
|
||||
void SwitchMethod(int Value);
|
||||
void maxSizeValueChanged(double Value);
|
||||
void minSizeValueChanged(double Value);
|
||||
void setQuadric(int s);
|
||||
void setGrowthRate(double v);
|
||||
void setSegsPerEdge(int v);
|
||||
|
||||
@@ -38,6 +38,24 @@
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>Min. Size:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QDoubleSpinBox" name="doubleSpinBox_MinSize">
|
||||
<property name="maximum">
|
||||
<double>9999999.990000000223517</double>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="checkBox_SecondOrder">
|
||||
<property name="text">
|
||||
|
||||
Reference in New Issue
Block a user