Skip to main content
1-Visitor
December 17, 2020
Solved

Toggle driving dimension to driven programatically

  • December 17, 2020
  • 1 reply
  • 3807 views

I have the need to toggle some sketch dimensions to either driven or driving automatically based on a parameter. Can this be done in Creo? I am new to Creo so any responses would be greatly appreciated. I can easily do this in Inventor (which is what I normally use) so I would assume it could somehow be done in Creo.

Best answer by TomU

Yes, it makes sense.  No, you can't do it with Creo.  There is no ability from relations to control whether a dimension is 'reference' or 'strong'.  It might be possible from Toolkit, but that is expensive and most don't have it.

 

What I do in these situations is create the second dimension so it's controlling something else entirely, typically a point placed on an axis or construction line.  Using your example, if dimension_type = F_F, the "24" dimension will be used and the "24-27/32" will not.  If dimension_type = P_P then you use relations to take whatever value is entered for the "24-27/32" dimension and use that to set the 'real' "24" dimension.  (This is easy to calculate since it's just a triangle.)

 

To make it more user friendly, you can create an extra layer with layer rules to automatically add the unused dimension to it based on the current parameter value.  The end result will look and act like what you want, it just takes a little more effort to create the illusion.

1 reply

tbraxton
22-Sapphire II
22-Sapphire II
December 17, 2020

Driven dimensions are a specific annotation element in Creo and I am not sure based on your query if you are truly referring to a driven dimension. The reason I am bringing this up is that you refer to sketch dimensions, I am not aware of the ability to create a driven dimension in sketch mode in Creo.

 

 

Driven dimensions are used by Creo Parametric to measure the size and shape of features within a model. The value of a driven dimension changes when the size and shape of the features are modified. Driven dimensions can have tolerances, to which manufactured components can be accepted or rejected.

 

 

If you are wanting to change the value of sketch dimensions based on conditional logic then you can do that with relations. Relations can exist at the sketch, part, and assembly level.

See this help page for more information.

Conditional statements in relations 

 

If you elaborate on what you are trying to do you will probably get a more relevant response.

 

1-Visitor
January 21, 2021

Perhaps my verbiage was incorrect. I need to switch (2) dimensions either from reference to normal or normal to reference based on another parameter. See the attached picture. In my model I have a string parameter named dimension_type. If dimension_type = F_F then I want the 24" dimension to drive the sketch, if dimension_type = P_P then I want the 24 27/32" dimension to drive the sketch. Those (2) dimensions would be driven by a parameter named "outside_dim". Does all that make sense? Thanks!

TomU23-Emerald IVAnswer
23-Emerald IV
January 21, 2021

Yes, it makes sense.  No, you can't do it with Creo.  There is no ability from relations to control whether a dimension is 'reference' or 'strong'.  It might be possible from Toolkit, but that is expensive and most don't have it.

 

What I do in these situations is create the second dimension so it's controlling something else entirely, typically a point placed on an axis or construction line.  Using your example, if dimension_type = F_F, the "24" dimension will be used and the "24-27/32" will not.  If dimension_type = P_P then you use relations to take whatever value is entered for the "24-27/32" dimension and use that to set the 'real' "24" dimension.  (This is easy to calculate since it's just a triangle.)

 

To make it more user friendly, you can create an extra layer with layer rules to automatically add the unused dimension to it based on the current parameter value.  The end result will look and act like what you want, it just takes a little more effort to create the illusion.