Merge pull request #10923 from marioalexis84/FEM-pressure

FEM: pressure constraint overhaul
This commit is contained in:
sliptonic
2023-10-04 14:30:05 -05:00
committed by GitHub
24 changed files with 914 additions and 620 deletions

View File

@@ -58,6 +58,21 @@ const char* ConstraintPressure::getViewProviderName() const
return "FemGui::ViewProviderFemConstraintPressure";
}
void ConstraintPressure::handleChangedPropertyType(Base::XMLReader& reader,
const char* TypeName,
App::Property* prop)
{
// property Pressure had App::PropertyFloat and was changed to App::PropertyPressure
if (prop == &Pressure && strcmp(TypeName, "App::PropertyFloat") == 0) {
App::PropertyFloat PressureProperty;
// restore the PropertyFloat to be able to set its value
PressureProperty.Restore(reader);
// the old implementation or pressure stored the value as MPa
// therefore we must convert the value with a factor 1000
Pressure.setValue(PressureProperty.getValue() * 1000.0);
}
}
void ConstraintPressure::onChanged(const App::Property* prop)
{
Constraint::onChanged(prop);

View File

@@ -37,7 +37,7 @@ class FemExport ConstraintPressure: public Fem::Constraint
public:
ConstraintPressure();
App::PropertyFloat Pressure;
App::PropertyPressure Pressure;
App::PropertyBool Reversed;
App::PropertyVectorList Points;
App::PropertyVectorList Normals;
@@ -49,6 +49,8 @@ public:
const char* getViewProviderName() const override;
protected:
void
handleChangedPropertyType(Base::XMLReader& reader, const char* TypeName, App::Property* prop);
void onChanged(const App::Property* prop) override;
};

View File

@@ -52,6 +52,33 @@ TaskFemConstraintPressure::TaskFemConstraintPressure(
ui->setupUi(proxy);
QMetaObject::connectSlotsByName(this);
this->groupLayout()->addWidget(proxy);
// Get the feature data
Fem::ConstraintPressure* pcConstraint =
static_cast<Fem::ConstraintPressure*>(ConstraintView->getObject());
std::vector<App::DocumentObject*> Objects = pcConstraint->References.getValues();
std::vector<std::string> SubElements = pcConstraint->References.getSubValues();
// Fill data into dialog elements
ui->if_pressure->setUnit(pcConstraint->Pressure.getUnit());
ui->if_pressure->setMinimum(0);
ui->if_pressure->setMaximum(FLOAT_MAX);
ui->if_pressure->setValue(pcConstraint->Pressure.getQuantityValue());
ui->if_pressure->bind(pcConstraint->Pressure);
bool reversed = pcConstraint->Reversed.getValue();
ui->checkBoxReverse->setChecked(reversed);
ui->lw_references->clear();
for (std::size_t i = 0; i < Objects.size(); i++) {
ui->lw_references->addItem(makeRefText(Objects[i], SubElements[i]));
}
if (!Objects.empty()) {
ui->lw_references->setCurrentRow(0, QItemSelectionModel::ClearAndSelect);
}
// create a context menu for the listview of the references
createDeleteAction(ui->lw_references);
connect(deleteAction,
@@ -72,37 +99,9 @@ TaskFemConstraintPressure::TaskFemConstraintPressure(
this,
&TaskFemConstraintPressure::onCheckReverse);
this->groupLayout()->addWidget(proxy);
/* Note: */
// Get the feature data
Fem::ConstraintPressure* pcConstraint =
static_cast<Fem::ConstraintPressure*>(ConstraintView->getObject());
std::vector<App::DocumentObject*> Objects = pcConstraint->References.getValues();
std::vector<std::string> SubElements = pcConstraint->References.getSubValues();
// Fill data into dialog elements
ui->if_pressure->setMinimum(0);
ui->if_pressure->setMaximum(FLOAT_MAX);
Base::Quantity p =
Base::Quantity(1000 * (pcConstraint->Pressure.getValue()), Base::Unit::Stress);
ui->if_pressure->setValue(p);
bool reversed = pcConstraint->Reversed.getValue();
ui->checkBoxReverse->setChecked(reversed);
/* */
ui->lw_references->clear();
for (std::size_t i = 0; i < Objects.size(); i++) {
ui->lw_references->addItem(makeRefText(Objects[i], SubElements[i]));
}
if (!Objects.empty()) {
ui->lw_references->setCurrentRow(0, QItemSelectionModel::ClearAndSelect);
}
// Selection buttons
buttonGroup->addButton(ui->btnAdd, (int)SelectionChangeModes::refAdd);
buttonGroup->addButton(ui->btnRemove, (int)SelectionChangeModes::refRemove);
buttonGroup->addButton(ui->btnAdd, static_cast<int>(SelectionChangeModes::refAdd));
buttonGroup->addButton(ui->btnRemove, static_cast<int>(SelectionChangeModes::refRemove));
updateUI();
}
@@ -252,15 +251,12 @@ const std::string TaskFemConstraintPressure::getReferences() const
return TaskFemConstraint::getReferences(items);
}
/* Note: */
double TaskFemConstraintPressure::get_Pressure() const
std::string TaskFemConstraintPressure::getPressure() const
{
Base::Quantity pressure = ui->if_pressure->getQuantity();
double pressure_in_MPa = pressure.getValueAs(Base::Quantity::MegaPascal);
return pressure_in_MPa;
return ui->if_pressure->value().getSafeUserString().toStdString();
}
bool TaskFemConstraintPressure::get_Reverse() const
bool TaskFemConstraintPressure::getReverse() const
{
return ui->checkBoxReverse->isChecked();
}
@@ -323,13 +319,13 @@ bool TaskDlgFemConstraintPressure::accept()
try {
Gui::Command::doCommand(Gui::Command::Doc,
"App.ActiveDocument.%s.Pressure = %f",
"App.ActiveDocument.%s.Pressure = \"%s\"",
name.c_str(),
parameterPressure->get_Pressure());
parameterPressure->getPressure().c_str());
Gui::Command::doCommand(Gui::Command::Doc,
"App.ActiveDocument.%s.Reversed = %s",
name.c_str(),
parameterPressure->get_Reverse() ? "True" : "False");
parameterPressure->getReverse() ? "True" : "False");
std::string scale = parameterPressure->getScale(); // OvG: determine modified scale
Gui::Command::doCommand(Gui::Command::Doc,
"App.ActiveDocument.%s.Scale = %s",

View File

@@ -46,8 +46,8 @@ public:
QWidget* parent = nullptr);
~TaskFemConstraintPressure() override;
const std::string getReferences() const override;
double get_Pressure() const;
bool get_Reverse() const;
std::string getPressure() const;
bool getReverse() const;
private Q_SLOTS:
void onReferenceDeleted();

View File

@@ -70,12 +70,12 @@
</widget>
</item>
<item>
<widget class="Gui::InputField" name="if_pressure">
<property name="text">
<string>0 MPa</string>
</property>
<widget class="Gui::QuantitySpinBox" name="if_pressure">
<property name="unit" stdset="0">
<string notr="true">MPa</string>
<string notr="true"/>
</property>
<property name="minimum">
<double>0.000000000000000</double>
</property>
</widget>
</item>
@@ -92,9 +92,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/>

View File

@@ -111,7 +111,7 @@ def setup(doc=None, solvertype="ccxtools"):
# constraint pressure
con_pressure = ObjectsFem.makeConstraintPressure(doc, name="FemConstraintPressure")
con_pressure.References = [(geom_obj, "Face2")]
con_pressure.Pressure = 1000.0
con_pressure.Pressure = "1000.0 MPa"
con_pressure.Reversed = False
analysis.addObject(con_pressure)

View File

@@ -167,7 +167,7 @@ def setup(doc=None, solvertype="ccxtools"):
# constraint pressure
con_pressure = ObjectsFem.makeConstraintPressure(doc, "ConstraintPressure")
con_pressure.References = [(geom_obj, "Face10")]
con_pressure.Pressure = 100.0 # Pa ? = 100 Mpa ?
con_pressure.Pressure = "100.0 MPa"
con_pressure.Reversed = False
analysis.addObject(con_pressure)

View File

@@ -257,7 +257,7 @@ def setup(doc=None, solvertype="ccxtools"):
# constraint pressure
con_pressure = ObjectsFem.makeConstraintPressure(doc, "ConstraintPressure")
con_pressure.References = [(geom_obj, "Face1")]
con_pressure.Pressure = 100.0
con_pressure.Pressure = "100.0 MPa"
con_pressure.Reversed = False
analysis.addObject(con_pressure)

View File

@@ -147,7 +147,7 @@ def setup(doc=None, solvertype="ccxtools"):
# constraint pressure
con_pressure = ObjectsFem.makeConstraintPressure(doc, name="FemConstraintPressure")
con_pressure.References = [(geom_obj, "Face8")]
con_pressure.Pressure = 10.0
con_pressure.Pressure = "10.0 MPa"
con_pressure.Reversed = False
analysis.addObject(con_pressure)

View File

@@ -153,7 +153,7 @@ def setup(doc=None, solvertype="ccxtools"):
# constraint pressure
con_pressure = ObjectsFem.makeConstraintPressure(doc, "ConstraintPressure")
con_pressure.References = [(geom_obj, "Face11")]
con_pressure.Pressure = 1000.0
con_pressure.Pressure = "1000.0 MPa"
con_pressure.Reversed = False
analysis.addObject(con_pressure)

View File

@@ -161,7 +161,7 @@ def setup(doc=None, solvertype="ccxtools"):
# pressure constraint
con_pressure = ObjectsFem.makeConstraintPressure(doc, "ConstraintPressure")
con_pressure.References = [(geom_obj, "Face2")]
con_pressure.Pressure = 130.0
con_pressure.Pressure = "130.0 MPa"
con_pressure.Reversed = True
analysis.addObject(con_pressure)

View File

@@ -51,5 +51,5 @@ class ConstraintInitialPressure(base_fempythonobject.BaseFemPythonObject):
"Parameter",
"Initial Pressure"
)
# App::PropertyPressure is in kPa and we initialize 1 bar
obj.Pressure = 100
# we initialize 1 bar
obj.Pressure = "100 kPa"

View File

@@ -25,6 +25,7 @@ __title__ = "FreeCAD FEM calculix constraint pressure"
__author__ = "Bernd Hahnebach"
__url__ = "https://www.freecad.org"
import FreeCAD
def get_analysis_types():
return ["buckling", "static", "thermomech"]
@@ -47,7 +48,9 @@ def write_meshdata_constraint(f, femobj, prs_obj, ccxwriter):
# floats read from ccx should use {:.13G}, see comment in writer module
rev = -1 if prs_obj.Reversed else 1
press_rev = rev * prs_obj.Pressure
# the pressure has to be output in MPa
pressure_quantity = FreeCAD.Units.Quantity(prs_obj.Pressure.getValueAs("MPa"))
press_rev = rev * pressure_quantity
f.write("*DLOAD\n")
for ref_shape in femobj["PressureFaces"]:
@@ -57,12 +60,12 @@ def write_meshdata_constraint(f, femobj, prs_obj, ccxwriter):
f.write("** " + ref_shape[0] + "\n")
for face, fno in ref_shape[1]:
if fno > 0: # solid mesh face
f.write("{},P{},{:.13G}\n".format(face, fno, press_rev))
f.write("{},P{},{}\n".format(face, fno, press_rev))
# on shell mesh face: fno == 0
# normal of element face == face normal
elif fno == 0:
f.write("{},P,{:.13G}\n".format(face, press_rev))
f.write("{},P,{}\n".format(face, press_rev))
# on shell mesh face: fno == -1
# normal of element face opposite direction face normal
elif fno == -1:
f.write("{},P,{:.13G}\n".format(face, -1 * press_rev))
f.write("{},P,{}\n".format(face, -1 * press_rev))

View File

@@ -82,7 +82,7 @@ class DeformationWriter:
for obj in self.write.getMember("Fem::ConstraintPressure"):
if obj.References:
for name in obj.References[0][1]:
pressure = self.write.getFromUi(obj.Pressure, "MPa", "M/(L*T^2)")
pressure = float(obj.Pressure.getValueAs("Pa"))
if not obj.Reversed:
pressure *= -1
self.write.boundary(name, "Normal Force", pressure)

View File

@@ -298,7 +298,7 @@ class ElasticityWriter:
for obj in self.write.getMember("Fem::ConstraintPressure"):
if obj.References:
for name in obj.References[0][1]:
pressure = self.write.getFromUi(obj.Pressure, "MPa", "M/(L*T^2)")
pressure = float(obj.Pressure.getValueAs("Pa"))
if not obj.Reversed:
pressure *= -1
self.write.boundary(name, "Normal Force", pressure)

View File

@@ -261,7 +261,7 @@ class Flowwriter:
for obj in self.write.getMember("Fem::ConstraintPressure"):
if obj.References:
for name in obj.References[0][1]:
pressure = self.write.getFromUi(obj.Pressure, "MPa", "M/(L*T^2)")
pressure = float(obj.Pressure.getValueAs("Pa"))
if obj.Reversed:
pressure *= -1
self.write.boundary(name, "External Pressure", pressure)

View File

@@ -556,22 +556,22 @@ FemConstraintFixed,3
** FemConstraintPressure
*DLOAD
** FemConstraintPressure: face load
3,P1,1000
6,P3,1000
9,P2,1000
36,P1,1000
38,P1,1000
56,P1,1000
61,P3,1000
67,P2,1000
68,P3,1000
75,P2,1000
76,P4,1000
78,P4,1000
79,P2,1000
90,P3,1000
105,P3,1000
125,P3,1000
3,P1,1000.0
6,P3,1000.0
9,P2,1000.0
36,P1,1000.0
38,P1,1000.0
56,P1,1000.0
61,P3,1000.0
67,P2,1000.0
68,P3,1000.0
75,P2,1000.0
76,P4,1000.0
78,P4,1000.0
79,P2,1000.0
90,P3,1000.0
105,P3,1000.0
125,P3,1000.0
***********************************************************
** Outputs --> frd file
@@ -590,8 +590,8 @@ RF
***********************************************************
** CalculiX Input file
** written by --> FreeCAD 0.17.9749 (Git)
** written on --> Sun Jan 22 14:28:56 2017
** written by --> FreeCAD 0.21.0
** written on --> Tue Mar 28 06:53:21 2023
** file name -->
** analysis name --> Analysis
**

View File

@@ -4346,20 +4346,163 @@ Evolumes
22,
91,
92,
93,
94,
95,
96,
97,
98,
99,
164,
165,
166,
167,
168,
274,
366,
100,
101,
102,
103,
104,
105,
106,
107,
108,
109,
110,
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139,
140,
141,
142,
143,
144,
145,
146,
147,
148,
149,
150,
151,
152,
153,
154,
155,
156,
157,
158,
159,
160,
161,
162,
163,
275,
276,
277,
278,
279,
280,
281,
282,
283,
284,
285,
286,
287,
288,
289,
290,
291,
292,
293,
294,
295,
296,
297,
298,
299,
300,
301,
302,
303,
304,
305,
306,
307,
308,
309,
310,
311,
312,
313,
314,
315,
316,
317,
318,
319,
320,
321,
322,
323,
324,
325,
326,
327,
328,
329,
330,
331,
332,
333,
334,
335,
336,
337,
338,
339,
340,
341,
342,
343,
344,
345,
346,
347,
348,
349,
350,
351,
352,
353,
354,
355,
356,
357,
358,
359,
360,
361,
362,
363,
364,
365,
559,
560,
561,
@@ -4381,21 +4524,75 @@ Evolumes
649,
650,
651,
652,
653,
654,
655,
656,
657,
658,
659,
660,
727,
728,
729,
730,
731,
732,
661,
662,
663,
664,
665,
666,
667,
668,
669,
670,
671,
672,
673,
674,
675,
676,
677,
678,
679,
680,
681,
682,
683,
684,
685,
686,
687,
688,
689,
690,
691,
692,
693,
694,
695,
696,
697,
698,
699,
700,
701,
702,
703,
704,
705,
706,
707,
708,
709,
710,
711,
712,
713,
714,
715,
716,
717,
718,
719,
720,
721,
722,
723,
724,
725,
726,
733,
734,
735,
@@ -4408,24 +4605,348 @@ Evolumes
742,
743,
744,
1210,
1211,
1212,
1213,
1214,
1215,
1216,
1217,
1218,
1561,
1562,
1563,
1564,
1565,
1566,
1567,
1568,
1569,
1219,
1220,
1221,
1222,
1223,
1224,
1225,
1226,
1227,
1228,
1229,
1230,
1231,
1232,
1233,
1234,
1235,
1236,
1237,
1238,
1239,
1240,
1241,
1242,
1243,
1244,
1245,
1246,
1247,
1248,
1249,
1250,
1251,
1252,
1253,
1254,
1255,
1256,
1257,
1258,
1259,
1260,
1261,
1262,
1263,
1264,
1265,
1266,
1267,
1268,
1269,
1270,
1271,
1272,
1273,
1274,
1275,
1276,
1277,
1278,
1279,
1280,
1281,
1282,
1283,
1284,
1285,
1286,
1287,
1288,
1289,
1290,
1291,
1292,
1293,
1294,
1295,
1296,
1297,
1298,
1299,
1300,
1301,
1302,
1303,
1304,
1305,
1306,
1307,
1308,
1309,
1310,
1311,
1312,
1313,
1314,
1315,
1316,
1317,
1318,
1319,
1320,
1321,
1322,
1323,
1324,
1325,
1326,
1327,
1328,
1329,
1330,
1331,
1332,
1333,
1334,
1335,
1336,
1337,
1338,
1339,
1340,
1341,
1342,
1343,
1344,
1345,
1346,
1347,
1348,
1349,
1350,
1351,
1352,
1353,
1354,
1355,
1356,
1357,
1358,
1359,
1360,
1361,
1362,
1363,
1364,
1365,
1366,
1367,
1368,
1369,
1370,
1371,
1372,
1373,
1374,
1375,
1376,
1377,
1378,
1379,
1380,
1381,
1382,
1383,
1384,
1385,
1386,
1387,
1388,
1389,
1390,
1391,
1392,
1393,
1394,
1395,
1396,
1397,
1398,
1399,
1400,
1401,
1402,
1403,
1404,
1405,
1406,
1407,
1408,
1409,
1410,
1411,
1412,
1413,
1414,
1415,
1416,
1417,
1418,
1419,
1420,
1421,
1422,
1423,
1424,
1425,
1426,
1427,
1428,
1429,
1430,
1431,
1432,
1433,
1434,
1435,
1436,
1437,
1438,
1439,
1440,
1441,
1442,
1443,
1444,
1445,
1446,
1447,
1448,
1449,
1450,
1451,
1452,
1453,
1454,
1455,
1456,
1457,
1458,
1459,
1460,
1461,
1462,
1463,
1464,
1465,
1466,
1467,
1468,
1469,
1470,
1471,
1472,
1473,
1474,
1475,
1476,
1477,
1478,
1479,
1480,
1481,
1482,
1483,
1484,
1485,
1486,
1487,
1488,
1489,
1490,
1491,
1492,
1493,
1494,
1495,
1496,
1497,
1498,
1499,
1500,
1501,
1502,
1503,
1504,
1505,
1506,
1507,
1508,
1509,
1510,
1511,
1512,
1513,
1514,
1515,
1516,
1517,
1518,
1519,
1520,
1521,
1522,
1523,
1524,
1525,
1526,
1527,
1528,
1529,
1530,
1531,
1532,
1533,
1534,
1535,
1536,
1537,
1538,
1539,
1540,
1541,
1542,
1543,
1544,
1545,
1546,
1547,
1548,
1549,
1550,
1551,
1552,
1553,
1554,
1555,
1556,
1557,
1558,
1559,
1560,
***********************************************************
** constraints contact surface sets
@@ -5055,7 +5576,7 @@ Evolumes
DEPConstraintContact,INDConstraintContact
*SURFACE INTERACTION, NAME=INTConstraintContact
*SURFACE BEHAVIOR,PRESSURE-OVERCLOSURE=LINEAR
1000000.0
1000000
***********************************************************
** At least one step is needed to run an CalculiX analysis of FreeCAD
@@ -5077,258 +5598,15 @@ ConstraintFixed,3
** ConstraintPressure
*DLOAD
** ConstraintPressure: face load
1322,P2,100.0
1516,P1,100.0
1701,P1,100.0
1727,P1,100.0
1728,P1,100.0
1729,P1,100.0
1733,P3,100.0
1745,P2,100.0
1746,P3,100.0
1751,P3,100.0
1754,P2,100.0
1756,P1,100.0
1757,P4,100.0
1759,P4,100.0
1761,P1,100.0
1762,P1,100.0
1763,P2,100.0
1765,P1,100.0
1773,P2,100.0
1775,P1,100.0
1778,P2,100.0
1779,P2,100.0
1781,P1,100.0
1782,P4,100.0
1786,P3,100.0
1803,P2,100.0
1804,P2,100.0
1805,P2,100.0
1806,P4,100.0
1807,P2,100.0
1809,P3,100.0
1810,P4,100.0
1812,P4,100.0
1813,P3,100.0
1815,P1,100.0
1817,P2,100.0
1821,P4,100.0
1824,P3,100.0
1825,P3,100.0
1826,P2,100.0
1828,P4,100.0
1830,P2,100.0
1834,P1,100.0
1836,P2,100.0
1839,P1,100.0
1840,P3,100.0
1842,P1,100.0
1846,P2,100.0
1847,P4,100.0
1848,P2,100.0
1852,P4,100.0
1854,P1,100.0
1866,P4,100.0
1869,P4,100.0
1875,P3,100.0
1881,P2,100.0
1882,P1,100.0
1883,P2,100.0
1885,P3,100.0
1886,P3,100.0
1888,P3,100.0
1895,P1,100.0
1896,P2,100.0
1897,P2,100.0
1902,P2,100.0
1905,P1,100.0
1914,P2,100.0
1921,P4,100.0
1933,P2,100.0
1935,P2,100.0
1940,P3,100.0
1941,P2,100.0
1946,P1,100.0
1947,P3,100.0
1953,P1,100.0
1958,P3,100.0
1961,P3,100.0
1966,P2,100.0
1976,P3,100.0
1983,P2,100.0
1989,P2,100.0
1993,P1,100.0
1994,P4,100.0
1996,P4,100.0
1998,P2,100.0
2001,P2,100.0
2008,P1,100.0
2010,P3,100.0
2018,P4,100.0
2024,P1,100.0
2030,P4,100.0
2031,P4,100.0
2042,P3,100.0
2044,P1,100.0
2046,P4,100.0
2047,P2,100.0
2056,P4,100.0
2057,P2,100.0
2071,P1,100.0
2075,P1,100.0
2076,P4,100.0
2079,P3,100.0
2080,P1,100.0
2081,P1,100.0
2082,P2,100.0
2083,P3,100.0
2088,P1,100.0
2089,P2,100.0
2090,P2,100.0
2091,P2,100.0
2093,P2,100.0
2107,P3,100.0
2108,P2,100.0
2116,P4,100.0
2119,P4,100.0
2122,P1,100.0
2125,P3,100.0
2128,P4,100.0
2135,P1,100.0
2136,P3,100.0
2140,P3,100.0
2141,P4,100.0
2146,P1,100.0
2147,P2,100.0
2151,P3,100.0
2152,P4,100.0
2154,P4,100.0
2155,P3,100.0
2156,P3,100.0
2160,P3,100.0
2164,P3,100.0
2166,P4,100.0
2167,P1,100.0
2168,P2,100.0
2169,P3,100.0
2171,P2,100.0
2172,P1,100.0
2174,P4,100.0
2176,P2,100.0
2179,P4,100.0
2183,P1,100.0
2189,P3,100.0
2191,P1,100.0
2192,P4,100.0
2197,P3,100.0
2198,P3,100.0
2200,P1,100.0
2204,P2,100.0
2206,P2,100.0
2211,P3,100.0
2216,P2,100.0
2218,P3,100.0
2220,P2,100.0
2222,P4,100.0
2228,P4,100.0
2229,P1,100.0
2231,P1,100.0
2235,P2,100.0
2238,P4,100.0
2241,P2,100.0
2246,P1,100.0
2247,P2,100.0
2250,P1,100.0
2251,P2,100.0
2259,P2,100.0
2262,P2,100.0
2264,P3,100.0
2266,P4,100.0
2268,P4,100.0
2269,P2,100.0
2272,P4,100.0
2273,P4,100.0
2276,P3,100.0
2278,P4,100.0
2279,P1,100.0
2286,P1,100.0
2290,P3,100.0
2292,P3,100.0
2296,P3,100.0
2307,P3,100.0
2310,P4,100.0
2312,P3,100.0
2314,P1,100.0
2318,P1,100.0
2321,P3,100.0
2323,P2,100.0
2325,P4,100.0
2327,P1,100.0
2336,P4,100.0
2344,P2,100.0
2346,P4,100.0
2347,P3,100.0
2349,P2,100.0
2355,P2,100.0
2358,P3,100.0
2361,P2,100.0
2363,P4,100.0
2369,P3,100.0
2372,P2,100.0
2380,P4,100.0
2390,P1,100.0
2392,P4,100.0
2396,P4,100.0
2397,P4,100.0
2400,P3,100.0
2404,P3,100.0
2406,P2,100.0
2408,P3,100.0
2425,P1,100.0
2430,P2,100.0
2436,P2,100.0
2439,P2,100.0
2442,P3,100.0
2451,P1,100.0
2452,P3,100.0
2462,P1,100.0
2464,P1,100.0
2472,P1,100.0
2477,P4,100.0
2478,P1,100.0
2482,P3,100.0
2488,P3,100.0
2491,P1,100.0
2493,P1,100.0
2496,P2,100.0
2499,P1,100.0
2505,P3,100.0
2512,P2,100.0
2514,P3,100.0
2521,P1,100.0
2526,P4,100.0
2530,P1,100.0
2534,P2,100.0
2536,P3,100.0
2537,P4,100.0
2542,P1,100.0
2546,P2,100.0
2548,P4,100.0
2550,P3,100.0
2552,P4,100.0
2556,P3,100.0
2557,P2,100.0
2559,P2,100.0
2560,P2,100.0
2570,P1,100.0
2580,P2,100.0
2584,P2,100.0
2585,P1,100.0
2586,P1,100.0
2589,P1,100.0
2592,P3,100.0
2596,P2,100.0
1733,P4,100.0
1793,P1,100.0
1981,P4,100.0
2040,P1,100.0
2304,P2,100.0
2380,P3,100.0
2463,P2,100.0
2470,P2,100.0
2547,P1,100.0
***********************************************************
** Outputs --> frd file
@@ -5347,8 +5625,8 @@ RF
***********************************************************
** CalculiX Input file
** written by --> FreeCAD 0.19.19463 (Git)
** written on --> Mon Feb 3 23:28:02 2020
** written by --> FreeCAD 0.21.0
** written on --> Tue Mar 28 06:51:00 2023
** file name -->
** analysis name --> Analysis
**

View File

@@ -3425,24 +3425,24 @@ SOF, SOM, SOAREA
** ConstraintPressure
*DLOAD
** ConstraintPressure: face load
846,P3,100
861,P1,100
875,P4,100
883,P3,100
887,P1,100
888,P1,100
903,P1,100
929,P4,100
933,P3,100
936,P1,100
937,P1,100
940,P1,100
941,P1,100
946,P4,100
949,P2,100
951,P4,100
954,P3,100
955,P4,100
846,P3,100.0
861,P1,100.0
875,P4,100.0
883,P3,100.0
887,P1,100.0
888,P1,100.0
903,P1,100.0
929,P4,100.0
933,P3,100.0
936,P1,100.0
937,P1,100.0
940,P1,100.0
941,P1,100.0
946,P4,100.0
949,P2,100.0
951,P4,100.0
954,P3,100.0
955,P4,100.0
***********************************************************
** Outputs --> frd file
@@ -3461,8 +3461,8 @@ RF
***********************************************************
** CalculiX Input file
** written by --> FreeCAD 0.19.21759 (Git)
** written on --> Wed Jun 24 09:14:56 2020
** written by --> FreeCAD 0.21.0
** written on --> Tue Mar 28 06:49:11 2023
** file name -->
** analysis name --> Analysis
**

View File

@@ -3655,124 +3655,124 @@ FemConstraintDisplacment,1
** FemConstraintPressure
*DLOAD
** FemConstraintPressure: face load
1384,P3,10
1394,P2,10
1397,P2,10
1399,P1,10
1400,P1,10
1402,P2,10
1404,P2,10
1415,P4,10
1418,P1,10
1419,P2,10
1423,P2,10
1428,P2,10
1429,P1,10
1432,P4,10
1433,P3,10
1437,P4,10
1438,P2,10
1441,P2,10
1442,P3,10
1443,P3,10
1448,P4,10
1451,P4,10
1455,P2,10
1457,P4,10
1458,P1,10
1461,P3,10
1466,P3,10
1467,P3,10
1475,P1,10
1476,P1,10
1484,P1,10
1500,P1,10
1501,P2,10
1503,P1,10
1504,P1,10
1507,P2,10
1508,P1,10
1548,P1,10
1549,P4,10
1550,P3,10
1552,P4,10
1554,P1,10
1555,P1,10
1571,P3,10
1579,P2,10
1580,P1,10
1581,P4,10
1589,P3,10
1590,P3,10
1661,P1,10
1663,P3,10
1675,P1,10
1676,P4,10
1685,P4,10
1686,P2,10
1687,P3,10
1707,P4,10
1713,P1,10
1718,P4,10
1719,P2,10
1721,P2,10
1728,P1,10
1730,P4,10
1733,P3,10
1737,P1,10
1740,P4,10
1742,P3,10
1743,P1,10
1744,P1,10
1747,P1,10
1750,P4,10
1751,P4,10
1759,P1,10
1760,P3,10
1761,P4,10
1762,P2,10
1767,P3,10
1770,P1,10
1771,P1,10
1776,P3,10
1785,P4,10
1786,P1,10
1804,P4,10
1818,P1,10
1820,P2,10
1823,P3,10
1824,P4,10
1832,P1,10
1833,P4,10
1838,P3,10
1848,P1,10
1849,P3,10
1850,P2,10
1851,P2,10
1852,P4,10
1860,P4,10
1861,P1,10
1864,P3,10
1874,P4,10
1881,P3,10
1892,P2,10
1893,P2,10
1900,P1,10
1901,P3,10
1902,P1,10
1903,P2,10
1907,P3,10
1909,P1,10
1918,P4,10
1919,P2,10
1922,P3,10
1928,P3,10
1934,P4,10
1935,P4,10
1943,P3,10
1976,P4,10
1982,P2,10
1984,P4,10
1384,P3,10.0
1394,P2,10.0
1397,P2,10.0
1399,P1,10.0
1400,P1,10.0
1402,P2,10.0
1404,P2,10.0
1415,P4,10.0
1418,P1,10.0
1419,P2,10.0
1423,P2,10.0
1428,P2,10.0
1429,P1,10.0
1432,P4,10.0
1433,P3,10.0
1437,P4,10.0
1438,P2,10.0
1441,P2,10.0
1442,P3,10.0
1443,P3,10.0
1448,P4,10.0
1451,P4,10.0
1455,P2,10.0
1457,P4,10.0
1458,P1,10.0
1461,P3,10.0
1466,P3,10.0
1467,P3,10.0
1475,P1,10.0
1476,P1,10.0
1484,P1,10.0
1500,P1,10.0
1501,P2,10.0
1503,P1,10.0
1504,P1,10.0
1507,P2,10.0
1508,P1,10.0
1548,P1,10.0
1549,P4,10.0
1550,P3,10.0
1552,P4,10.0
1554,P1,10.0
1555,P1,10.0
1571,P3,10.0
1579,P2,10.0
1580,P1,10.0
1581,P4,10.0
1589,P3,10.0
1590,P3,10.0
1661,P1,10.0
1663,P3,10.0
1675,P1,10.0
1676,P4,10.0
1685,P4,10.0
1686,P2,10.0
1687,P3,10.0
1707,P4,10.0
1713,P1,10.0
1718,P4,10.0
1719,P2,10.0
1721,P2,10.0
1728,P1,10.0
1730,P4,10.0
1733,P3,10.0
1737,P1,10.0
1740,P4,10.0
1742,P3,10.0
1743,P1,10.0
1744,P1,10.0
1747,P1,10.0
1750,P4,10.0
1751,P4,10.0
1759,P1,10.0
1760,P3,10.0
1761,P4,10.0
1762,P2,10.0
1767,P3,10.0
1770,P1,10.0
1771,P1,10.0
1776,P3,10.0
1785,P4,10.0
1786,P1,10.0
1804,P4,10.0
1818,P1,10.0
1820,P2,10.0
1823,P3,10.0
1824,P4,10.0
1832,P1,10.0
1833,P4,10.0
1838,P3,10.0
1848,P1,10.0
1849,P3,10.0
1850,P2,10.0
1851,P2,10.0
1852,P4,10.0
1860,P4,10.0
1861,P1,10.0
1864,P3,10.0
1874,P4,10.0
1881,P3,10.0
1892,P2,10.0
1893,P2,10.0
1900,P1,10.0
1901,P3,10.0
1902,P1,10.0
1903,P2,10.0
1907,P3,10.0
1909,P1,10.0
1918,P4,10.0
1919,P2,10.0
1922,P3,10.0
1928,P3,10.0
1934,P4,10.0
1935,P4,10.0
1943,P3,10.0
1976,P4,10.0
1982,P2,10.0
1984,P4,10.0
***********************************************************
** Outputs --> frd file
@@ -3791,8 +3791,8 @@ RF
***********************************************************
** CalculiX Input file
** written by --> FreeCAD 0.20.25211 (Git)
** written on --> Fri Jul 9 17:37:32 2021
** written by --> FreeCAD 0.21.0
** written on --> Tue Mar 28 06:46:40 2023
** file name --> constraint_transform_beam_hinged.FCStd
** analysis name --> Analysis
**

View File

@@ -1249,22 +1249,22 @@ ConstraintFixed,3
** ConstraintPressure
*DLOAD
** ConstraintPressure: face load
61,P3,1000
74,P3,1000
75,P3,1000
80,P2,1000
96,P3,1000
99,P3,1000
100,P4,1000
102,P3,1000
117,P3,1000
118,P3,1000
121,P3,1000
124,P4,1000
127,P2,1000
131,P4,1000
132,P4,1000
134,P2,1000
61,P3,1000.0
74,P3,1000.0
75,P3,1000.0
80,P2,1000.0
96,P3,1000.0
99,P3,1000.0
100,P4,1000.0
102,P3,1000.0
117,P3,1000.0
118,P3,1000.0
121,P3,1000.0
124,P4,1000.0
127,P2,1000.0
131,P4,1000.0
132,P4,1000.0
134,P2,1000.0
***********************************************************
** Outputs --> frd file
@@ -1283,8 +1283,8 @@ RF
***********************************************************
** CalculiX Input file
** written by --> FreeCAD 0.19.19432 (Git)
** written on --> Fri Jan 31 08:06:05 2020
** written by --> FreeCAD 0.21.0
** written on --> Tue Mar 28 06:48:16 2023
** file name -->
** analysis name --> Analysis
**

View File

@@ -20022,86 +20022,86 @@ ConstraintFixed,3
** ConstraintPressure
*DLOAD
** ConstraintPressure: face load
4796,P3,-130
4799,P4,-130
4872,P4,-130
4875,P1,-130
5260,P3,-130
5261,P4,-130
5286,P3,-130
5287,P3,-130
5527,P1,-130
5528,P3,-130
5647,P1,-130
5648,P1,-130
5886,P1,-130
5887,P1,-130
5993,P1,-130
5994,P1,-130
6114,P1,-130
6115,P1,-130
6591,P3,-130
6592,P3,-130
6685,P3,-130
6686,P3,-130
6827,P4,-130
6828,P4,-130
7016,P4,-130
7017,P4,-130
7221,P1,-130
7222,P1,-130
7360,P3,-130
7361,P3,-130
7863,P3,-130
7864,P3,-130
8589,P1,-130
8590,P3,-130
9169,P4,-130
9170,P4,-130
10527,P4,-130
10530,P1,-130
10580,P4,-130
10583,P1,-130
10735,P3,-130
10736,P3,-130
10741,P4,-130
10742,P3,-130
10753,P1,-130
10759,P4,-130
10791,P4,-130
10793,P1,-130
10811,P4,-130
10831,P4,-130
10832,P1,-130
10845,P1,-130
10846,P1,-130
10862,P4,-130
10865,P1,-130
10868,P3,-130
10869,P1,-130
10870,P3,-130
10871,P3,-130
10881,P1,-130
10882,P4,-130
10885,P1,-130
10886,P1,-130
10902,P1,-130
10903,P1,-130
10926,P1,-130
10927,P1,-130
10930,P1,-130
10933,P4,-130
11005,P1,-130
11006,P1,-130
11009,P1,-130
11010,P4,-130
11018,P1,-130
11019,P1,-130
11054,P4,-130
11055,P4,-130
11114,P3,-130
11157,P1,-130
11158,P4,-130
4796,P3,-130.0
4799,P4,-130.0
4872,P4,-130.0
4875,P1,-130.0
5260,P3,-130.0
5261,P4,-130.0
5286,P3,-130.0
5287,P3,-130.0
5527,P1,-130.0
5528,P3,-130.0
5647,P1,-130.0
5648,P1,-130.0
5886,P1,-130.0
5887,P1,-130.0
5993,P1,-130.0
5994,P1,-130.0
6114,P1,-130.0
6115,P1,-130.0
6591,P3,-130.0
6592,P3,-130.0
6685,P3,-130.0
6686,P3,-130.0
6827,P4,-130.0
6828,P4,-130.0
7016,P4,-130.0
7017,P4,-130.0
7221,P1,-130.0
7222,P1,-130.0
7360,P3,-130.0
7361,P3,-130.0
7863,P3,-130.0
7864,P3,-130.0
8589,P1,-130.0
8590,P3,-130.0
9169,P4,-130.0
9170,P4,-130.0
10527,P4,-130.0
10530,P1,-130.0
10580,P4,-130.0
10583,P1,-130.0
10735,P3,-130.0
10736,P3,-130.0
10741,P4,-130.0
10742,P3,-130.0
10753,P1,-130.0
10759,P4,-130.0
10791,P4,-130.0
10793,P1,-130.0
10811,P4,-130.0
10831,P4,-130.0
10832,P1,-130.0
10845,P1,-130.0
10846,P1,-130.0
10862,P4,-130.0
10865,P1,-130.0
10868,P3,-130.0
10869,P1,-130.0
10870,P3,-130.0
10871,P3,-130.0
10881,P1,-130.0
10882,P4,-130.0
10885,P1,-130.0
10886,P1,-130.0
10902,P1,-130.0
10903,P1,-130.0
10926,P1,-130.0
10927,P1,-130.0
10930,P1,-130.0
10933,P4,-130.0
11005,P1,-130.0
11006,P1,-130.0
11009,P1,-130.0
11010,P4,-130.0
11018,P1,-130.0
11019,P1,-130.0
11054,P4,-130.0
11055,P4,-130.0
11114,P3,-130.0
11157,P1,-130.0
11158,P4,-130.0
***********************************************************
** Outputs --> frd file
@@ -20120,8 +20120,8 @@ RF
***********************************************************
** CalculiX Input file
** written by --> FreeCAD 0.19.19432 (Git)
** written on --> Fri Jan 31 08:04:49 2020
** written by --> FreeCAD 0.21.0
** written on --> Tue Mar 28 07:12:17 2023
** file name -->
** analysis name --> Analysis
**