Script to create CAM operations with tool and geometry selection

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
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.