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

Intermittent Relations Failure

dgschaefer
21-Topaz II

Intermittent Relations Failure

WF4, M080



I have a family table driven extrusion part. The length is driven by
this relation:



IF "ABC123" == REL_MODEL_NAME

CUT_LENGTH = CHAMFER_LENGTH

ELSE

CUT_LENGTH = CALCULATED_CUT_LENGTH

ENDIF



"CALCULATED_CUT_LENGTH" is a reference dimension in a sketch that
changes for each instance, although it is not in the table itself.



There are 3 parts in the table, and they are all in a common assembly.
One of the parts, however, regularly will come up the wrong length, and
it's not ABC123. A regeneration of the assembly always fixes it,
however it's disconcerting to see the assembly wrong and frustrating to
explain to my client that they have to regen the assy to fix it.



Any idea what's happening here and how to fix it?



Doug Schaefer

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.
--
Doug Schaefer | Experienced Mechanical Design Engineer
LinkedIn
5 REPLIES 5

It’s a programming order of operations thing. Features will update prior to variables in relations, therefore when a value is passed from a sketch to a variable, that value is sitting there ready to go but the feature which is driven by it won’t get the new value until a second regeneration. I don’t believe there’s a way to make proE regenerate until all variables have been updated and passed, probably a good thing cause it could very well lead to getting stuck in a loop. ProE will however generate a message in the dashboard saying that ‘Some relations are no longer satisfied’, see attached screenie.

Would the dashboard Traffic Light in the lower right corner of the Pro-E screen be yellow as well?

Specific to your example - Have you tried making the relation that calculates XCOG a post regeneration relation?


I have made a parametric COG. Initially I used a mass property feature, a datum point, and a bunch of relations. The process was long and tedious and also completely unnecessary if you have the behavioural modelling extension, as you then have access to all the variables in the mass property feature.


However! I later realized that proE has system variables for the COG namely, pro_mp_cogx, pro_mp_cogy, and pro_mp_cogz. So adding a parametric datum point is super easy and does not require multiple regens to pass variables.


Just make a datum point, call the three offset values (offset from the coordinate system), x_offset, y_offset, and z_offset. Then in relations:


$x_offset = pro_mp_cogx


$y_offset = pro_mp_cogy


$z_offset = pro_mp_cogz


That’s it, the $ sign is to make the offsets signed variables.




In Reply to Michael Mongilio:


Specific to your example - Have you tried making the relation that calculates XCOG a post regeneration relation?


Doug,

Is the feature having CUT_LENGTH as a dimension, before or after, the sketch containing the ref dim CALCULATED_CUT_LENGTH.

If the answer is "after", then you can make these relations "feature based" instead of part based.

Here's How:

Open the part relations select the relations noted in your post. Hit <ctrl-c>.

At the top of the relations dialog is a pulldown that most likely says "part" change that to feature, and use the selector to choose the feature containing the CUT_LENGTH dim. Paste the relations there.

Go back to the part relations and delete the now redundant relations.

The regeneration order will now be...



  • CALCULATED_CUT_LENGTH starts out with the value from the generic model.


  • Part relations are evaluated. Minus the ones moved to the feature.

  • Regeneration continues untill the sketcher refdim CALCULATED_CUT_LENGTH is evaluated based on tabulations.

  • Eventually regeneration of the feature containing CUT_LENGTH occures and the feature's relations kick in causing CUT_LENGTH to be set as desired.

If the answer was "before", Try to reorder the sketch to be before the feature with CUT_LENGTH. and do the above steps.


Attached; pic of simplified example use of feature based relations.


(rewritten for clarity)

Announcements
NEW Creo+ Topics: Real-time Collaboration


Top Tags