Announcements
Attention for Customers without Multi-Factor Authentication or Single Sign-On - OTP Verification rolls out April 2025. Read all about it here.

Script to create CAM operations with tool and geometry selection

Anonymous

Script to create CAM operations with tool and geometry selection

Anonymous
Not applicable

Hi Folks,

My search here turned up information that the CAM module APIs are not yet mature enough to do create the script I would like.  I am posting this anyway.  Perhaps it's useful as feature request justification.


As I'm sure you are aware, the number of hobbyist router CNC machines is growing. The CAD/CAM software out there for these machines in nowhere near as capable as Fusion 360, but Fusion's capabilities come with a price. The learning curve to make use of features in Fusion is tall and steep. Other programs like Carbide Create, Easel and Aspire hide this complexity behind high level functions. While I do NOT think that dumbing down the Fusion interface is the right strategy, I DO think that adding a few scripts for the most useful of these high level functions would broaden the appeal of Fusion to this somewhat-less-technical market.

 

Example: Carbide Create gets by with only 4 CAM operation types
- Contour: same as 2D Contour in Fusion
- V-Carve: similar to Engrave in Fusion, but no depth control
- Advanced V-Carve: description below
- Texture: 2D Pocket with randomized depth variations

 

I think that the most used high level feature is what Carbide Create calls "Advanced V-Carve". Normal v-carving is the equivalent of the CAM "Engrave" function. It is even more frequently used than Advanced V-Carve, but since it maps directly to Engrave I will skip it here.

 

Advanced V-Carve is a high level CAM function that implements a flat bottomed engrave. It is really the combination of three CAM operations, an engrave with depth control, a 2d pocket operation to hog out the bulk of the flat bottom, and another 2d pocket operation to pick up the finer details that the first pocket operation missed. To set this up in Carbide Create, the user selects the desired geometry, picks the engraving tool, picks the end mill to do the hog-out, and inputs the starting and ending depths (called Start Depth and Flat Depth in Aspire or Starting Depth and Max Depth in Carbide Create). To set this up in Fusion 360 the user has to create each operation separately, input the same geometry for each operation, set the starting and ending depths for each operation, calculate and enter Stock to Leave for the two pocket operations, and calculate & enter the Rest Machining for the more detailed pocket operation. Not only is the Fusion interface far more complex, but so are the needed manual calculations.  At best this is tedious and error prone.

 

That is not very user friendly. A script that took the five inputs and output the three operations with the trigonometric math pre-calculated would go a long way to making this easier. I think it would really raise the appeal of Fusion 360 to this market, and assuming the Fusion API set includes appropriate functions, should not be too hard to code up.


API Requirements
- Ability to choose geometry
- Ability to choose tools
   - requirement: needs to be able to select and manage two different tools at once
   - optional: filter selection to appropriate tool types
- Ability to create CAM Engrave & 2D Pocket operations and fill in specific parameters
- Ability to do trigonometric math on user entered values
   - E.g., Stock to Leave = tan(Math.PI/180*tool_taperAngle)*(User_MaxDepth-User_StartingDepth)

 

General Flow
- Present a dialog to capture user input (StartDepth, FlatDepth, Tool#1, Tool#2, geometry)
- Create 2D Pocket Op with all default values except
   - Op_Tool = Tool#1 (typ End Mill)
   - StockToLeave = Enabled
   - Radial = tan(Math.PI/180*Tool#2.tool_taperAngle)*FlatDepth
   - Axial = 0
   - Op_Geometry = geometry
   - TopHeight = Selected Contours, Offset = -StartDepth
   - BottomHeight = TopHeight, Offset = -FlatDepth
- Create Engrave Op with all default values except
   - Op_Tool = Tool#2 (typ V-Bit)
   - Op_Geometry = geometry
   - TopHeight = Selected Contours, Offset = -StartDepth
   - BottomHeight = TopHeight, Offset = -FlatDepth
- Create 2D Pocket Op with all default values except
   - Op_Tool = Tool#2
   - StockToLeave = Enabled
   - Radial = tan(Math.PI/180*Tool#2.tool_taperAngle)*-StartDepth
   - Axial = 0
   - RestMachining = Enabled,
      - ToolDiameter = Tool#1.tool_diameter + 2*tan(Math.PI/180*Tool#2.tool_taperAngle)*FlatDepth
   - Op_Geometry = geometry
   - TopHeight = Selected Contours, Offset = -StartDepth
   - BottomHeight = TopHeight, Offset = -FlatDepth
   - Check to make sure ToolTipDiameter (and therefore stepover) is non-zero
- End Script

 

I am not a coder, but have hacked together a script that can create everything except the tool and geometry selections.  I've searched the docs and this forum but have not found what I need for those.  If I'm wrong and this is possible, someone please educate me.  Otherwise please take this as a feature request.

Thanks.

 

0 Likes
Reply
631 Views
2 Replies
Replies (2)

BrianEkins
Mentor
Mentor

You're correct that the functionality to specify geometry and tools is not yet exposed through the CAM API.  I know the CAM team is well aware of this and is planning to address this but I don't know when.  Hopefully, not too much longer.

---------------------------------------------------------------
Brian Ekins
Inventor and Fusion 360 API Expert
Website/Blog: https://EkinsSolutions.com
0 Likes

Anonymous
Not applicable

Thanks Brian.  I appreciate the confirmation. 

 

In the mean time, I have a good start on a script that does 80% of the job.  It creates the operations.  It even fills in the hard math based on user selections of fake tools.  Of course the operations are broken since they don't have real tool or geometry selections, but the user can go back and fill those in if they are careful (i.e. don't select a 1/4" fake tool, then fill in with a 1/8" real tool).  That's a pretty fragile solution, but it works as a proof of concept.

 

I will be eagerly waiting for when the needed APIs are available.

 

1 Like