@mabat has given us the great Ath (Advance Transmission Horn) tool as discussed in this very interesting thread: https://www.diyaudio.com/community/threads/acoustic-horn-design-the-easy-way-ath4.338806/)
In it, mabat also gives advice on 3d printing the waveguides as a throat with 4 petals and some connection pieces.
https://www.diyaudio.com/community/...-design-the-easy-way-ath4.338806/post-7062937 and further

I made a first prototype following his guidelines after struggling with Fusion 360:
https://www.diyaudio.com/community/threads/efficient-2-way.380822/post-7202065 and further

As I am very new to speaker building and (hifi) audio in general I can't add much to this forum. The forum (members) have given though! I am trying to do something back by automagically turn the .afp file as created by Ath into 3D printable parts by simply running a Fusion 360 script that can be configured by a config file. I hope it will help others and me cut down the time and effort to go from ath to a stl files, ready to be used in a slicer program.
I have made the createPrintableWaveguide script available on github (https://github.com/TomKamphuys/CreatePrintableWaveguide). It is currently a messy, fragile script, but I think it does enough to act as a proof-of-principle. I hope to get some of you enthousiastic and get some help. Any help is appreciated as just like the Fusion gui, the API presents a similar challenge: it isn't easy for the uninitiated. Even if you don't have any python/fusion experience, you can help by e.g. writing the readme or further documentation or suggesting new ideas.
Some expectation management: I won't be persistent as mabat and don't expect to be actively developing this script 3 years from now, but I hope it will be enough for some of you to use directly or use parts of it.
Currently it is capable of this:
In it, mabat also gives advice on 3d printing the waveguides as a throat with 4 petals and some connection pieces.
https://www.diyaudio.com/community/...-design-the-easy-way-ath4.338806/post-7062937 and further


I made a first prototype following his guidelines after struggling with Fusion 360:
https://www.diyaudio.com/community/threads/efficient-2-way.380822/post-7202065 and further


As I am very new to speaker building and (hifi) audio in general I can't add much to this forum. The forum (members) have given though! I am trying to do something back by automagically turn the .afp file as created by Ath into 3D printable parts by simply running a Fusion 360 script that can be configured by a config file. I hope it will help others and me cut down the time and effort to go from ath to a stl files, ready to be used in a slicer program.
I have made the createPrintableWaveguide script available on github (https://github.com/TomKamphuys/CreatePrintableWaveguide). It is currently a messy, fragile script, but I think it does enough to act as a proof-of-principle. I hope to get some of you enthousiastic and get some help. Any help is appreciated as just like the Fusion gui, the API presents a similar challenge: it isn't easy for the uninitiated. Even if you don't have any python/fusion experience, you can help by e.g. writing the readme or further documentation or suggesting new ideas.
Some expectation management: I won't be persistent as mabat and don't expect to be actively developing this script 3 years from now, but I hope it will be enough for some of you to use directly or use parts of it.
Currently it is capable of this:
Last edited:
The code and my knowledge need some work to do that.Awesome! Could you do a step-by-step walkthrough?
It's use is simple though.
1) ath generates a .afp file
2) create a config file in the same directory and with the same name as the .afp file, only with the extension .cfg (see post #1)
3) start Fusion 360
4) Utilities -> Add-ins -> select 'CreatePrintableWaveguide' -> click 'Run'

5) Done! (see post #2)
The code is still brittle though. It relies on id's that are not always the same. I need to find a more robust way to get to bodies, faces and the like.
At least for shapes with equal quadrants.
For non-axisymmetric waveguides, Ath provides STL-files that are imported into Fusion like this:

Despite the looks in Ath,

... they do not import with a wall and have no mounting flange defined.
If at a later stage of development you have a chance to include this case, it would be wonderful. Thanks for your work!
Attachments
This is a helpful video to get some feeling for the concepts.
https://www.autodesk.com/autodesk-u...-and-B-Rep-Inventor-and-Fusion-360-2018#video
I has this analogy, which is spot on:

https://www.autodesk.com/autodesk-u...-and-B-Rep-Inventor-and-Fusion-360-2018#video
I has this analogy, which is spot on:

@docali made some scripts up to turn co-ordinates in a CSV file into surfaces through python scripting in Fusion. These are capable of working with any geometry. He might be willing to give you some pointers if you wanted to expand out of axisymmetric.The code and my knowledge need some work to do that.
Funny that two of the smartest people I have come across have no problem scripting the program but struggle with the GUI 🙂
I will show you how to import an irregular shape into Fusion as a smooth surface, I do it all the time, have a Python script for that already, it's just that it is easier to do the rest (the flange, fillets, etc.) manually with the GUI, I think. That's the point where I gave up with scripting.
Last edited:
Well, I wouldn't say I have no problems...no problem scripting the program but struggle with the GUI
And wrt the scripting, it's mainly because I'm lazy and hate doing things repeatedly manually.
As Martin Fowler said it: "I'm a pretty lazy person and am prepared to work quite hard in order to avoid work."
very cool, I found the fusion API a bit of a pain like it was an afterthought of the developers....
Not much news on the functionality. Code is getting cleaner:
Python:
(throatSettings, throatMouthConnectorSettings, petalConnectorSettings) = read_config(dlg.filename, unitsMgr)
importAFP(dlg.filename, rootComp, sketch)
(fullWaveguide, ext) = revolveProfileIntoWaveguide(sketch, rootComp)
createMountingHoles(rootComp, throatSettings.mountingHoleDiameter, extrudes)
(splitBodyFeats, offsetPlane) = splitWaveguideIntoThroatAndMouth(fullWaveguide, rootComp, throatSettings.length)
petal = splitMouthIntoPetal(rootComp, ext, splitBodyFeats)
throat = ext.bodies.item(0)
createThroatMouthConnector(throat, rootComp, offsetPlane, throatMouthConnectorSettings, throatSettings.length)
generatePetalConnection(petal, petalConnectorSettings)
- Less brittle body and face id-ing.
- further use of configuration (with units!)
Code:
[Throat]
length = 80 mm
mountingDiameter = 76 mm
mountingHoleDiameter = 6.5 mm
[ThroatMouthConnector]
slotWidth = 3 mm
slotDepth = 3 mm
connectorWidth = 2.9 mm
connectorHeight = 5.8 mm
hasFillet = True
filletSize = 1 mm
[PetalConnector]
slotWidth = 3 mm
slotDepth = 3 mm
ConnectorWidth = 2.9 mm
ConnectorHeight = 5.8 mm
hasFillet = True
filletSize = 1 mm
Last edited:
Yes please 🙂I will show you how to import an irregular shape into Fusion as a smooth surface, I do it all the time, have a Python script for that already, it's just that it is easier to do the rest (the flange, fillets, etc.) manually with the GUI, I think. That's the point where I gave up with scripting.
Some more structuring, learned a bit, still need to learn a lot.
In the mean time, more config items actually do what they are supposed to do.
The separate connection pieces make it easy to tune the size of this w.r.t. the slot; you can quickly print small pieces in search for the best fit for your printer (settings).
The fillets on these pieces is to be insensitive to the elephants foot of the printer.
I was thinking of adding some features to be able to screw the waveguide together. Either as a glue help or maybe as a possibility to test multiple petals on the same throat (e.g. for different tmax values). Just thinking out loud....
In the mean time, more config items actually do what they are supposed to do.
The separate connection pieces make it easy to tune the size of this w.r.t. the slot; you can quickly print small pieces in search for the best fit for your printer (settings).
The fillets on these pieces is to be insensitive to the elephants foot of the printer.
I was thinking of adding some features to be able to screw the waveguide together. Either as a glue help or maybe as a possibility to test multiple petals on the same throat (e.g. for different tmax values). Just thinking out loud....
It definitely helps to use screws, I added some extra ribs to the second version of this: https://www.diyaudio.com/community/...-neile-alo-horn-by-sphericalhorns-net.390581/
I added ribs to the edges instead of the tongue/groove. The dark grey is the newer version with the rib along the whole edge, the white one is the older one with just small areas for screws. All done by hand, I have never used neither scripting nor parametric modeling in F360.
Attachments
I sketched the shape on the dividing plane including the screw holes, then extruded the shape in the direction of the part and merged it with the part. Then I added a fillet where possible from the other side (sometimes it failed due to the shape). Of course, it depends on the printing orientation. I used just a hole (ideally two per flange), bolt and nut. I also used pyramidal alignment pins, so I could do with one bolt only.
- Home
- Loudspeakers
- Multi-Way
- Fusion 360 script to turn Ath waveguide into 3D printable parts