Cascade module does not import mass correctly?

32 views
Skip to first unread message

exoleap....@gmail.com

unread,
Mar 20, 2019, 5:04:23 PM3/20/19
to ProjectChrono
Hi
It is more difficult then expected to import a CAD assembly using the Cascade module. After having to deal with the names problem, I now found out that the mass of a sub assembly is not imported correctly.

In my CAD file each sub assembly has some mass. When creating the stp file from it and loading the stp file, the mass of each sub assembly still seems ok.
But when importing in chrono and reading the mass with ChBody::GetMass(), the mass of each sub assembly is way off. I can not find some logic int the difference.

Any idea if there is a bug here?



exoleap....@gmail.com

unread,
Mar 21, 2019, 4:35:13 AM3/21/19
to ProjectChrono
Okay. Big problem:
Found out that the mass is not copied from the stp file. It is recalculated. And you have to give the density yourself!
But for a sub assembly I can not do that. Because I do not know from which components it is build. That can be a lot. The reason I want to read in the stp file is to have an accurate representation of my machine. With correct masses and inertia etc.
So how do I get a ChBody defined with correct mass and inertia etc when it consists of several sub assemblies and/or sub parts in my stp file???
I have no idea how to deal with this.

Alessandro Tasora

unread,
Mar 21, 2019, 5:12:43 AM3/21/19
to projec...@googlegroups.com

Sorry but if I remember this is a limitation of STEP.
So I do not see other solution than just looking at the subassembly mass & inertia tensor in your Inventor CAD, write it down the numbers, and then apply those values to the corresponding ChBodyAuxRef by using SetMass() and SetInertiaXX() and SetInertiaXY().

Keep in mind: inertia must be expressed relative to subassembly reference. If COG is displaced, write down also the COG to reference displacement, as shown in your CAD mass property dialog, and use SetFrame_COG_to_REF()

Note: I do not know about Inventor, because I use Solidworks, but I think that most CAD has this feature of reading/computing subassembly mass,inertia, and COG position.

Alessandro

--
You received this message because you are subscribed to the Google Groups "ProjectChrono" group.
To unsubscribe from this group and stop receiving emails from it, send an email to projectchron...@googlegroups.com.
To post to this group, send email to projec...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

exoleap....@gmail.com

unread,
Mar 21, 2019, 6:40:26 AM3/21/19
to ProjectChrono
I looked at the physical info I can get from Inventor. I see off course the mass and COG. But concerning inertia I see much more. And I get confused here. See the two pictures showing the information I can get from each assembly or part.
What info do I need for the SetInertiaXX and SetInertiaXY? I would say the values Ixx and Ixy. But do I not need all the other values like Iyy, Ixz, Iyz, Izz, Principal Moments and Rotation to Principle ?
capturePhysics1.jpg
capturePhysics2.jpg

exoleap....@gmail.com

unread,
Mar 21, 2019, 4:43:34 PM3/21/19
to ProjectChrono
The Ixx and Ixy I need to set in Chrono are vectors! While in Inventor they are just float values. But in Inventor there are 4 additional Inertia values. So also a total of 6. I didn't realize that because of the same names.
I used a dummy part with different values of all 6 Inertias made in Inventor and imported in Chrono to see how these values map to the vectors. So this issue has been solved.

Radu Serban

unread,
Mar 21, 2019, 5:12:42 PM3/21/19
to projec...@googlegroups.com

These 2 vectors together define the 6x6 symmetric inertia matrix.  The Ixx vector contains the diagonal elements (the moments of inertia), while the Ixy vector contains the off-diagonal elements (the products of inertia).
Look at the documentation for ChBody::SetInertiaIxx and ChBody::SetInertiaIxy

--Radu

exoleap....@gmail.com

unread,
Mar 22, 2019, 3:27:50 AM3/22/19
to ProjectChrono
Ok, that makes sense (I assume you mean a 3x3 matrix). I checked and made sure I used the correct values from Inventor. Thx.


On Thursday, 21 March 2019 22:12:42 UTC+1, Radu Serban wrote:

These 2 vectors together define the 6x6 symmetric inertia matrix.  The Ixx vector contains the diagonal elements (the moments of inertia), while the Ixy vector contains the off-diagonal elements (the products of inertia).
Look at the documentation for ChBody::SetInertiaIxx and ChBody::SetInertiaIxy

--Radu

Reply all
Reply to author
Forward
0 new messages