Eccentric 4th Axis Rotary Toolpath

Eccentric 4th Axis Rotary Toolpath

26-Taylor
Advocate Advocate
2,503 Views
13 Replies
Message 1 of 14

Eccentric 4th Axis Rotary Toolpath

26-Taylor
Advocate
Advocate

I'm trying to use the machining extension's "Rotary" toolpath to tackle an eccentric feature on a mill with a 4th axis. The ideal toolpath would look like the example at 5:22 in this youtube video: https://youtu.be/81UjjSH2iFw?t=321

 

The problem I have is that my machine does not have dynamic work offset (what Haas calls it anyway...) so I have to set up my CAM work coordinate system to line up with the centerline of the 4th axis. This is do-able but when the Rotary toolpath is set up this way I get a really weird toolpath. When cutting the eccentric feature (WCS aligned with A-axis), the toolpath has a flat spot where the feature crosses the a-axis centerline & it transitions from up-cutting to down-cutting. Pictures below & an f3d file is attached.

Flat SpotFlat Spot

A-axis WCSA-axis WCS

 

However, when I select the eccentric feature as my WCS in the rotary toolpath, I get exactly what I'm looking for (picture below).

Good Toolpath, Bad WCSGood Toolpath, Bad WCS

Eccentric WCS SelectionEccentric WCS Selection

 

This works perfectly in Fusion but when I post the program I'm out of luck. There is a disconnect between the axis of rotation that is programmed and the physical axis of rotation of the rotary. I would imagine a fancy-er machine would be able to compensate for this.

 

Has anyone else had experience with this? I would like to trick Fusion into generating the good toolpath while keeping the WCS on the A-axis centerline, so far no luck.

 

Please feel free to ask for clarification on anything, this one is hard to describe. Thank you in advance for any input you have!

0 Likes
Accepted solutions (1)
2,504 Views
13 Replies
Replies (13)
Message 2 of 14

a.laasW8M6T
Mentor
Mentor

Yea I don't think there is a way to trick it, the reason it goes funny is because the tool is fixed in the Y axis with the rotary toolpath, its not a true 4 axis toolpath(Caveat you can get 4 axis output with collision avoidance but it needs to avoid a Collison to do this)

 

offsetting the tool in the Y try's to maintain that y offset all the way around.

as far as I'm aware without some form of TCP you cant get a good result.

0 Likes
Message 3 of 14

26-Taylor
Advocate
Advocate

@a.laasW8M6T ,

 

That is what I was afraid of. After doing some more digging it looks like this feature has been requested before.

2019> Solved: Turning a cam or a lobe, can it be done in fusion 360? - Autodesk Community - Fusion 360

2020> Making a camshaft using the fourth axis - Autodesk Community - Fusion 360

 

@seth.madore is this a feature that we should hold our breath for? Or is it not even on the roadmap to your knowledge?

 

My workaround...

1) 2D Contour: Draw a sketch or split the body through the eccentric feature to get a straight line toolpath, bottom height is the top of the eccentric feature.

26Taylor_0-1642547181184.png

26Taylor_2-1642547591335.png

 

2) Create a (circular) pattern folder. Set the axis to the eccentric feature > add instances until the "faceting" is acceptable. 

26Taylor_1-1642547342279.png

This looks clunky but it actually worked surprisingly well (after some post-processing to get rid of Z-zero retracts after every cut 😑). I know simultaneous motion is more complicated but this method shows that Fusion 360 can do the eccentric compensation/math, sure would be a nice addition. It's funny that the standard 2D Contour saved me and not the add-on Rotary, glad I gave the machining extension a trial run before buying! Hope this can help someone out in the future.

 

 

Message 4 of 14

a.laasW8M6T
Mentor
Mentor
Accepted solution

So I have realized I was incorrect in my assertion that you need TCP/dwo to do this.

 

You CAN select the eccentric as the rotary axis, it doesn't need to be the physical rotary axis of the machine, it just can be an axis that isn't parallel with the physical axis.

 

So using your test part I was able to successfully machine the part using your toolpath Named good toolpath/bad wcs.

 

IMG_20220125_075857_HDR.jpg

https://youtu.be/ex8DCMrDU3o

 

 

0 Likes
Message 5 of 14

26-Taylor
Advocate
Advocate

Well, shame on me for not actually trying to post and run the code...

 

Your machine seems to run a lot smoother than ours, I think our processor has a hard time keeping up with the lengthy code. Just FYI for anyone that may have the same issue - I enter a known "good" feed rate for the first cutting move then delete all "F" (feed rate) blocks for the rest of the program. This makes the A-axis move smoother and constant. I'll see if I can get the code to post out this way by default in the future.

 

Another note-worthy find - 2d Contour with "Wrap Geometry" also works very well for side-cutting the wall feature. The floor is a little more difficult as there is no way to offset the tool (a great feature of the Rotary path), it always cuts at the center of the tool.

 

Thanks again @a.laasW8M6T !

0 Likes
Message 6 of 14

a.laasW8M6T
Mentor
Mentor

No problems, when I first posted in this thread I didn't have my rotary axis working on the machine yet, so its pretty new for me.

 

The machine has a Heidenhain iTNC530 which for being 20 years old is still one of the fastest controls around, 2000 blocks per second.

The control interprets the feed as a combination of mm/min and deg/min so never really gets it right.(without TCP enabled)

I can enable TCP/DWO on the control but at this point it has more disadvantages.

Ill see how I go having TCP/DWO would be handy and then the feedrates will be correct too.

0 Likes
Message 7 of 14

erikhardy339
Enthusiast
Enthusiast

Hello, 

I have a similar eccentric part coming up using the rotary tool path. On the original F3d file, there is a 0.19" offset on the back face, and when this is set to "0.0" the cutter path bumps up to the main diameter. 

Is there a method for accurately milling the side face to eccentric lobe? 

0 Likes
Message 8 of 14

26-Taylor
Advocate
Advocate

FYI - I successfully modified the post-processor to use a fixed feed rate for the rotary move that is defined in the F360 Post Process window. 

  • Add the property

 

fixedRotaryFeed: 12.0, //A-Axis fixed feedrate

 

  • Add the property definition

 

fixedRotaryFeed: {title:"A-Axis Feedrate", description:"Forced feedrate for A-Axis cutting moves. Default = 12.0 IPM.", type:"spatial"}

 

 

  • Modify the code in the "getMultiAxisFeed" function in the "degrees per minute" section of the function (around line 2350 in the Haas A-Axis post)
 

 

  if (!properties.useDPMFeeds) { // inverse time
    f.frn = inverseTimeOutput.format(getInverseTime(length[0], feed));
    f.fmode = 93;
    feedOutput.reset();
  } else { // degrees per minute
    f.frn = feedOutput.format(properties.fixedRotaryFeed); // MODIFY THIS LINE: WAS "getFeedDPM(length, feed));"
    f.fmode = 94;
  }
  return f;

26Taylor_0-1643660383649.png

 

The feed rate is set when posting the code (highlighted above).

 

This really helped smooth out the motion of the simultaneous 4-axis cuts for our machine, hope it can help someone else as well.

Message 9 of 14

26-Taylor
Advocate
Advocate

@erikhardy339 , I don't fully understand what you mean. Can you post some screenshots with more details?

0 Likes
Message 10 of 14

Max_Marz
Advocate
Advocate

Dudedudedudedudedudedudedudedudedudedudedude

Thank you SOOOOO MUCH for posting this tidbit about A axis feedrate. I came to the forums looking for a way to get a rotary toolpath like this to keep a more consistent feedrate/chipload on a similar part. When that heavy depth of cut comes whipping around the bar in the case of your eccentric part I'm sure that was causing you issues, likewise my part with its flat region.  Gonna be trying this forced A axis feedrate immediately. 

Message 11 of 14

26-Taylor
Advocate
Advocate

@Max_Marz , I was pretty excited as well when I figured out the feedrate trick, I'm glad to see it may help you too! 😁

Message 12 of 14

Max_Marz
Advocate
Advocate

Hey man, Don't spose you or anyone else in the room would be willing to take a quick look at my post. 😟👉👈

I tried implementing your edits but my posts structure is slightly different, I believe my properties and property descriptions are in the same blocks of code, did my best to match the syntax already existing in my post but its throwing an error upon posting.

"Error: Error: Mismatching arguments for invocation of 'string VariableImpl.format(Number)' (Value is not a number.)."

I've attached both the stock post as exists on fusion cloud as well as my attempted edit, I'm not *quite* experienced with posts yet to understand what the error is trying to tell me.

 

Property description on line 136 and call on line 1280

.F3d Also attached, Toolpath in question: "Rotary 2(14)" in the Toolpath 4 setup.

Thank you so much, here's some contextual eye candy should you fancy:  https://www.youtube.com/watch?v=cmuFdqhoBrQ

0 Likes
Message 13 of 14

26-Taylor
Advocate
Advocate

@Max_Marz , I'm no JavaScript expert either but I was able to get this working on my end. I think the issue was in how the value from the defined property was being called at line 1280. The "feedOutput.format" is trying to add additional formatting that we don't really need (not sure what the difference between the Haas & Fadal posts is...). For troubleshooting, I found another user property that was an integer type, "sequenceNumberIncrement" and searched the post to see how it was being called. At line 264 I found the "getProperty" call. I gave this method a shot and it seems to be working! I change a few defaults in the properties as well:

  •   130 - Has Rotary Table Value = True
  •   138 - Use Inverse Time Feed Rates = False
  •   1280 - "f.frn = getProperty("fixedRotaryFeed");"

The updated .cps is attached, hope this works!

Message 14 of 14

Max_Marz
Advocate
Advocate

Thank you so much Taylor, and for showing your work too.

0 Likes