FreeCAD/FreeCAD

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

Open

#18,329 创建于 2024年12月6日

在 GitHub 查看
 (0 评论) (0 反应) (0 负责人)C++ (5,550 fork)batch import
Good first issueMod: FEMType: Feature

仓库指标

Star
 (30,913 star)
PR 合并指标
 (平均合并 24天 7小时) (30 天内合并 217 个 PR)

描述

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

贡献者指南