Alternative to standard Fusion 360 post-processing and removal of Personal license restrictions
- Table of Contents
- Overview
- Key Features
- Technical Constraints**
- Installation & Usage
- Roadmap
- XML cycle tests
- License & Disclaimer
SmartPost bridges the gap between Fusion 360 Personal and commercial CAM capabilities by leveraging the undocumented XML post-processing pipeline. This add-in provides:
SmartPost enhances Fusion 360 capabilities by delivering:
- Full toolchange operations output (restricted in Personal license)
- No Watermarks (restricted in Personal license)
- Simplified NCPrograms interface alternative (first-ever implementation for Fusion 360)
- G-code generation using any Fusion 360 postprocessors (standard .cps files)
- Extensibility and open platform (customizable for various workflows and third-party integrations)
⚠️ Technical foundation: utilizes post.exe engine via xml.cps intermediate files.
| Feature | Commercial | Personal |
|---|---|---|
| Automatic Tool Changes | ✅ Full support | ✅ Unlimited tools |
| 3 axis milling | ✅ Full support | ✅ Any .cps compatible |
| User comments | ✅ Full support | |
| Drilling Cycles | ✅ Full support | ✅ Canned cycles through the selected .cps |
| 2 axis turning | ✅ Full support | ❌ Not supported yet |
| Manual NC | ✅ Full support | ❌ Not supported yet |
| Rapid moves | ✅ Full support | |
| Probing | ✅ Full support | ❌ Not supported yet |
| 3+2 axis milling | ✅ Full support | ❌ Not supported yet |
-
Legend:
- ✅: Fully supported
⚠️ : Partially supported (with limitations)- ❌: Not supported yet
-
Canned drilling cycles: The current
xml_last.cpspreserves grouped cycle data through the Autodesk XML importer. Standard downstream posts can generate native cycles such as G81, G83, G84, G86, and G87 when supported by the selected postprocessor. The legacyxml.cpsremains available for compatibility and expands cycles into basic moves. -
Limitations in Fusion 360 XML Post-Processing: Autodesk Post Engine 5.388.0 still fails to import grouped
circular-pocket-millingandthread-millingoperations, and turning sections are not restored as turning sections. These limitations do not affect the verified drilling-cycle round-trip. -
Section type diagnostics:
xml_last.cpsprovides the optionaldiagnosticSectionTypeproperty. When enabled, it logs the sourcecurrentSection.typereceived from Fusion without adding diagnostic records to the XML. The property is disabled by default and can be enabled for a directpost.exerun with:--property diagnosticSectionType true
SmartPost Final G-code in 2 Stages:
-
Fusion 360:
- Uses
xml.cpsfor post-processing. Thexml.cpsfile contains configuration settings specific to the machine and tool operations. - Fusion 360 CAM generates intermediate XML files that contain machining data. These intermediate files are then merged into one final file.
- Uses
-
post.exe:
- The external post-processor for Fusion 360 takes the generated
.xmland.cpsfiles as input. - It processes these files and creates the final machining instructions, which are then used to generate the correct G-code for the CNC machine.
Loadinggraph LR A(Fusion 360 CAM) --> B{xml.cps} B --> C(post.exe + any .cps post) C --> D((G-code)) - The external post-processor for Fusion 360 takes the generated
SmartPost can run any selected .cps, but every downstream post receives
sections reconstructed by the Autodesk XML importer rather than native Fusion
sections. Post implementations that repeatedly call
Section.getProperty() or Section.getParameter() can therefore be much
slower through SmartPost, even when the same post processes native CNC
intermediate data quickly.
This limitation is not specific to Fanuc and can affect any downstream post that uses section-scoped property or parameter lookup. A confirmed example with Autodesk Post Engine 5.388.0 is the Autodesk Fanuc revision 44236:
Old Fanuc revision + XML: 0.295 s
New Fanuc revision + XML: 29.897 s
New Fanuc with old initializeSmoothing + XML: 0.188 s
New Fanuc revision + native CNC intermediate: 1.187 s
The regression is caused by the newer initializeSmoothing(_section) using
_section.getProperty() and _section.getParameter(). Passing
--property useSmoothing -1 does not avoid those lookups. Options such as
--noprogress, --quiet, --nointeraction, --noworkmapping, and --format
do not fix the XML-section performance issue.
Recommended workarounds:
- Use a previous compatible revision of the selected post until its vendor fixes XML-imported Section access.
- Post authors can use global
getProperty()/getParameter()when the intended target iscurrentSection, after verifying behavior for native and XML intermediate inputs. - Compare both paths with the same toolpath before upgrading a production
post. The diagnostic script is
tmp/test-fanuc-performance.py.
SmartPost never modifies or temporarily patches a user-selected .cps.
- Download latest
.ziprelease. - Extract the archive.
- Copy the add-on folder to the following directory:
%appdata%\Autodesk\Autodesk Fusion 360\API\AddIns. - Open Fusion 360.
- Press
Shift + Sor go to Tools → Scripts and Add-Ins. - In the upper part of the window, click on the plus (
+). - In the Add-Ins dialog, choose
Link an App from Localto load your add-on directly from a local folder. Navigate to the folder where your add-on is located and select it. - Select the add-on from the list and click
Run. - To have the add-on run automatically at startup, check the
Run on Startupbox.
- SmartPost works only on Windows.
- If the AddIns folder doesn't exist, create it manually.
- If the add-on doesn't run, try restarting Fusion 360.
SmartPost default settings are in the config.py file:
Planned improvements for future releases.
Improve support for the intermediate XML workflow, including:
- 2D turning operations
- Manual NC code insertion
Current limitation: Autodesk Post Engine 5.388.0 does not preserve
Section.typewhen processing the intermediate XML format. The XML importer does not parse attributes on<section>, so turning sections are reconstructed as the defaultTYPE_MILLING.As a result, proper turning support cannot be implemented in
xml_last.cpsalone.
- Extend the list of configurable postprocessor parameters
Community contributions are welcome. See CONTRIBUTING.md for development guidelines.
Found a bug? Open an Issue
The PowerShell scripts in scripts exercise the complete XML
round-trip without modifying the selected downstream .cps file. They can test
both xml_last.cps and the legacy xml.cps against Autodesk Post Utility
.cnc datasets. See scripts/README.md for commands and
expected output.
This project is licensed under the MIT License - see the LICENSE.md file for full details.
Key points:
- ✅ 100% legal (uses official Fusion 360 APIs)
- ❌ Not affiliated with Autodesks
⚠️ Not a replacement for commercial licenses
"SmartPost demonstrates what Fusion 360 Personal could be — limitations are imposed by Autodesk, not the technology."
Let's connect!
Email: maestrofusion360@gmail.com Telegram: @MaestroFusion360



