Customizable Vacuum Cleaner Adapters to Make Your Own Nozzle, or Connect to Anything Else.
by paramate in Workshop > 3D Printing
444 Views, 3 Favorites, 0 Comments
Customizable Vacuum Cleaner Adapters to Make Your Own Nozzle, or Connect to Anything Else.
Maybe you want to attach your shop vac to the dust collector of your sander, or maybe you need a vacuum cleaner nozzle to get into a small gap. In this tutorial we will be making a customizable vacuum cleaner adapter. If you haven’t seen my previous Instructable about Customizable Furniture Leg Extenders, which is a bit easier, you can find it here: https://www.instructables.com/Fix-Your-Furniture-With-Customizable-3D-Printed-Fu
This is a simple and practical example of an object for mass customization in 3d printing. Mass customization and design automation will be big trends in the near future of 3d printing. I will leave it up to the interested reader to do their own research as these topics are beyond the scope of this instructable.
The software we will be using for this is trCAD by trinckle. There is a free version that can be used without a login on https://trcad.trinckle.com/playground/ there are also free non-commercial licenses available if you send them an email. It is a scripted CAD software in a C-like language. People with JavaScript experience will find a thing or two familiar. But if you have no coding experience, this tutorial will be simple enough to follow along.
Note that the Playground version it there to try out the software and does not have the capability to save your progress. It is a good idea to save your progress in a separate text file in your favorite text editor.
For people that want to try to make their own objects after this tutorial, the documentation on https://docs.trcad.trinckle.com/trcad_manual/ will be a useful resource.
Supplies
· 3d printer or 3d printing service
· Ruler/Calipers
Open TrCAD Playground
Opening up https://trcad.trinckle.com/playground/ you will find several examples and at the bottom an ‘empty code’. Since we will be making our customizer from scratch, we’ll want to open ‘empty code’.
Opening the ‘empty code’ will look like this:
On the left side we can type our code. On the right side we will see the 3D result of our code.
For this tutorial, we will be using extruded sketches. Please note, sketches are currently not visible by themselves in the 3D result in trCAD.
We need to make our first curve. For this we will define a couple of points and extrude the curve. Type in:
curve shape = <[35, 0]> -> <[35, 30]> -> <[30, 30]> -> <[30, 0]> -><- make extrusion( shape, <[0.0, 0.0, 1.0]> )
and press the ‘run script’ button. Please note: the curve should follow a counter-clockwise path in order to be a solid mesh (clockwise would define a hole).
In order to get a consistent wall thickness for our vacuum cleaner adapter later on, we will need to use a curve and an offset to this curve. Replace the previous code with the following and note it has the same result:
curve c = <[35,0]> -> <[35,30]> sketch s = offset_xy( c, 5 ) curve shape = s.element( 0 ) -> -c -><- make extrusion( shape, <[0.0, 0.0, 1.0]> )
Now that we understand the basics of curves and extrusions, we can make the actual form that we want. I find it easiest to sketch out the general form that I want on paper, instead of doing it all in my head. (A little mistake in my drawing, of course, the ‘diameter’ in my drawing should really be radius.)
The curve should be as follows and I want the wall thickness to be 0.8 mm, so we should change the offset to .8 (replace the curve code):
curve c = <[15,0]> -> <[15,30]> -> <[8,60]> -> <[8,80]> sketch s = offset_xy( c, .8 ) curve shape = s.element( 0 ) -> -c -><- make extrusion( shape, <[0.0, 0.0, 1.0]> )
Up until now we have only extruded in a straight line. But for this project, we need to extrude it 360 degrees. trCAD can also extrude along a curve, in this case a circle. For this I will introduce a new extrusion function: extrusion( sketch outline, vector origin2d, curve path ). First we need to define the curve path with the arc function it will look like this: curve p = <[starting point]> -> arc( <[center]>,angle), add before the extrusion function:
curve p = <[15,0]> -> arc( <[0,0]>, 2PI)
and replace the extrusion function with:
make extrusion( shape, <[15,0]>, -p )
Now we have the general form that we need. Currently, we could change the parameters in the code, but it is easier to use parameters that will appear on the right, so we do not have to change the code. For this we’ll introduce open parameters. They can be defined as follows, add on top on line 1:
open float diameter1 { name = "diameter1" descr = "diameter1" value = 30 }
Change the curve function to:
curve c = <[diameter1/2,0]> -> <[diameter1/2,30]> -> <[8,60]> -> <[8,80]>
You will see the open parameter show up on the right and you can change it, without changing the code.
We will need five more open parameters, one for the second diameter, three lengths and a wall thickness. Add the following below the first open parameter:
open float diameter2 { name = "diameter2" descr = "diameter2" value = 8 } open float length1 { name = "Length1" descr = "length1" value = 30 } open float length2 { name = "Length2" descr = "Length2" value = 60 } open float length3 { name = "Length3" descr = "Length3" value = 80 } open float wallThickness { name = "wallThickness" descr = "wallThickness " value = .8 }
Now all we have to do is change the values for the open parameters:
curve c = <[diameter1/2,0]> -> <[diameter1/2,length1]> -> <[diameter2/2,length2]> -> <[diameter2/2,length3]> sketch s = offset_xy( c, wallThickness ) curve shape = s.element( 0 ) -> -c -><- // circle path for the erxtrusion: curve p = <[diameter1/2,0]> -> arc( <[0,0]>, 2PI) // extruding profile allong the circle: make extrusion( shape, <[diameter1/2,0]>, -p )
You have a customizable vacuum cleaner adapter that can be customized using the open parameters on the right. Congratulations! As in every code, it is easy to make mistakes. I’ve added the complete code including comments at the bottom.
Customize the Vacuum Cleaner Adapter as you like and download the stl. Make sure you add some clearance to your measurements, I like to add 0,2 mm to the diameters to make sure it fits, but this is highly dependent on the 3d printer that you are using. Now slice the stl in your favorite slicer and print it yourself, or have it printed by a third party.
If you have any questions or remarks, get in the comments! I’d love to hear from you.
// document gamma give a higher resolution mesh. document.gamma = rad(2.5) // open parameters: open float diameter1 { name = "diameter1" descr = "diameter1" value = 32 // my vacuum cleaner has a diameter of 31 mm, plus 1 mm wiggle room. } open float diameter2 { name = "diameter2" descr = "diameter2" value = 8 } open float length1 { name = "Length1" descr = "length1" value = 30 } open float length2 { name = "Length2" descr = "Length2" value = 60 } open float length3 { name = "Length3" descr = "Length3" value = 80 } open float wallThickness { name = "wallThickness" descr = " " value = .8 // .8 will make two perimeters on the 3d printer, if your nozzle is .4, which is a pretty standard nozzle size. } // making of the initial profile sketch that will be extruded in a circle: curve c = <[diameter1/2,0]> -> <[diameter1/2,length1]> -> <[diameter2/2,length2]> -> <[diameter2/2,length3]> sketch s = offset_xy( c, wallThickness ) curve shape = s.element( 0 ) -> -c -><- // circle path for the erxtrusion: curve p = <[diameter1/2,0]> -> arc( <[0,0]>, 2PI) // extruding profile allong the circle: make extrusion( shape, <[diameter1/2,0]>, -p ) // // arc start point center angle; radius is defined by distance // // | | | between start point and center. // // v v v // curve p = <[0,0]> -> arc( <[15,0]>, 2PI)