FreeCAD/FreeCAD

FEM: Local coordinate system (ConstraintTransform) should be more flexible

Open

#18,329 opened on 2024年12月6日

GitHub で見る
 (0 comments) (0 reactions) (0 assignees)C++ (5,550 forks)batch import
Good first issueMod: FEMType: Feature

Repository metrics

Stars
 (30,913 stars)
PR merge metrics
 (平均マージ 24d 7h) (30d で 217 merged PRs)

説明

Is there an existing issue for this?

  • I have searched the existing issues

Problem description

FEM ConstraintTransform internally relies on the CalculiX's *TRANSFORM keyword but doesn't use its full potential.

In short words, this keyword can transform the coordinate system of any node set to a local coordinate system (instead of the global cartesian one). Both rectangular and cylindrical system can be defined and to specify a new (local) system, one needs to provide the global coordinates of 2 points - a and b:

  • rectangular system - a lies on the local X axis, b lies on the local XY plane but not on the local X axis
  • cylindrical system - a and b both lie on the local Z axis

Then all boundary conditions (and concentrated forces but it's not relevant for FreeCAD) applied to these nodes will be applied in the local coordinate system.

Now, ConstrainTransform (implementation discussed here) is more automated and instead of inputting the coordinates of points a and b, one just needs to specify the rotation about each of the 3 axes for rectangular CSYS while cylindrical CSYS is created fully automatically but can be applied only to cylindrical faces. This poses a significant limitation. IMO it would be better to just follow the CalculiX's syntax (like other preprocessors do) and allow the user to manually specify the coordinates of points a and b. Of course, it would be nice if it was possible to select the existing vertices as well but manual input of coordinates will be often needed anyway. One change that could/should be made (and again is made by other preprocessors) is adding a third point (or actually first in the order of specification) defining the origin of the local CSYS. CalculiX doesn't need it but it's necessary to display the local CSYS in the 3D viewport and makes the definition more intuitive.

@marioalexis84 FYI

Full version info

OS: Windows 10 build 19045
Architecture: x86_64
Version: 1.1.0dev.39416 (Git) Conda
Build type: Release
Branch: main
Hash: f6268ffd2877dadb4440ade541e12c388a517d6e
Python 3.11.10, Qt 5.15.15, Coin 4.0.3, Vtk 9.3.0, OCC 7.8.1
Locale: Polish/Poland (pl_PL)
Stylesheet/Theme/QtStyle: unset/FreeCAD Classic/Qt default

Subproject(s) affected?

FEM

Anything else?

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

コントリビューターガイド