3d part design with Inkscape and Openscad #43: Revisiting the perforate module

A revisit to the tube perforate module to modify it so I can use an stl file in addition to a dxf file.

3 min read
By Bob
3d part design with Inkscape and Openscad #43: Revisiting the perforate module

I was watching some youtube videos and one popped up that was made by Robert Murray Smith and he was making a Darwin wind tube which takes air in from the sides and directs it out the end to make a wind turbine, this looked like a good job for Inkscape and Openscad so I started to make the design.

Here's  the video:

I made a circle and subtracted another circle from it that was 5 mm smaller creating a round ring the size I wanted the louvers, then I cut the ring into a quarter by using path>difference with a square. I wanted to make them rounded to see if it would help to take advantage of the coanda effect and they will probably need to be tilted a bit . Then I made the fins by creating rectangles and rotating them into the correct position, then subtracted a circle that was the correct size for the center from them:

I put the quarter circle on layer 1 so I could use rotate extrude to make a ring, and the fins on layer 2 so I could extrude them to the same height as the ring:

Once I had one ring made I wanted to use the perforate module to make several of them and adjust their height but noticed I didn't have any way to use an stl file with the perforate module, so I modified my existing code to use an stl file:

Just copy and paste the code into the Openscad editor.

/* [STL Perforate] */
Show_Perforate = false;
Path_to_STL_File ="/home/none3/Desktop/filename.stl";
Columns = 1; //[1:100]
Rows = 1; //[1:100]
diameter = 1; //[1:.1:200]
Verticle_spacing = 1; //[1:.1:200]
Horizontal_spacing  = 1; //[1:.1:200]
Verticle_rotate = 90; //[0:.1:360]
Rotate_X = 0; //[0:.1:360]
Rotate_Y = 0; //[0:.1:360]
Rotate_Z = 90; //[0:.1:360]
Rotate_All_X = 0; //[0:.1:360]
Rotate_All_Y = 0; //[0:.1:360]
Rotate_All_Z = 0; //[0:.1:360]
Move_X = 0; //[-200:.1:200]
Move_Y = 0; //[-200:.1:200]
Move_Z = 0; //[-200:.1:200]

module STL_Perforate(){
   rotate([Rotate_X ,Rotate_Y,Rotate_Z])
if (Show_Perforate)


Now I can import an stl file and use it with the tube perforate module or make multiple stacked copies of an stl file and adjust them how I want.

You can make some interesting designs just for fun by rotating the object and changing the spacing, which might be handy with different types of stl files.

Right click and open in new tab to see a larger image.

And a couple made with a beveled nut from the beveled nut module: