Continue to Site

Welcome to MCAD Central

Join our MCAD Central community forums, the largest resource for MCAD (Mechanical Computer-Aided Design) professionals, including files, forums, jobs, articles, calendar, and more.

Advanced Pattern Relations

dreweb

New member
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: h<wbr>ttp://www.<wbr>ptc.com/cs<wbr>/cs_26/how<wbr>to/cpf869/<wbr>cpf869.htm

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?
 
I received this response to my question on another forum. I thought it would be helpful to post it here also. Thanks again Michael!!

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.<br style="font-style: italic;"><br style="font-style: italic;">For your DIA or diameter dimension relation<br style="font-style: italic;">/*<br style="font-style: italic;">memb_v = DIA*(1.25)^(idx1)<br style="font-style: italic;"><br style="font-style: italic;">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.<br style="font-style: italic;"><br style="font-style: italic;">The 2nd hole will be 1.25*DIA<br style="font-style: italic;">The 3rd hole will be 1.25*(1.25*DIA)etc.<br style="font-style: italic;"><br style="font-style: italic;">For your X dimension relation<br style="font-style: italic;">/*<br style="font-style: italic;">
if idx1==0
memb_i=0
else
memb_i=.50*DIA*(1.25)^(idx1-1)
endif
<br style="font-style: italic;"><br style="font-style: italic;">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.<br style="font-style: italic;"><br style="font-style: italic;">Hole4 OD=1.953125 @ X2.90625,Y0<br style="font-style: italic;"><br style="font-style: italic;">The == operator is used to test if something is equal to<br style="font-style: italic;">The = operator is used to actually set a value equal to an expresion
 
Dreweb,

Thanks for posting my original response from eng-tips.

I replaced the if else statement I originally gave you 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


I will update my post on Eng-Tips as well.



Michael

smiley4.gif




Edited by: mjcole_ptc
 
Thanks, Michael


It's a nice solution...
smiley32.gif
smiley32.gif
smiley32.gif



2 dreweb
Can you givethe link toanother ProE forum where you haveposted the same question?
 

Sponsor

Articles From 3DCAD World

Back
Top