Vents with regular hexagonal cutouts are in common use in the chassis design of power supply units (PSUs). This article explains how to pattern a hexagonal vent cutout with constant web thickness within the bounds of a given rectangular region first using the new Fill Pattern functionality in Pro/ENGINEER Wildfire 2.0, and then using the Pattern Relations functionality in pre-Wildfire versions.
The example presented here illustrates how to pattern the cutouts with flats along the horizontal. Full instructions for patterning the cutouts with flats along the vertical are available. See the sections on vertical fill patterns and vertical pattern relations. For an explanation of the relations used for centering the pattern, click here.
Getting Started
The parameters to be considered at the outset are:
· width of the rectangle
· height of the rectangle
· width across flats of the regular hexagon
· web thickness
· minimum clearance from the outermost edge of a cutout pattern member to the border of the sketched rectangle
Go to Tools, Parameters to create part parameters for web thickness and clearance. If there are several rectangular regions with varying web thicknesses and clearances, you can index the parameters.
In this example, the parameters are webthk## and clearance##, where ## is the nth rectangular region in the part. Initial values (in millimeters) appear below.
|
Parameter
|
Type
|
Value
|
|
webthk01
|
Real Number
|
1
|
|
clearance01
|
Real Number
|
1
|
Table 1. Initial part parameters.
Section A: For Wildfire Users
Creating Hexagonal Cutouts Using Fill Pattern
1. Pick a sketch plane.
2. Go to Insert, Model Datum, Sketch or use the Sketch Tool icon.
3. Sketch the rectangle as shown in Figure 1, then click the check icon.

Figure 1. Sketched rectangle.
4. Right-click on the sketched rectangle and click Edit. Right-click on the width dimension. Click Properties, Dimension Text and enter width01 for Name. Rename the height dimension to height01.
5. Go to Info, Switch Dimensions to verify as in Figure 2.

Figure 2. Sketched rectangle named dimensions.
6. Pick the sketch plane used for the sketched rectangle and click on the Extrude tool. Sketch the regular hexagonal section with the flats along the horizontal on the lower left portion of the rectangle as in Figure 3.
Note: You can also go to Sketch, Data from File and use a previously created section. This section should have the lines constrained to equal lengths. The sketch can be saved for reuse. In Wildfire 3.0, the Sketcher Palette provides a hexagon.

Figure 3. Sketched hexagon with flats along the horizontal.
7. Finish the cut by picking on the Extrude to intersect with all surface
icon and Remove Material
icon. Change the depth direction
if necessary, then click on the check mark.
8. Select the extruded cut, right-click and pick Edit. Using clicks similar to Step 4, rename the dimensions as shown in Figure 4.

Figure 4. Renamed dimensions for regular hexagonal cutout.
The dimension names are:
· waf## = width across flats
· Ov## = pattern member center offset from the vertical
· Oh## = pattern member center offset from the horizontal
9. Select Tools, Relations and add the following relations:
Nw01=floor(((width01-2*clearance01-waf01/sin(60))/sin(60))/(waf01+webthk01)+1)
Nh01=floor((((height01-2*clearance01)-waf01)*2/(waf01+webthk01))+1)
width01a=waf01/sin(60)+((Nw01-1)*(waf01+webthk01))*sin(60)
height01a=waf01+(Nh01-1)*(waf01+webthk01)/2
if Nw01==1 & (ceil(Nh01/2)-Nh01/2)==0
height01a=waf01+(Nh01-2)*(waf01+webthk01)/2
endif
Ov01=(width01-width01a)/2+waf01/(2*sin(60))
Oh01=(height01-height01a)/2+waf01/2
where:
Nw## = number of columns of pattern members (along the width)
Nh## = number of rows of pattern members (along the height)
width##a = actual width as measured from the outermost edges of the outermost pattern members
width##a = actual height as measured from the outermost edges of the outermost members
10. Click OK. Select Edit, Regenerate or CTRL+G. This correctly locates the lead pattern member observing the minimum clearance requirement from the edges of the sketched rectangle.
11. Select the extruded cut, right-click and select Pattern.
12. Choose Fill, pick the sketched rectangle, select the Triangle grid template. For spacing
, enter waf01+webthk01. Click Yes when prompted to add as a feature relation.
13. For the minimum distance of the pattern members’ center to the sketched border
, enter the smaller value between Oh01 and Ov01 and subtract 0.01. You can add a feature relation later to avoid manually hiding pattern members or having less than the number of pattern members allowable.
14. For the rotation of the grid template
, enter 30. Click on the check button. The desired output will be as in Figure 5. Note that the pattern members are centered on the sketched rectangle.

Figure 5. Fill pattern of hexagonal vents.
15. Select Tools, Relations and add the following:
if Ov01>Oh01
ptncl01=Oh01-0.01
else
ptncl01=Ov01-0.01
endif
where: ptncl## is the fill pattern minimum distance from the pattern member centers to the sketch boundary
16. Select the Pattern feature, right-click and choose Edit Definition. Enter ptncl01 for the minimum distance of the pattern members’ center to the sketched border
. Click Yes when prompted to add as a feature relation. Click the check icon.
17. Now verify that this will be parametric by changing the parameters defined at the outset. For parameters, choose Tool, Parameters, then enter a different value for the parameter you want to change. For named dimensions such as the sketched rectangle and the sketched hexagon, just click on the feature and choose Edit. Alternatively, instead of renaming dimensions, you can add parameters and then add relations to assign the parameter value to the corresponding dimension. For example, if height01 is added as a parameter ,then add the relation d##=height01. Figure 6 shows some variations.
 |
height01=25
width01=56
waf01=4
webthk01=1.5
clearance01=1
|
|
 |
height01=30
width01=40
waf01=4
webthk01=1.5
clearance01=1
|
|
 |
height01=30
width01=40
waf01=3
webthk01=1
clearance01=1
|
|
Figure 6. Variations of fill pattern.
Section B: For Users of Pre-Wildfire Versions of Pro/ENGINEER
Note: Although the user interface and steps in Wildfire 2.0 discussed here are different from pre-Wildfire versions of Pro/ENGINEER, pre-Wildfire versions have the Pattern By Relations functionality. There are equivalent clicks in pre-Wildfire versions that are not discussed in this tip. For assistance, please contact the author.
Creating Hexagonal Cutouts Using Pattern Relations
1. Pick a sketch plane.
2. Go to Insert, Model Datum, Sketch or use the Sketch Tool icon.
3. Sketch the rectangle as shown in Figure 1, then click the check icon.

Figure 1. Sketched rectangle.
4. Right-click on the sketched rectangle and click Edit. Right-click on the width dimension. Click Properties, Dimension Text and enter width01 for Name. Rename the height dimension to height01.
5. Go to Info, Switch Dimensions to verify as in Figure 2.

Figure 2. Sketched rectangle named dimensions.
6. Pick the sketch plane used for the sketched rectangle and click on the Extrude tool. Sketch the regular hexagonal section with the flats along the horizontal on the lower left portion of the rectangle as in Figure 3.
Note: You can also go to Sketch, Data from File and use a previously created section. This section should have the lines constrained to equal lengths. The sketch can be saved for reuse. In Wildfire 3.0, the Sketcher Palette provides a hexagon.

Figure 3. Sketched hexagon with flats along the horizontal.
7. Finish the cut by picking on the Extrude to intersect with all surface
icon and Remove Material
icon. Change the depth direction
if necessary, then click on the check mark.
8. Select the extruded cut, right-click and pick Edit. Using clicks similar to Step 4, rename the dimensions as shown in Figure 4.

Figure 4. Renamed dimensions for regular hexagonal cutout.
The dimension names are as follows:
· waf## = width across flats
· Ov## = pattern member center offset from the vertical
· Oh## = pattern member center offset from the horizontal
9. Select Tools, Relations and add the following relations:
Nw01=floor(((width01-2*clearance01-waf01/sin(60))/sin(60))/(waf01+webthk01)+1)
Nh01=floor((((height01-2*clearance01)-waf01)*2/(waf01+webthk01))+1)
width01a=waf01/sin(60)+((Nw01-1)*(waf01+webthk01))*sin(60)
height01a=waf01+(Nh01-1)*(waf01+webthk01)/2
if Nw01==1 & (ceil(Nh01/2)-Nh01/2)==0
height01a=waf01+(Nh01-2)*(waf01+webthk01)/2
endif
Ov01=(width01-width01a)/2+waf01/(2*sin(60))
Oh01=(height01-height01a)/2+waf01/2
ph01=(waf01+webthk01)/2
pv01=(waf01+webthk01)*sin(60)
total01=ceil(Nw01/2)*ceil(Nh01/2)+floor(Nw01/2)*floor(Nh01/2)
initf01=ceil(Nw01/2)
inits01=Nw01
ntuple01=Nw01
where:
ph## = spacing of pattern members’ centers from row to row
pv## = spacing of pattern members’ centers from column to column
total## = total number of pattern members
initf## = first idx1 value where the pattern member goes to next row
inits## = second idx1 value where the pattern member goes to next row
ntuple## = every nth value of idx1 from initf## or inits## where the pattern member goes to the next row
10. Select the extruded cut, right-click and select Pattern.
11. Click the Dimensions button. For the first direction, choose the dimension named Oh01. Tick on the check box Define increment by relation. Click Edit and add the following relations:
f01hi=ceil((idx1-initf01)/ntuple01)
f01lo=(idx1-initf01)/ntuple01
n01hi=ceil((idx1-inits01)/ntuple01)
n01lo=(idx1-inits01)/ntuple01
if (f01hi-f01lo)==0 | (n01hi-n01lo)==0
memb_i=ph01
else
memb_i=0
endif
if Nw01==1
memb_i= 2*ph01
endif
where:
f##hi = high value to check if the value of (idx1-initf##) is an ntuple##
f##lo = low value to check if the value of (idx1-initf##) is an ntuple##
n##hi = high value to check if the value of (idx1-inits##) is an ntuple##
n##lo = low value to check if the value of (idx1-inits##) is an ntuple##
12. With the Dimensions dialog box still open, press and hold the CTRL button and pick the dimension named Ov01. Verify that this is added to the Direction 1. Tick the check box Define increment by relation. Click Edit and add the following relations:
f01hi=ceil((idx1-initf01)/ntuple01)
f01lo=(idx1-initf01)/ntuple01
n01hi=ceil((idx1-inits01)/ntuple01)
n01lo=(idx1-inits01)/ntuple01
odd01hi=ceil(Nw01/2)
odd01lo=Nw01/2
if odd01hi-odd01lo==0
t01=0
else
t01=1
endif
memb_i=2*pv01
if ((f01hi-f01lo)==0 )
memb_i=(3-2*initf01)*pv01
else
if ((n01hi-n01lo)==0)
memb_i=(3-2*initf01-2*(1-t01))*pv01
endif
endif
if Nw01==1
memb_i=0
endif
if Nw01==2
memb_i=(-1)^(idx1+1)*pv01
endif
where:
odd##hi = high value to check if the value of Nw## is odd
odd##lo = low value to check if the value of Nw## is odd
t## = gets the value of 1 when Nw## is odd; 0 if otherwise
13. Accept the default number of pattern members in the first direction (i.e., 2), then click the check icon.
14. Select the Pattern feature, right-click and choose Edit. Go to Info, Switch Dimensions and note the number of extrudes, p## (p36 in Figure 5).

Figure 5. Number of pattern members driver dimension.
15. Go to Tools, Relations and add the following part relations:
p##=total01
where: ## is taken from the previous step
16. Select Edit, Regenerate or CTRL+G. Verify the hexagonal pattern as shown in Figure 6 by selecting the Pattern feature and right-clicking on Edit Definition.

Figure 6. Pattern By Relations of hexagonal vents.
17. Option: You can go Tool, Relations and add the following:
far01 = total01*1.5*waf01^2*tan(30)/(height01a*width01a)
where:
far## = the free area ratio of the vent consisting of the pattern hexagonal cuts bounded by the rectangular region formed from the outermost edges of the pattern members
18. Now verify that this will be parametric. Figure 7 shows some variations. 
 |
height01=30
width01=40
waf01=3
webthk01=1
clearance01=1
|
|
 |
height01=20
width01=60
waf01=4
webthk01=1
clearance01=1
|
|
 |
height01=32
width01=46
waf01=4
webthk01=1.5
clearance01=1
|
|
Figure 7. Variations of fill pattern.
Ceferino Sanchez is a lead engineer, thermal engineer and Pro/ENGINEER administrator at ASTEC Power, a division of Emerson Network Power in Quezon City, Philippines. He can be reached by email at ceferinosanchez@astec-power.com.