cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Community Tip - Need help navigating or using the PTC Community? Contact the community team. X

Creo Mass Properties for Windchill Metadata or exporting to Excel?

lhoogeveen
17-Peridot

Creo Mass Properties for Windchill Metadata or exporting to Excel?

It seems like Creo/Windchill would give a method for exposing mass properties or assigned Creo materials as more companies are trying to do tractability or sustainability calculations on the products they design. We'd like to have that info in Windchill as metadata for every part and I'd like to be able to grab it easily for every component in any assembly (ideally into an Excel BOM).

I'm running into several headaches trying to extract the material info that I was wondering if anyone had a better idea or setup for any of or all of these:

  • To use the material or weights in the Windchill BOM export tools to Excel, all parameters need to be Designated to Windchill. The desired parameters are not always designated in our CAD models.
  • The Creo BOM Export can be customized for give an exported BOM with material, part volume, and weights but I run into this problem:
    • I added the hidden PTC_MATERIAL_NAME as a parameter to our start parts last Fall but we have decades or parts without that assigned material exposed. Is there way to expose the assigned material without having this turned on? I don't understand why this is hidden in the first place.
    • Our part Volume and estimated weight parameters are driven by model tree analysis features with relations. Sometimes they're suppressed and/or not at the bottom of the tree (not calculating the full weight of the part). Our new start parts have these features in the Model Tree Footer to minimize this issue but that has only been around since last Fall. The only relations were hard coded to a specific unit system so switching unit systems calculates the wrong weight. The latest start part relations get around this by using units.

                    model tree part_weight.jpg

  • I don't understand enough about the Mass Properties work to know if this would be a solution. Does it go through and recalculate the mass properties for the lower level parts? This would only give me the level weight and I need the info for every component.

mass_props.jpgmass_props_1.jpg

Related, I don't know the difference between these mass property parameters... Alternate vs Reported Mass Properties.mass_props_2.jpg

Is there a simpler method? Trying to make sure everything is perfect to our latest standard in every single CAD model seems like quite the effort.


This thread is inactive and closed by the PTC Community Management Team. If you would like to provide a reply and re-open this thread, please notify the moderator and reference the thread. You may also use "Start a topic" button to ask a new question. Please be sure to include what version of the PTC product you are using so another community member knowledgeable about your version may be able to assist.
5 REPLIES 5
Chris3
20-Turquoise
(To:lhoogeveen)

You can look into using the config option below in combination with your second screen shot:


mp_calc_level all_models

Unfortunately though it has several issues. If a part has no geometry, it is just left out of the report. Also it doesn't report out the part level so it is hard to re-assemble the data back into a hierarchical format. Lastly I think if the mass information has been manually typed in and was typed in such that the moments of inertia don't follow physics then it just leaves it out of the report.

Personally I would not recommend adding analysis features / relations into the start parts. If you get into large assemblies this will be a significant performance hit.

You might want to consider voting on this:

Create a report for mass and CG of all components in subassemblies

lhoogeveen
17-Peridot
(To:Chris3)

We generally don't deal with huge assemblies. I could see how the mp_calc_level all_models could definitely slow down performance versus the default setting... I doubt we'd turn that on except temporarily to run a mapkey to figure out mass properties for an assembly if needed.

CHRISTOPHER REES It looks like you had quite the discussion earlier about trying to figure out basically how to do the same thing minus exporting the name of the assigned material and any kind of desire to get this info into Windchill. I'm confused about what you mean by it doesn't report out the part level... you can save the mass properties file as a txt file instead of the m_p format. This seems to give all the info displayed inside of Creo into the text file including part levels. Now if only I could get it to dump the assigned material also, choose the format to display on the fly (top level properties vs every part, choose to display the assigned units vs choose my own units/use the units of the current assembly, remove all the info i don't want, include other part parameters, etc.) and be able to export it to Excel with the values all separated. This all seems pretty easy for PTC to do but hard for us to do. Without including the assigned material in this export, it's pretty worthless for what I'm trying to do (sustainability calculations with percentages of each type of material, find which parts go to which type of suppliers, etc.). Here's a screenshot of creating a text file just make sure you add the .txt when saving.


mass_props_3.jpg


I've been playing around with the custom format for the Creo BOM tool and I can get a dump that looks super close to what I think we both want. It gives both a flat summary of the assembly as well as a BOM with levels and I'm able to exact our other standard parameters such as description. The problem is that this method requires every part to have parameters for the hidden PTC_MATERIAL_NAME material and the desired mass properties. You have the make sure the mass properties are perfect inside every part which is a problem with a Windchill controlled environment where I can't change every component. I'd probably want to add other things like surface area, density, etc. as needed.


mass_props_4.jpg

Chris3
20-Turquoise
(To:lhoogeveen)

The report does not give you the part level. Below is an example of what the report gives you. There is nothing to tell you how deep into an assembly that component is. There is no way for you to know if it reports to the top level or is buried in 7 sub-assemblies. Also mp_calc_level all_models does not slow anything down. It is very quick even for very large assemblies. Adding analysis features to every component will significantly slow things down because they will be recalculated every regen. If that is what you want, you could simply set mass_property_calculate to be automatic or check_upon_save.

This is how others do it. Check out this thread:

Mass Properties on ALL parts


The way I currently do this is a combination of pulling the parameters (including the material) out of the parts and then combining it with the mp_calc_level all_models report. I do it with with some VB that generates a custom mapkey for the assembly I want and then dumps the data into Excel.

---------------------------------------------

MASS PROPERTIES OF THE PART 1_INCH_CUBE

VOLUME =  1.0000000e+00  INCH^3

SURFACE AREA =  6.0000000e+00  INCH^2

DENSITY =  0.0000000e+00 POUND / INCH^3

MASS =  0.0000000e+00 POUND

CENTER OF GRAVITY with respect to _1_INCH_CUBE coordinate frame:

X   Y   Z     0.0000000e+00  0.0000000e+00  0.0000000e+00  INCH

INERTIA at CENTER OF GRAVITY with respect to _1_INCH_CUBE coordinate frame:  (POUND * INCH^2)

INERTIA TENSOR:

Ixx Ixy Ixz  0.0000000e+00  0.0000000e+00  0.0000000e+00

Iyx Iyy Iyz  0.0000000e+00  0.0000000e+00  0.0000000e+00

Izx Izy Izz  0.0000000e+00  0.0000000e+00  0.0000000e+00

PRINCIPAL MOMENTS OF INERTIA:  (POUND * INCH^2)

I1  I2  I3   0.0000000e+00  0.0000000e+00  0.0000000e+00

CENTER OF GRAVITY with respect to _VCBCVNBVCN coordinate frame:

X   Y   Z     1.6000000e+00  5.0000000e-01 -5.0000000e-01  INCH

INERTIA at CENTER OF GRAVITY with respect to _VCBCVNBVCN coordinate frame:  (POUND * INCH^2)

INERTIA TENSOR:

Ixx Ixy Ixz  0.0000000e+00  0.0000000e+00  0.0000000e+00

Iyx Iyy Iyz  0.0000000e+00  0.0000000e+00  0.0000000e+00

Izx Izy Izz  0.0000000e+00  0.0000000e+00  0.0000000e+00

PRINCIPAL MOMENTS OF INERTIA:  (POUND * INCH^2)

I1  I2  I3   0.0000000e+00  0.0000000e+00  0.0000000e+00

lhoogeveen
17-Peridot
(To:Chris3)

I think I've found a way to expose the correct mass into my custom Creo BOM export if I force a unit system change to all lower components and use the mass_property_calculate config to regenerate the mass properties in the desired unit system. I'm left just finding a way to expose all the assigned materials/PTC_MATERIAL_NAME for all the parts that don't have that parameter already created.

So you're going through part by part to get Creo to expose the assigned material information or any other desired information with a recursive mapkey created via VB? Are you changing the parts to the desired unit system then at the same time (we have multiple unit systems)? In a Windchill controlled environment, you'd end up creating lots of locally modified objects (unless your intent was to make these changes permanent). Cool roundabout solution to fix what should be out of the box functionality. Could you share an example of doing that with a snippet of the VB code used to make the recursive mapkey?

Chris3
20-Turquoise
(To:lhoogeveen)

What I do is have a mapkey that opens up a drawing that has a repeat region on it. The user is prompted to pick an assembly. After the assembly has been picked the repeat region fills with all of the parameters for all of the components. From there, I export the repeat region to a text file. Then the assembly is opened up and file-> prepare -> model properties -> is performed with mp_calc_level all_models turned on.

Now I have to incomplete sets of data. One (repeat region) has all the parameters I need (Material, Description, State, etc.) and the other has the mass properties I need (Mass, Density, CG location). I then merge the two together and within my script I convert the units if different.

A perhaps easier way to do this is with one of the APIs, but the APIs require every system to be configured for them to be used and that is not something I have the luxury of controlling within my company.

My script is not something I can share and even if I could it could not be boiled down to just a "snippet" to make it easy enough to follow. It is several pages long.

Top Tags