Autodesk Fusion 360 exports its tool libraries as structured JSON documents. These files act as a comprehensive database of tools, tool-holders, and their associated cutting data (feeds and speeds) used for CNC machining operations.
This reference document outlines the schema of the Fusion 360 .json export (such as the BROTHER SPEEDIO ALUMINUM.json sample) specifically to support the data mapping required for the daily Plex API synchronization.
Core Principle: The Fusion 360 tool library files are the absolute Source of Truth for what dictates Plex tooling.
In standard manufacturing resource planning, tooling data is tracked hierarchically. The script will map the Fusion JSON data to accommodate this flow in Plex:
- Purchased Consumables: The tools themselves (e.g., end mills, drills) are purchased parts tracked via POs.
- Tool Assemblies: Consumables are placed into tool assemblies (with their appropriate holders).
- Routing / Operations: Tool Assemblies are mapped to manufacturing operations.
- Jobs: When an operation is executed on the shop floor, it generates a Job.
- Manufactured Parts: The end result of the Job, fully tracing the tooling consumable wear/usage straight through to the physical product built.
The JSON document uses a simple root structure containing a single "data" array. Each item within the array is a discrete object representing either a cutting tool or a tool holder.
{
"data": [
{ /* Tool Object */ },
{ /* Holder Object */ },
...
]
}A quick scan of the BROTHER SPEEDIO ALUMINUM.json file reveals 28 total entries, distributed across the following classifications ("type"):
flat end mill(12)holder(6)bull nose end mill(4)drill(2)face mill(1)form mill(1)slot mill(1)probe(1)
For synchronizing with the master tooling inventory in Plex, the following properties within a tool object are the most critical data points for extraction:
| JSON Property | Type | Description / Plex Relevance |
|---|---|---|
guid |
String | A GUID representing this specific definition. Useful as an external reference key to prevent duplicating tools in Plex. |
type |
String | Classifies the tool (e.g., flat end mill). Determines the item sub-category in Plex. |
description |
String | A human-readable title (e.g., "5/8x4x1-3/4 in SQ. END"). Maps to the part/item description in the Master Inventory. |
product-id |
String | The vendor's part number (e.g., "990910"). Crucial for exact matching and inventory lookups in Plex. |
vendor |
String | Manufacturer name (e.g., "HARVEY TOOL", "Garr Tool"). |
unit |
String | Unit of measurement (inches or millimeters). |
BMC & GRADE |
String | Base Material Characterization, representing the tool material (e.g., "carbide"). |
The geometry object holds physical dimensions, useful if Plex tracks detailed tooling specs:
NOF: Number of Flutes (e.g.,2,4).DC: Cutting Diameter.OAL: Overall Length.LCF: Length of Cut (Flute Length).
The post-process object defines data directly related to how the machine interfaces with the tool. This is critical for updating Workcenter Documents in Plex:
number: The physical pocket/turret number the tool is assigned to on the machine. This must be synced correctly to the Workcenter.length-offset&diameter-offset: Machine offsets.
Contains operational parameters like Spindle Speed (n), Plunge Feed (v_f_plunge), and Cutting Feedrate (v_f). This is generally more relevant to the CAM programmer but could be tracked in Plex as standard operational guidelines.
Tool holders exist in two ways within the dataset:
- As standalone objects in the root
"data"array ("type": "holder"). - Embedded directly within a tool object (
"holder": { ... }).
Holders are primarily defined by their arrays of "segments", detailing the stepped geometry of the holder for collision detection in Fusion 360. Unless Plex actively manages holder inventory or assembly tracking, these standalone holder objects may be skipped during the midnight sync.
When developing the Node.js/PowerShell script to execute the daily Plex push:
- Load the JSON from the network share (The Source of Truth).
- Filter the
dataarray fortype != "holder"(focus on the cutting tools). - Extract & Create Consumables: Map attributes like
product-idandvendorto query the Plex Master Tooling List for the purchased part. If it does not exist, trigger a creation API endpoint. - Create Assemblies: Programmatically construct the Tool Assembly in Plex and link the newly minted consumable tooling part to this assembly.
- Workcenter & Job Linkage: Map the
post-process.numberto push the setup into the Plex Workcenter Document, guaranteeing the tool assembly flows correctly into the Routing, to the Job, and finally to the Manufactured Part.