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

Community Tip - Did you get called away in the middle of writing a post? Don't worry you can find your unfinished post later in the Drafts section of your profile page. X

Feature Parameters in Repeat Region (BOM Table)

TomU
23-Emerald IV

Feature Parameters in Repeat Region (BOM Table)

David,

Here are my thoughts on your questions.

How to you tell the repeat region that the parameter exist?
By adding a parameter to the repeat region with the same name.

I can manually add the parameter to the local parameter section. Is that enough?
Possibly. If every assembly member contains this parameter, then yes. If not, or you're not sure, then you're better off encapsulating your logic in a "IF EXISTS" statement. This way if the parameter doesn't exist for the model on the current row of the repeat region, the relations won't try to evaluate that section of the code. The entire repeat region relations is executed once for each row in the repeat region table. If the relations fail part way through evaluation for a particular row, they will not finish their remaining sections - for that specific row. One row's failures won't prevent the relations in another row from evaluating, but it will prevent portions of that same row's logic from completing.

IF EXISTS( "ASM_MBR_NEW_PARAMETER")
TOM1 = "YES"
ELSE
TOM1 = "NO"
ENDIF

I want to call out the asm member feature level parameter based on the feature name not the id number. I want this to work for any part.
I am trying to remember if you can even do this. I know you can in a note if you include the session ID of the object, but I think it's trickier to get to feature level parameters in a repeat region. (I think I've done it in the past, but I will need to do some digging to remember how.) I think I would instead approach this differently. Have the mass properties feature in your model set a top level (model level parameter) instead of a feature level parameter. This will make it easier to see in the tree (you wouldn't need to expand each model to the feature level) and easier to add to the repeat region.

I created a parameter at the part level named BOM_MASS_UNITS. I also added this parameter to the assembly so I could show it in the model tree.
You do not need a parameter to exist in every model, or even in the top level assembly to add it to the model tree. You can manually add any parameter to the model tree regardless of whether or not it exists or not by simply typing it in. Just make sure you set the type correctly (feature parameter / model parameter / etc.)

[cid:image005.jpg@01CDAD07.02BF9A20] [cid:image006.jpg@01CDAD07.02BF9A20] [cid:image008.jpg@01CDAD07.02BF9A20] [cid:image010.jpg@01CDAD07.02BF9A20]
(These pictures show "Feat Params", but for my relations test above I changed it to "Model Params" to selectively create a new parameter in a few of the parts.

new_weight=asm_mbr_mass_lbm:FID_MP[.2]
You cannot use the [.x] syntax in relations. This can only be used in a table cell, note, or annotation.

Something else to consider is whether or not you really need a standalone feature to calculate the mass. By simply adding the name of the part (or assembly) at the bottom of the Program statement (Tools/Program), Pro/e will automatically calculate the mass properties every time the model is regenerated and update the respective mass properties parameters. The Program statement would look like this:

Part
MASSPROP
PART T1235000_04_03
END MASSPROP

Assembly
MASSPROP
ASSEMBLY T1235000_04
END MASSPROP

I do have a routine to output the weight (mass) of a part in a fixed units regardless of what units the part is actually in, and it stays correct even if the model's units are changed. Let me locate it and send it to you.

Tom Uminn
Engineering Systems Analyst
trans-matic Mfg.
616-820-2499
-<">mailto:->



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.
1 REPLY 1
TomU
23-Emerald IV
(To:TomU)

Here is my technique for calculating the weight of a model in a fixed unit system regardless of the model’s unit system.


1. Put the model in Pro/e default units (Inch/LB/Sec).


2. Create a new conversion factor parameter with its units set to “lbm”. For example, “ONE_LBM”.


3. Create a new calculated mass parameter with NO UNITS. For example, “MASS_LBM”.


4. Verify relations to finish parameter creation. This locks the units (or lack thereof) for each parameter.


5. Set the conversion parameter equal to a fixed value, regardless of future changes to the part’s unit system. This is the key to the magic.

ONE_LBM = 1[lbm]


6. Now, use this conversion factor and the model’s reported mass properties to calculate the mass in lbs.

MASS_LBM = PRO_MP_MASS/ONE_LBM



7. (Optional) Compare the value of the conversion parameter to known values to determine what units the model’s is using.

If you decide to do this, place these relations in the “Post Regeneration” section of model relations otherwise you will need a double regen anytime the model’s unit system is changed.

IF FLOOR(ONE_LBM,5) == 1.00000

MASS_UNITS = "LBM"

ENDIF

IF FLOOR(ONE_LBM,5) == 0.03108

MASS_UNITS = "SLUG"

ENDIF

IF FLOOR(ONE_LBM,5) == 453.59237

MASS_UNITS = "GRAMS"

ENDIF

IF FLOOR(ONE_LBM,5) == 0.00259

MASS_ UNITS = "LBF"

ENDIF

IF FLOOR(ONE_LBM,5) == 0.45359

MASS_ UNITS = "KG"

ENDIF

IF FLOOR(ONE_LBM,5) == 0.00045

MASS_UNITS = "KG"

ENDIF

Tom Uminn
Engineering Systems Analyst
trans-matic Mfg.
616-820-2499
-<">mailto:->


Top Tags