Rotary Module with Fusion360: It works! (good enough)


I was hoping to show this little thing that had come to life on my rotary module.

Especially with the engraving added to it:

I didn’t try creating it in Luban as I had my doubts that the engravings would come out nicely, so I figured why not try and convince Fusion360 to work with the rotary module. As then I could project have a real engraving onto the curved surface. (which isn’t just a cylinder or something.

Unfortunately, it ended like this ( I was so close…):

It does feel silky smooth though.

What did I do?

I created the project in Fusion 360. imported the STL and then added some helper bodies:

  • The see-through blue (with yellow arrow) is the cylinder that is my base for milling. I was using one of the snapmaker provided cylinders for this.
  • The cylinder at the bottom (indicated with the dark blue arrow) is the “dead zone”. i.e. if you start milling in that area, you’re likely to hit the rotary module damaging at least your drill bit, probably the cnc module and the rotary module itself. Don’t go there! (this is just a visual helper)
  • the two tiny cylinders (red arrows) at the top and bottom which are small tabs that I created manually. to keep the piece in place.
  • I also ended up adding two rectangular sketches to limit the milling area explicitly to that region so I wouldn’t go out of bounds and hit the rotary module or tailstock.

When using Fusion, you need to create a setup that defines your stock material and which milling operations you’ll be doing and where you put your origin. The origin point define the XYZ-axis and starting point. This is where the fun begins. You can put that origin in a lot of places :slight_smile: ANd you can even flip it around etc. If you’ve ever done 2-sided milling, you’ve probably used this before.

So I ended up creating multiple setups for different types of operations and different directions.

The first one looks like this:

Note that I have put the origin point at the top of the stock. (Not sure if I would do that again, putting it in the center, like Luban does is probably better)
The head of the swan is the part that sticks out. So the rotary module clamps the stock material at its butt. Make sure the Z points up, and the X in the right direction (to the right if you look towards the rotary module)
An important detail is the "Model"Section where I selected both my workpiece (the swan) as well as the to little cylinder tabs I created earlier. That’s important to do, or they will be milled away and well, everything will just fall down.

For the stock material you choose “From Solid” and select the cylinder that was created for the stock. Note that you could use any shape of stock material in this case and then Fusion would take that into account.

For the job itself, it’s basically what you always do in Fusion:

What I did do explicitly was create a region for the Machining boundary. Option “Selection” and select the rectangular sketch. This is mostly to make sure it doesn’t create any paths too close to the rotary module itself. (That gets scary really quickly).
I also checked rest machining, which isn’t important for your first setup, but is convenient to already have selected once you start copy pasting.

On the heights tab it’s probably the best idea to have the depth limited. otherwise, the generated paths will go all the way down and most likely your milling bits aren’t long enough for that.

I’ve set that to from the top, go max 18mm down. The stock material has a diameter of 35mm, so 18mm is more than half that (17.5mm) so it’s enough to have everything removed if I mill from multiple sides.

If you’re doing roughing passes, it’s usually a good idea to leave some excess material:

But if you’ve been using Fusion360 before, that’s most likely something you’ve been familiar with already.

And then Fusion will happily generate the toolpath for you:

(in this case not the most efficient one, mostly because of the rectangle constraint I had put in place that could be wider as there isn’t anything to run into on the sides.)

Anyway, at this point the copy-paste fun starts. You can easily duplicate the entire setup (ctrl-d) or right click and duplicate. and you’ll have a second setup. Now modify this one a little bit by setting the work-origin to the correct place and orientation.

In this case to mill from the bottom up. It’s easier to rotate the image obviously when doing so. If you’ve put the origin in the center, then you just need to change the direction of the axis and not the origin point.

And next on the stock tab you choose “from preceding setup” and check the “continue rest machining” option:
This way, Fusion knows there is already some material gone and it doesn’t have to clear that anymore.

And now repeat for each direction you want to mill from. And that way you can easily see how it’s proceeding and your workpiece is appearing from the stock material.

Although you could probably create all toolpaths under each setup, I decided to separate the roughing and finishing passes. But it’s pretty easy and straightforward to duplicate them and to copy toolpaths between the different setups. Only thing to watch out for is to make sure to use the right sketch to control the toolpath boundaries. Other than that, you can just copy-paste.

And this way, I was sure that I could use the project toolpath for the engraving. Unfortunately I didn’t get there.

But there is still one step to do: actually create the gcode files. You basically have two options:

  • Run each toolpath separately and in between jobs rotate the module to the right position.
  • Paste them all together and insert between each job the correct rotation command.

Obviously I went for the last option. You can select all toolpaths with the same tool that you want to execute. For example all roughing passes in the 4 orientations and then click the PostProcess option:

This will create one file with all toolpaths. Fusion will give you a warning that it includes paths for different orientations. but that’s why we will insert the rotations manually. It’s convenient if you give the different toolpaths unique names, because then you can search for them in the gcode file. and before those you can insert the gcode line to rotate.
You should then get a file similar to this one: (I reduced all actual toolpaths to only two lines)

;vendor: Snapmaker
;description: Generic Snapmaker Marlin v20180725
M3 P100
G4 S2
;When using Fusion 360 for Personal Use, the feedrate of
;rapid moves is reduced to match the feedrate of cutting
;moves, which can increase machining time. Unrestricted rapid
;moves are available with a Fusion 360 Subscription.

; make sure you are at rotation 0 degrees as the top
;Top Rough Adaptive1
G0 X10.907 Y29.267 Z15.000
G1 X10.907 Y29.267 Z15.000 F400

;Rotate manually
;First go up a little bit (actually not necessary as Fusion already does this, just to be sure)
G0 Z35.000
;Next rotate to the right place
G0 B180

;Bottom Rough Adaptive1 2
G0 X10.907 Y29.486 Z15.000
G1 X10.907 Y29.486 Z15.000 F400

;Rotate manually
;First go up a little bit (actually not necessary as Fusion already does this, just to be sure)
G0 Z35.000
;Next rotate to the right place
G0 B270

;Left Rough Adaptive1 3
G0 X-10.963 Y4.619 Z15.000
G1 X-10.963 Y4.619 Z15.000 F400

;Rotate manually
;First go up a little bit (actually not necessary as Fusion already does this, just to be sure)
G0 Z35.000
;Next rotate to the right place
G0 B90

;Right Rough Adaptive1 4
G0 X10.963 Y55.381 Z15.000

G0 X0.000 Y0.000

Et voila, you have a single gcode file you can run. Obviously, you still need to create one for each tool you’re using.

Is this real 4-axis milling? Obviously not, but it gives you an easy way to do multi-sided milling and you do get the advantage of being able to use the more advanced toolpaths Fusion360 can generate. The effort needed is obviously a bit more than the easy way to start your job from Luban.

Ok, cool story, but where did it go wrong for my job :unamused:. I’m not sure yet. I think my tabs were not big/strong enough and I was a bit too aggressive with my finishing pass. I started conservative, but those cylinders seem to cut so easily and I increased the speed. A bit too much I guess.

Other things I’ve noticed/remarks:

  • working this way means that the origin point needs to be exactly spot on. a tiny bit to the left or right and you get two halves that shifted a bit. (it’s either that or my module wasn’t perfectly perpendicular) to the base plate. It’s this border that you see here that’s caused by that:
  • I’ll have to measure closely, but I’m not sure that supplied v-bit is really 20 degrees. Either that, or there is a wobble in my cnc head or I didn’t specify the tool right in Fusion, or Fusion is bad at calculating slopes for this type of tool. because it seemed to have removed too much material in the finishing pass in the slopes:
    The green is actually before the finishing pass and the red after. The green looked better. Easiest solution is probably to not allow to do slopes this steep with that tool.
  • I forgot to tighten the set screw in the tailstock, as such, that didn’t give all the support it could have.
  • I only did 4 sides. Nothing is stopping you from milling from multiple angles. But if you deviate from quarter turns, you do need to create extra origin points manually. Once that one is set (e.g. with rotations at 45 or 30 degrees) it’s just the same way of working. This video shows how you can create extra coordinate systems: Creating and Using UCS (User Coordinate System) in Fusion 360 - YouTube
  • If I do it again, I’ll probably set the origin points at the center of the stock, like Luban does. Once set, it doesn’t have to change (same if you put it at the top) but at least the gcode previews will make a lot more sense. When it’s not at the center, the previews don’t make any sense (when opening in ncviewer for example)

Other than the little issue I had, I think this way of working does have a lot of potential and I think I will try it again. I’ll probably make a base template document that could be easily reused for multiple projects.

But maybe I should have tried Luban first. At least I would have made it before Valentine :innocent: .

Hope this helps someone.


That is begging for a script to generate a new toolpath at each rotation for every 5 degrees and to post process…

That’s great stuff.

And the good news is that the API is still available in the personal edition (for now)

I probably should finish my 3D touch probe first. That would also have been a possible solution to making an engraving onto a curved surface :stuck_out_tongue:

Or make sure I could replicate the positioning that Luban does in Fusion so I could do the initial carving in Luban and the engraving in Fusion…

Every problem has multiple solutions, and every solution comes with extra problems. And so the vicious circle begins. (Someone rescue me… please!)

1 Like

Great writeup, thanks!

The problem with your v-bit is probably what I’ve found with some I use - if the point is flattened a little you’ll end up setting the work origin low. It’s also just hard sometimes to tell when a v-bit is touching. Also, make sure your angle is what you think it is. The way that you enter the angle is confusing in Fusion and took me a bit to figure out that the angle they wanted was 30º when my bit was listed as 60º (or vice versa, can’t check Fusion right now). It’s not intuitive.

It’s nice that you can incorporate the turning into g-code, but you don’t really even need to spend money on the rotary module for this. I already have been doing 4-sided machining without it.


1 Like

I did replicate the settings on the box and what’s configured in Luban (20° and 0.3mm wide “point”) and what’s on the box. it being set too high/low could have been an issue as I forgot to lock the tail-end in place with the set screw and I had used that as my reference for the z-height when I was changing bits. Fusion indeed allows you to set up the bit with the full or half angle (the latter one angle between shaft and side)
But it “feels” like it wasn’t the only thing at play here. Probably it’s a combination of multiple things that all add up.

That’s true obviously. I have been doing some 2-sided milling as well with good success. And it was also that experience that has led me to try this this way. Hoping that would make it easier as the workpiece holding and alignment should/could become a lot easier this.

A lot depends on the accuracy required and complexity of the objects obviously and for these type of miniature figures, this would be more challenging to do. And it’s a small step to add extra angles this way if needed/relevant which becomes more challenging. But obviously, the size of objects with the rotary is much more limited.

1 Like

Just a little update. As mentioned I tried to make it into a template document in Fusion that is easy to reuse. Writing my steps on how to use it down here so I can remember it myself as well :slight_smile:

When you use the template document some components are defined in the “Rotary Setup”

This includes the stock (both a beam and a cylinder are included) as well as some supports to keep your model connected. They are defined in a “millable” part and a “non-millable” part. i.e. the actual part of the stock that is safe to cut as well as those parts you should stay away from and the support part to keep your model connected.

By clicking the “eye” icon in front of them you can visualize or hide these.

To get started: insert the model you want to carve (obviously you can design something yourself in Fusion as well). We’ll assume we’re inserting an stl.
Go to “insert Mesh”

and choose the file you want to add. You’ll see it highlighted but still need to confirm some options.

It’s also convenient to at this point click the “center” button. that will put it at the center of the stock material. By default it’s not perfectly aligned as you can see here:

After that clicking that button it is

At least around the rotational axis. it’s actually at the center of the coordinate system. But it saves some moving around at least. You can click ok at that point.

If like me you didn’t pay attention to which component was selected in the browser, it’s probably not where you want it, yet :slight_smile:
So check where it is, and if it isn’t in the “TheObject” component, then drag it over there. Don’t worry about the “Bodies” folder, just drag it onto the TheObject.

It should look something like this then:

Obviously, the object isn’t positioned perfectly yet and you might want to resize it a bit.
To move you can right click in the browser on the object, or directly on the object itself:
You can then fill in the value or drag the object around and click ok to confirm

To resize, go to modify and scale, where you can fill in a scale factor

Again, ok to confirm.

Unfortunately, scaling at this point does not keep it centered on the rotational axis, so you’ll have to correct for that. You can align the object with the rotary setup by choosing the align option:

and then select "TheObject component as “From” and select the "Rotary setup"as To and they will be aligned nicely again.

Now the basic setup is done and you can switch to manufacturing. There is one setup defined already and you can now add your desired toolpaths.
For example an adaptive clearing

The main thing to add here is to select the machining boundary. A sketch is already defined for the horizontal and vertical planes. so choose selection

And then select the relevant sketch
And choose the option to keep the tool inside the boundary of that sketch:

That will make sure you won’t go out of the safe area.

Make sure you don’t forget to select the bottom height:

and adjust all other parameters of the toolpath as you want. To add the other orientations, follow the directions in the first post. You may also want to check that stock contours option, or otherwise it won’t clear the surface completely and only where it really needs to cut.

And you should be ready to go.

If you’re using square stock in stead of a cylinder, you can select the predefined beam in the setup:

And finally I tried to use parameters for all relevant options. You can change these values from the Design view by selecting modify/Change parameters

Which gives you a list of possible parameters to change. This way you can just change the diameter, length of the cylinders, the size of the supports (width and height, top and bottom separately) etc.
So just change the relevant numbers and you should have it optimized for your desired stocksize just like that.

The zip file with the Fusion360 project in attachment.
rotarytemplate v9 - (158.8 KB)

1 Like

Ah, and to be clear, and in a separate post to make it explicit:
I offer no warranty whatsoever, use at your own risk. If you destroy your snapmaker, rotary module, your partners jewelry or your own body, that is completely your own responsibility.

I’m doing all this only for personal entertainment and learning purposes. And the above posts are just my online backups of the documentation :wink:

Only wimps use tape backup: real men just upload their important stuff on ftp, and let the rest of the world mirror it;)
— Linus Torvalds

Sorry i tried it before you posted that and now my house is on fire where do i send the bill

That’s good stuff though. I haven’t thought of keeping common setups in a template.

1 Like

You can send it to Snapmaker HQ in Shenzen :grin:

It’s a first for me too. Not sure if I did it in the most optimal way. I just watched some movies on youtube on how to use Fusion360 and parameterized setups. :innocent:

But I’ll leave it up to someone else to write the addon-script for further automation. This is good enough for me right now. (I have a touch probe to finish.)

Just got an email from DeskProto with a video about “indexed machining”:

I’ve played a little with DeskProto but haven’t really gotten into it. It does support rotary machining but since I don’t have a rotary module, Fusion 360 does what I need.


1 Like

Nice video. Contains a lot of good tips as well. The approach is very similar to what I tried to achieve, but with some more automations. 4-axis machining for hobby usage is available for 248EUR. which is doable I guess.

They don’t list marlin based cnc machines on their page, although that doesn’t mean it shouldn’t work (Which CNC machine to select in DeskProto). Did you get it working?

Edit: DeskProto user forum
apparently there should be a snapmaker postprocessor

Didn’t realize it was a Dutch company until I heard the accent of the guy in the video :slight_smile: (Always thought they were uk-based)

I did play around a bit with Meshcam ( However, they stopped supporting 4-axis machining (also indexed) on version 6. So the current versions don’t have that included anymore.

The other one I’ve been wanting to try, but haven’t yet is ESTLCam (, mostly because of the surface probing feature it has built in.

But I came to the same conclusion: so far Fusion360 does what I need.

Been digging a bit deeper. multiple issues at play:

  • origin was set a little off to one side
  • but most importantly: I really need to tighten my rails (especially Z-axis). I have been ignoring it for a while (not that critical for printing & laser) but proves to be for this type of fine multi-sided cnc work. I can see that having it off by a few degrees has that kind of effect as well.
1 Like