Stacked "Wavy" Bowl Fusion 360 add-in

fusion360
bowl

#1

I was interested in making a stacked bowl like these:


But I wasn’t sure exactly what I wanted it to look like, so I started playing around with modelling it in Fusion 360. After a very short time, I realized that manually creating the curves was quite time intensive and it was going to take a lot of time to get to what I wanted…

So, I decided to learn how to write an Fusion 360 add-in to generate the bowls! After a bit of learning the API, a bit of learning python, and a bit of a math refresher (it has been about 25 years since I needed to remember the math for drawing a circle :slight_smile: ).

The result:


With a bunch of options to experiment with what the curves should look like, size of the bowl, etc.

I haven’t yet finalized my design or cut it yet, but if anyone else is interested in playing with it, I’ve posted it to github:

If anyone happens to play with it, I’d love to see the results or hear about any feedback!


#2

Wow. I was pretty good at LISP but have taken on Python several times and never gotten far, Gimp, Inkscape and Blender all use Python and so am wondering how transferable your script might be, or what it would take to do so.


#3

Wow, you are an F360 genius! That is quite an accomplishment. Thanks for sharing!


#4

I really love the idea of designs being a recipe in the form of a program that you can tweak to get different variations. Bravo!


#5

As a bit of background: I’ve been coding on computers in some way or another since the mid 80s. At this point, I’ve read code in a large range of languages and there aren’t many in common usage that I can’t at least stumble my way through.

For this one, I grabbed one of Fusion’s example scripts and started renaming stuff. I’ll freely admit that a bunch of the “get the add-in working” code basically the same as the sample script and I didn’t even try to understand exactly what it was doing. The main “draw the bowl” function was just a lot of searching on Fusion’s API docs to find the functions that accomplished what I would have done in the UI. Beyond that, I mostly just needed a decent code editor (i.e. not the one that Fusion uses by default) that can flag errors and a few debugging tricks like finding a place to expose the value of a variable without hooking up a debugger (I used the names of the components as a convenient “show what this number is” place :slight_smile: ).

I doubt the script itself would be easily portable to another app’s environment - probably > 80% of the script is Fusion specific, but the method I used to build it is likely portable…


#6

@jeffreykrauss, thanks for this! I’ve been wanting to do a bowl, but haven’t had the time to draw everything out. Can’t wait to play around with it!

I still have occasional LISP nightmares. My high school had to create classes for me (back in the '80s) because there was only a BASIC (pun intended) class available and I wanted 4 years of comp sci. For my senior year, they put me in an independent study with LISP (I was interested in AI at the time) and my advisor clearly didn’t know what he was doing. He assigned me the standard quadratic equation program, which I’m sure he thought would take a day or two. Only the version of LISP I was using would only process integers and the interpreter (I think I was on an Acorn machine) could only handle 7 lines of code. I spent a good part of the year creating a series of bite-sized functions to replicate commands that are built into most languages (i.e. Square root). I got the job done, but it was not necessarily a good use of LISP or my time.


#7

Very cool! I’m going to shift this to the Tutorials section for you, and stick it in the Matrix. :grinning:


#8

As far as Inkscape goes, you don’t need a script to do a bowl like this because the functionality is already built in using the Extensions>Generate From Path>Interpolate feature to generate a series of progressively changing paths between two existing paths. In other words you can use the polygon feature, adjust the number of corners, spoke ratio and corner rounding you prefer, then interpolate between them. You can even interpolate the colors if you like, so you can make each path its own object in the GFUI for adjusting settings or cutting order.


#9

Was what I was thinking as an approach I had used it in a spiral bowl, and I made another that half the cuts on each so the overlap worked without the twist, but the line up that worked all the way in a twist would be nice to automate. I really miss the ability to just write off the top of my head to have complex commands. I did a lot with variations of the Block command and wish inkscape had that as well.

This is a lisp routine I wrote that turned a series of lines to scaled and angled blocks.
BNM.zip (532 Bytes)


#10

This is good to know - I’m definitely more proficient in Fusion these days than Inkscape, so I like learning about what each can do.

In this case, though, I don’t know if it would have helped me enough since I was really looking to understand the visual effect of the changes I was making and having Fusion render the 3D model really helps me know what the result will be.

Additionally, now I have an easy way to add more variations to see what the effect is (like varying the ring size or rotation amount) - I definitely find it easier to experiment in code although this has definitely been forcing me to relearn circle math… :slight_smile:


#11

And now both of these are implemented!

This is fun to play with:


Although I expect this one might be too fragile - most of the rings are pretty narrow …


#12

Thanks for sharing. I have not used this type of script in fusion360. I was surprised as to how slow the response of control panel change to the new image is. Just an observation about Fusion360, not your script. A useful addition would be to have the overlapping edges in the 3d design show as lines in the flattened image. These could then be used to score the rings so that they are aligned correctly for gluing. I have a design I got from a free laser design repository and the scored alignment trace helps greatly. I used this design to make a wavy bowl from 1/4" solid cherry wood and finished it with Danish oil. It came out looking very nice.


#13

Performance of the script is definitely not awesome - I think doing this many splines is just not efficient, I suspect it is mostly Fusion, but I did want to poke around a bit at some point to see if I can reduce the number of points needed to get the same effect. One trick is to set the rings to a lowish number while experimenting and then increase it to the right number once you have the design you like.

Alignment marks: definitely on my list of things to figure out how to add although I haven’t figured out how yet. :slight_smile:


#14

Cool!


#15

I have on several occasions dropped stuff into Blender for that reason