| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| |
|
| | #include "FemConstraintDisplacement.h" |
| |
|
| |
|
| | using namespace Fem; |
| |
|
| | PROPERTY_SOURCE(Fem::ConstraintDisplacement, Fem::Constraint) |
| |
|
| | ConstraintDisplacement::ConstraintDisplacement() |
| | { |
| | |
| | |
| | |
| | |
| | |
| |
|
| | |
| | ADD_PROPERTY_TYPE( |
| | xFree, |
| | (true), |
| | "ConstraintDisplacement", |
| | App::Prop_None, |
| | "Use free translation in X-direction" |
| | ); |
| | ADD_PROPERTY_TYPE( |
| | xDisplacement, |
| | (0.0), |
| | "ConstraintDisplacement", |
| | App::Prop_None, |
| | "Translation in local X-direction" |
| | ); |
| | ADD_PROPERTY_TYPE( |
| | hasXFormula, |
| | (false), |
| | "ConstraintDisplacement", |
| | App::Prop_None, |
| | "Define translation in X-direction as a formula" |
| | ); |
| | ADD_PROPERTY_TYPE( |
| | xDisplacementFormula, |
| | (""), |
| | "ConstraintDisplacement", |
| | App::Prop_None, |
| | "Formula for translation in X-direction" |
| | ); |
| |
|
| | |
| | ADD_PROPERTY_TYPE( |
| | yFree, |
| | (true), |
| | "ConstraintDisplacement", |
| | App::Prop_None, |
| | "Use free translation in Y-direction" |
| | ); |
| | ADD_PROPERTY_TYPE( |
| | yDisplacement, |
| | (0.0), |
| | "ConstraintDisplacement", |
| | App::Prop_None, |
| | "Translation in local Y-direction" |
| | ); |
| | ADD_PROPERTY_TYPE( |
| | hasYFormula, |
| | (false), |
| | "ConstraintDisplacement", |
| | App::Prop_None, |
| | "Define translation in Y-direction as a formula" |
| | ); |
| | ADD_PROPERTY_TYPE( |
| | yDisplacementFormula, |
| | (""), |
| | "ConstraintDisplacement", |
| | App::Prop_None, |
| | "Formula for translation in Y-direction" |
| | ); |
| |
|
| | |
| | ADD_PROPERTY_TYPE( |
| | zFree, |
| | (true), |
| | "ConstraintDisplacement", |
| | App::Prop_None, |
| | "Use free translation in Z-direction" |
| | ); |
| | ADD_PROPERTY_TYPE( |
| | zDisplacement, |
| | (0.0), |
| | "ConstraintDisplacement", |
| | App::Prop_None, |
| | "Translation in local Z-direction" |
| | ); |
| | ADD_PROPERTY_TYPE( |
| | hasZFormula, |
| | (false), |
| | "ConstraintDisplacement", |
| | App::Prop_None, |
| | "Define translation in Z-direction as a formula" |
| | ); |
| | ADD_PROPERTY_TYPE( |
| | zDisplacementFormula, |
| | (""), |
| | "ConstraintDisplacement", |
| | App::Prop_None, |
| | "Formula for translation in Z-direction" |
| | ); |
| |
|
| | |
| | ADD_PROPERTY_TYPE( |
| | useFlowSurfaceForce, |
| | (false), |
| | "ConstraintDisplacement", |
| | App::Prop_None, |
| | "Use flow surface force" |
| | ); |
| |
|
| | |
| | ADD_PROPERTY_TYPE( |
| | rotxFree, |
| | (true), |
| | "ConstraintDisplacement", |
| | App::Prop_None, |
| | "Use free rotation in X-direction" |
| | ); |
| | ADD_PROPERTY_TYPE( |
| | xRotation, |
| | (0.0), |
| | "ConstraintDisplacement", |
| | App::Prop_None, |
| | "Rotation in local X-direction" |
| | ); |
| |
|
| | |
| | ADD_PROPERTY_TYPE( |
| | rotyFree, |
| | (true), |
| | "ConstraintDisplacement", |
| | App::Prop_None, |
| | "Use free rotation in Y-direction" |
| | ); |
| | ADD_PROPERTY_TYPE( |
| | yRotation, |
| | (0.0), |
| | "ConstraintDisplacement", |
| | App::Prop_None, |
| | "Rotation in local Y-direction" |
| | ); |
| |
|
| | |
| | ADD_PROPERTY_TYPE( |
| | rotzFree, |
| | (true), |
| | "ConstraintDisplacement", |
| | App::Prop_None, |
| | "Use free rotation in Z-direction" |
| | ); |
| | ADD_PROPERTY_TYPE( |
| | zRotation, |
| | (0.0), |
| | "ConstraintDisplacement", |
| | App::Prop_None, |
| | "Rotation in local Z-direction" |
| | ); |
| | ADD_PROPERTY_TYPE( |
| | EnableAmplitude, |
| | (false), |
| | "ConstraintDisplacement", |
| | (App::PropertyType)(App::Prop_None), |
| | "Amplitude of the displacement boundary condition" |
| | ); |
| | ADD_PROPERTY_TYPE( |
| | AmplitudeValues, |
| | (std::vector<std::string> {"0, 0", "1, 1"}), |
| | "ConstraintDisplacement", |
| | (App::PropertyType)(App::Prop_None), |
| | "Amplitude values" |
| | ); |
| | } |
| |
|
| | App::DocumentObjectExecReturn* ConstraintDisplacement::execute() |
| | { |
| | return Constraint::execute(); |
| | } |
| |
|
| | const char* ConstraintDisplacement::getViewProviderName() const |
| | { |
| | return "FemGui::ViewProviderFemConstraintDisplacement"; |
| | } |
| |
|
| | void ConstraintDisplacement::handleChangedPropertyType( |
| | Base::XMLReader& reader, |
| | const char* TypeName, |
| | App::Property* prop |
| | ) |
| | { |
| | |
| | if (prop == &xDisplacement && strcmp(TypeName, "App::PropertyFloat") == 0) { |
| | App::PropertyFloat xDisplacementProperty; |
| | |
| | xDisplacementProperty.Restore(reader); |
| | xDisplacement.setValue(xDisplacementProperty.getValue()); |
| | } |
| | else if (prop == &yDisplacement && strcmp(TypeName, "App::PropertyFloat") == 0) { |
| | App::PropertyFloat yDisplacementProperty; |
| | yDisplacementProperty.Restore(reader); |
| | yDisplacement.setValue(yDisplacementProperty.getValue()); |
| | } |
| | else if (prop == &zDisplacement && strcmp(TypeName, "App::PropertyFloat") == 0) { |
| | App::PropertyFloat zDisplacementProperty; |
| | zDisplacementProperty.Restore(reader); |
| | zDisplacement.setValue(zDisplacementProperty.getValue()); |
| | } |
| | |
| | else if (prop == &xRotation && strcmp(TypeName, "App::PropertyFloat") == 0) { |
| | App::PropertyFloat xRotationProperty; |
| | xRotationProperty.Restore(reader); |
| | xRotation.setValue(xRotationProperty.getValue()); |
| | } |
| | else if (prop == &yRotation && strcmp(TypeName, "App::PropertyFloat") == 0) { |
| | App::PropertyFloat yRotationProperty; |
| | yRotationProperty.Restore(reader); |
| | yRotation.setValue(yRotationProperty.getValue()); |
| | } |
| | else if (prop == &zRotation && strcmp(TypeName, "App::PropertyFloat") == 0) { |
| | App::PropertyFloat zRotationProperty; |
| | zRotationProperty.Restore(reader); |
| | zRotation.setValue(zRotationProperty.getValue()); |
| | } |
| | else { |
| | Constraint::handleChangedPropertyType(reader, TypeName, prop); |
| | } |
| | } |
| |
|
| | void ConstraintDisplacement::onChanged(const App::Property* prop) |
| | { |
| | Constraint::onChanged(prop); |
| | } |
| |
|