Extruding Multiple Objects in different planes

I have a lot of shapes oriented in different planes that need to be extruded the same distance. Is there any way to select multiple shapes and have of them extrude perpendicular to their own workplane?

----as opposed to doing them all one at a time.

1 Like

Hi Jim - not without a script I’m afraid.


If these shapes are surfaces, you can select them all and use “OffsetSrf” with the “solid” option checked. Or create surfaces from your shape curves first.


One of the problems with automating this type of operation is that a planar object’s plane can have a normal that faces either way. That is to say it will extrude in one of two directions, but you can’t predict which direction it will go without an analysis of the plane’s normal. The same thing will happen with OffsetSrf. (note that OffsetSrf is only a substitute for Extrude when the surface is planar, which I assume is the case here)

There are some possible workarounds to this, ranging from having the user pick a point for side to extrude and then trying to figure out the closest direction to that (won’t work all the time) or providing the user feedback before extruding and allowing them to manually invert the direction on some objects (which is what OffsetSrf does, can be time consuming and error-prone if there are many objects).


Hi Mitch,
Not sure how you came to that conclusion, OffsetSrf and ExtrudeSrf works for non-planar surfaces equally well as for planar surfaces.

Edit: I see what you mean, it will work but the resulting polysurfaces are different.


Exactly… :smile:

another workaround is to preplan a multi extrude operation and make all the curves as centers. then extrude both sides.

I have a script that does it but I’m on a phone right now… will post it later today.

I might try creating a surface. I already did the 100 shapes on-by-one though.

I am doing a bidirectional extrude so the direction does not really matter.

here’s a python script which will extrude multiple planar curves:

ExtrudeMulti.py (2.6 KB)

1 Like