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!

Advanced Pattern Relations with 2 dimensions (not directions)

Status
Not open for further replies.

drewbixcubed

Industrial
Oct 25, 2006
6
Hi everyone. I am new here, and I am hoping to tap into some of your expertice when it comes to advanced patterm relations. I will do my best to explain, but I feel this is a VERY intricate question.

Based off of this example:
If I want to create a similar hole pattern, but instead of a simple "memb_1=idx1*3" relation, I want to do the following:

1. Make the hole diameters in the pattern get bigger, let's say 25% larger each hole. This would be a pattern dimension in the first direction.

2. Pattern the distance between the holes based off of the previous hole's diameter. Let's say the incremental distance equals 50% of the previous hole's diamter. This would also be a pattern dimension in the first direction.

So, for example, the first hole has an OD=1" @ X1,Y0; the next hole would be OD=1.25" @ X1.5,Y0; the next OD=1.5625" @ X2.125,Y0; etc...

How would you use the relations to control the distance of separation based on the previous hole's diamter?
 
Replies continue below

Recommended for you

Drewbixcubed,

This is a very intricate question and I'm always up for a challenge. Usually people start off with easy relation patterns but it's good to actually spend time learning the powerful patterns available with Pro/E.

Note I renamed the d# dimension parameter name for the original hole to DIA if you choose not to do so just change all occurrances of DIA to the original holes d# use info>switch dims while editing feature or use Feature Info to figure this out.

For your DIA or diameter dimension relation
/*
memb_v = DIA*(1.25)^(idx1)

Since idx1 starts at zero, and anything to the zero power will equal 1 the first holes Diameter will be as you enter it in Pro/E.

The 2nd hole will be 1.25*DIA
The 3rd hole will be 1.25*(1.25*DIA)etc.

For your X dimension relation
/*

if idx1==0
memb_i=0
else
memb_i=.50*DIA*(1.25)^(idx1-1)
endif


Since the increment for the first instance or hole is 0 I used an if else statement for this. The .5* and the (idx1-1) are used to make the 2nd holes x distance equal half the diameter of the first hole.

Hole4 OD=1.953125 @ X2.90625,Y0

The == operator is used to test if something is equal to
The = operator is used to actually set a value equal to an expresion

Hope you can use this help to develop some useful patterns or learn a little more about them Pro/E.

Michael
[infinity]
 
Thank you VERY much Michael. I racked my brain trying to figure this out all day yesterday! I was stuck on how to work the dynamic diameter into the X dimension. Glad to know I can ask the tough questions (at least for me) somewhere!!

Thanks again~
 
I replaced the if else statement I originally gave you above with a simpler if statement.

For your X dimension relation
/*
memb_i = 0
if idx1 > 0
memb_i = .5*DIA*(1.25)^(idx1-1)
endif


Michael
[spineyes]
 
If I wanted to make these parametric, I could make a parameter for the % increase of the hole diameter (hold_dia_increase).

Would the equations then be?

Diameter equation:
memb_v = DIA*(hold_dia_increase)^(idx1)

Distance equation:
memb_i = 0
if idx1 > 0
memb_i = .5*DIA*(hold_dia_increase)^(idx1-1)
endif
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor