Tuesday, August 23, 2011

Array the Void Instead

Voids and solids interact in a specific order according to when each are created. I wrote another post to describe this in the past (July 2006). When you create an array of solids this can create a problem if your family isn't built with the notion of a maximum number of solids present at design time.

For example imagine slats that provide closure beneath a porch. If you design a family to array the slats you need to decide how many is enough. If you don't and you ask for more slats than your void(s) are able to cut you'll get new slats that aren't altered by the void. As the earlier post explains, this is because voids don't cut (not automatically) solids that get created after they are.

Quite some time ago (May 2005 actually) this came up in the form of a question at AUGI. The inspiration for the thread was Jerry's nicely modelled Queenslander style house and porch detail.

The trick to get this to work is reversing the logic. Since voids can't cut later solids, array the void instead. A new void will cut an existing solid automatically as long as the void and solid intersect when its sketch is finished. This means adding a new void to the array cuts the existing (only) solid, yay!

The "slat" is a single solid "sheet" and the voids array to remove/create the "spaces", to turn the sheet into "slats". There is an arc beneath the slats to carve off the bottom of the slats so they all are cut to create a uniform arc. The arc will flex when the width changes and there is a chord height parameter. It uses a reference line and the first void is created on the flat plane of the reference line. Then the array includes both the void and the reference line.

Here's what it looks like in use.

You can download the proof of concept family at AUGI in the thread or from HERE.

No comments: