Creating Hole Patterns Around the Edge of a Plate-The Smart Way
(continued from page 3)
Redefining the Pattern
8. Before you can proceed with redefining the pattern, you need to note a few dimension parameters from the model:
- Driving dimension for the curve offset (d34 in the following relation)
- Actual length dimension of the first datum point (d38 in the following relation)
- Number of instances for the pattern (p45 in the following relation)
- OD of the hole (d39 in the following relation)
For clarity (especially when dealing with lots of dimensions), it's a good idea to change the dimension parameter name. In part mode, select Modify, DimCosmetics, Symbol. In this case, you could rename d38 "dim_initial_point" and d39 "dim_bolt_thread_dia". This makes the relations longer but more understandable.
9. Now you can redefine the pattern relation and insert the final relations. Turn the datum points on and modify any point (e.g., 1000 LEN) in the pattern.
10. When you select the 1000 value, a Modify menu will appear. Select Edit and the relations you typed previously appear. Delete them and start with a blank sheet. Enter:
c1=length:FID_CURVE1
c2=length:FID_CURVE2
11. Here you are retrieving the curve lengths by using the length parameter created in each datum analysis feature. Follow by specifying the distance to the first datum point on the curve:
d38=corner_hole_offset-holes_offset
12. Next, calculate the number of holes per side as well as the distance between holes per side. The relation function "ceil" you utilize here returns the closest integer value above the input rational value (e.g., 13.1 would equate to 14).
/* number of holes on the initial/third side = length minus corner gaps / 10 times the bolt dia
n1=ceil((c1-2*d38)/(10*d39))
/* distance between bolts =
length minus corner gaps / number of bolts
dist1=(c1-2*d38)/n1
/* number of holes on the second/last sides =
length minus corner gaps / 10 times the bolt dia
n2=ceil((c2-2*d38)/(10*d39))
/* distance between bolts =
length minus corner gaps / number of bolts
dist2=(c2-2*d38)/n2
14. Calculate the total number of instances. Note that the number of holes per side is n1+1 and n2+1, where n1 and n2 are the number of segments between the holes.
p45=2*(n1+1)+2*(n2+1)
15. Now that you have calculated all of the necessary parameters, write the relations that will drive the pattern.
/* starting default gap (side that has the first point in the pattern on it)
memb_i=dist1
/* for holes on second side
if idx1>n1+1
memb_i=dist2
endif
/* for holes on third side
if idx1>n1+n2+2
memb_i=dist1
endif
/* for holes on final side
if idx1>n1+n2+n1+3
memb_i=dist2
endif
/* corner holes, gap is different
if idx1==n1+1 | idx1==n1+n2+2 | n1+n2+n1+3
memb_i=2*d38
endif
16. When you exit the relation editor menu and regenerate the model, the pattern is done. Now you can modify the size of the plate at will. The pattern will follow along and modify the number of holes and spacing between them.
17. While the plate size and hole offset will probably be changed to a nice round number for manufacturing, a pattern like this is very helpful in the initial design stages. When the final gaps (for example, 100, 80, and 30 for the corners) are set, comment out the old gap lines and add new relations as shown below. This saves the old relations so if the plate changes again you don't have to waste much energy trying to remember something from a past age.
/* starting default gap (side that has the first point in the pattern on it)
/* memb_i=dist1
memb_I=100
/* for holes on second side
if idx1>n1+1
/* memb_i=dist2
memb_i=80
endif
/* for holes on third side
if idx1>n1+n2+2
/* memb_i=dist1
memb_I=100
endif
/* for holes on final side
if idx1>n1+n2+n1+3
/* memb_i=dist2
memb_i=80
endif
/* corner holes, gap is different
if idx1==n1+1 | idx1==n1+n2+2 | n1+n2+n1+3
/* memb_i=2*d38
memb_i=2*30
endif
Summing Up
The only real issue with a relation-driven pattern like this is that you usually have to regenerate twice to get the model to show that something has changed. This manifests itself in two ways:
- If you increase the size of the plate, it will keep the old number of instances. If you check the number of instances calculated, it is always correct but the number of holes shown is from the previous pattern. You need to regenerate the model again to get the correct number of holes displayed.
- If you decrease the size of the plate, the number of holes is too large to fit on the plate and your group fails. Go into Quick Fix, Fix Model, Regenerate. This will regenerate the model again and help it pick up on the fact that the number of holes has changed.
Davor Baros is a mechanical engineer at QFD Consultants Inc. in Vancouver, B.C., Canada. He can be reached by e-mail at baros@qfd.bc.ca or through his web site at www.qfd.bc.ca .