Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations GregLocock on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

Difference between weight calculation formulas? 1

Status
Not open for further replies.

oxana

Mechanical
Jan 16, 2002
23
Hi there,

Does anyone know what is the difference between 2 of the following relations?

Part_Weight=MP_Mass("") and
Part_Weight=Mass:FID_XXX

It seems that they work interchangeably (when they do work; Pro/E 2001 has a bug in weight regeneration, so sometimes neither one works).

Thanks,
Oxana
 
Replies continue below

Recommended for you

Oxana,

Both relations do the same thing. The first one uses a system parameter <mp_mass(&quot;&quot;)> and the other one is the result of a analysis feature. In that case, &quot;mass&quot; is a user parameter for the weight calculated in the analysis XXX.

BUT... the second method will create a feature in your part. At this time, if you evaluate the expression mass:fid_XXX, the return value will be, let's say 10.5, no matter in what units. If after this feature, for example, you add a protusion, and then you revaluate the expresion mass:fid_XXX, the result will not be changed! Still 10.5. The solution to obtain the correct result is to put the analysis feature XXX the LAST FEATURE!

The first method will give you the correct result after regeneration.

There is no bug in mass calculation.

The only headache are the family tables, but there is a workaround to obtain the correct mass for each instance.

:) -Hora.
 
Hora,

One thing you forgot to mention is that you should put the following text in the Pro/PROGRAM as below (to automatically update the mass every time you regenerate):

(before)
MASSPROP
END MASSPROP

(after)
MASSPROP
PART NAMEOFPART
END MASSPROP


Make sure to enter the current part name with the &quot;.prt&quot; extension.


Steve
 
You're right Steve. For the first method only.

-Hora.
 
I really appreciate your feedback, but the whole issue is still not very clear for me. First of all, I was always creating Analysis feature in both cases. Did you mean, Hora, it is not necessary in the first method? But the regeneration would not happen without the Analysis feature at all. It does not work right away even with it (only after opening and closing relations window – PTC confirmed that it is a known bug).

Steve, I created a simple cube (protrusion) to experiment with. The Pro/Program has a statement at the very end:

MASSPROP
END MASSPROP

What did you mean by “before” and “after”? And do I have to enter “PART NAMEOFPART” even if I am on the part level?

Thank you for your help again,

Oxana
 
Oxana,

Let's start a new part (your cube) and let's call it CUBE.PRT.
DO NOT PERFORM ANY MASS CALCULATION.

If you go to PRO/Program, at the end of the file, are the following statements:

MASSPROP
END MASSPROP

Steve said you must put the name of the part between the two statements:

MASSPROP
PART CUBE.PRT
END MASSPROP

Now, go to relations and add the following statement:

part_weight = mp_mass(&quot;&quot;)

Now, go to RELATIONS->EVALUATE->in the input window type: part_weight

SURPRISE! The resutlt is 0! Now regenerate once again. Evaluate your variable &quot;part_weight&quot; and you will obtain the good value. You ask yourself what happened?

As you can see, if you open the PRO/PROGRAM, you will see that your relation part_weight=mp_mass(&quot;&quot;) is almost at the begining of the file. The program will pass the value of the mp_mass(&quot;&quot;) to your variable mass_weight. At this moment, the value of mp_mass is 0, because no mass calculation were done. When the program find s the following statements:

MASSPROP
PART CUBE.PRT
END MASSPROP

will perform a mass calculation, and the mp_mass(&quot;&quot;) will hold the good value. But it cannot pass the value to your variable part_weigth until you regenerate once again the part.

Only after a second regeneration of the part your variable part_weght will keep the good value.

Now, if you change one dimension of the cube and you evaluate the &quot;part_weight&quot; the system will return the same value for mass. Regenerate once again and you'll have the right value.

Personal, I'm not considering this a bug. Somehow, it is logic. But this not means that PTC must let the things like this.

For the second method, if the analysis feature is the last feature, if you evaluate the following expression: mass:fid_analysis1, the result is correct.

But... If you want to pass the value to your variable, let's call it part_mass2, then you must write the following relation: part_mass2=mass:fid_analysis1. And you'll have the same problem like in the first case. You'll need a second regenaration to update the parameter part_mass2.

What to do? In part mode you can force the sistem to make a mass calculation and to print the results, or simply evaluate mass:fid_analysis1.

For drawings, instead of writing the note &part_mass2, you must write &mass:fid_analysis1, you will have the good result only with one regeneration.

Using this method you don't need to modify in any way PRO/PROGRAM, because the system will calculate the mass every time regenerates the analysis1 feature.

Hope I was able to clarify you.

-Hora.
 
Thank you very much Hora,

You did shed a lot of light on this for me. Before I was not evaluating the variable the way you explained; I was checking only Part Weight parameter either in a Model tree or in a list of parameters. And in those places regeneration does not happen properly; that I would consider a bug, since you should not be manually evaluating your variables (we use automatic transfer of data from Pro/E into other programs). But at least I can use your method for now. Thank you again.

Oxana
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor