Rigid body constraint

About the development of the FEM module/workbench.

Moderator: bernd

User avatar
NewJoker
Veteran
Posts: 3018
Joined: Sun Oct 11, 2020 7:49 pm

Rigid body constraint

Post by NewJoker »

Hi,

I've noticed that rigid body constraint is not yet implemented in FreeCAD. It's a very common and useful CalculiX feature that has 3 main applications:
- defining rigid bodies - if part of the model is very stiff when compared with the rest of the structure, usually we model it as rigid to speed up the analysis significantly
- applying torque or boundary conditions on rotational DOFs - currently the only way to simulate torsion in FreeCAD is to use the transform constraint but it's limited to cylindrical faces so you can't analyze torsion of rectangular or elliptical bar for instance
- defining remote loads - for example you could define a force acting at a distance from the surface to which it's applied (eccentric load, quite common)

The keyword syntax for this feature is:

Code: Select all

*RIGID BODY, NSET=..., REF NODE=... ROT NODE=...
Node set object shouldn't be a problem - it's used for boundary conditions too and the possibility to pick part of the model for the definition of rigid body constraint should be already implemented. The user must be able to pick faces or volumes so that all applications of this constraint can be realized.

The problem is that new a object will have to be introduced - a reference point. It's an arbitrary point selected by the user. Loads (force/torque) and boundary conditions (displacement/rotation) can be applied to it, so their codes may require some changes too. Reference point can be defined using *NODE keyword and given coordinates. Apart from REF NODE there's also ROT NODE that has to be specified but they can share the same coordinates.

What do you think about the potential implementation of this feature ? Are you interested in participating in its development ? I won't be able to do it alone but with your help it should be possible.
User avatar
Pauvres_honteux
Posts: 728
Joined: Sun Feb 16, 2014 12:05 am
Location: Far side of the moon

Re: Rigid body constraint

Post by Pauvres_honteux »

Would your "Rigid Body Constraint" by any chance be in the same ballpark as #4617 Virtual elements ?
User avatar
NewJoker
Veteran
Posts: 3018
Joined: Sun Oct 11, 2020 7:49 pm

Re: Rigid body constraint

Post by NewJoker »

In terms of definition they are similar - there’s a set of surface nodes and one reference point. But the way they are coupled differs. Virtual elements that you described in that other thread seem to be equivalent to RBE2 and RBE3 elements in Nastran which in turn are equivalent to kinematic and distributed coupling constraints available in CalculiX. Those would also be useful in FreeCAD FEM module but I’d rather start from more general purpose feature - rigid body constraint.
User avatar
Pauvres_honteux
Posts: 728
Joined: Sun Feb 16, 2014 12:05 am
Location: Far side of the moon

Re: Rigid body constraint

Post by Pauvres_honteux »

NewJoker wrote: Sat Aug 07, 2021 8:51 am Virtual elements ... seem to be equivalent to ... kinematic and distributed coupling constraints available in CalculiX.
So they do exist after all?
Then it would "just" be a matter of making an easy to use UI for user input?

Hmm, wonder how you do that?
User avatar
NewJoker
Veteran
Posts: 3018
Joined: Sun Oct 11, 2020 7:49 pm

Re: Rigid body constraint

Post by NewJoker »

I haven't used coupling constraints in CalculiX yet but they definitely are available and work fine. Their keyword definitions are very different than that of a rigid body though (since couplings are in fact a special type of element). Instead of them, I've used rigid body constraints many times since they are very useful and versatile.

When it comes to the implementation of rigid body constraint, for the input file we just need this one *RIGID BODY keyword and two additional nodes to serve as REF NODE and ROT NODE. From a user's point of view, we need a possibility to select a region (face or volume) and specify coordinates of a reference point (RP). It would be nice to display this constraint on the model somehow or at least show the RP. But it must be also possible to apply loads and boundary conditions to the RP and torque loads have to be added. Maybe instead of editing the existing boundary condition and load features, we could implement this all into one menu for a rigid body constraint definition. In fact, that's how it's done in SolidWorks for example. In such a case the menu would have to look something like this:
rb gui.png
rb gui.png (77.42 KiB) Viewed 4576 times
User avatar
bernd
Veteran
Posts: 12849
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland
Contact:

Re: Rigid body constraint

Post by bernd »

Are the point force and fixed contrains usal constraints? If yes I would prefere to use the normal contraint objects we have. I do not see any advantage in having all on one task panel.

The implementation would be faster and easier if the existing objects would be used and we just implement the rigid body.

But if you go for it and would like to integrate all in one TP go ahead with this one too.
User avatar
bernd
Veteran
Posts: 12849
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland
Contact:

Re: Rigid body constraint

Post by bernd »

the ref point koordinates would not be koordinates IMHO, but again a reference to a geometric object, in this case a vertex. The reference widgets do exist and thus no need to implenent them.
User avatar
bernd
Veteran
Posts: 12849
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland
Contact:

Re: Rigid body constraint

Post by bernd »

interessting way to start with the Gui.

I usually start with the object and the attributes I need to define in the new object. In FreeCAD all properties can be edited in the property editor. Afterwards the writer and the unit test. Than the new object works.

The task panel is very last done. A task panel just makes the work flow very much simpler for the user to edit the object properties.
User avatar
NewJoker
Veteran
Posts: 3018
Joined: Sun Oct 11, 2020 7:49 pm

Re: Rigid body constraint

Post by NewJoker »

Those are the same boundary condition and load definitions (when it comes to the input file syntax) as the currently implemented ones but the problem is that FreeCAD’s force constraint can’t be utilized to apply torque (apart from using transform constraint but it won’t help here). And I wasn’t sure if it would be possible to make this reference point a selectable object.

Reference points are usually placed in one of those 3 locations:
- in the middle of a surface
- in the center of gravity
- at a distance from part (independent point)

If it’s possible to create such a point (including an option for arbitrary offset from a face in any direction) then it will indeed be much better to use a geometric object.
User avatar
Pauvres_honteux
Posts: 728
Joined: Sun Feb 16, 2014 12:05 am
Location: Far side of the moon

Re: Rigid body constraint

Post by Pauvres_honteux »

bernd wrote: Wed Aug 11, 2021 10:36 am The ref point ... a reference to a geometric object, in this case a vertex.
+1
Post Reply