Feeds, Speeds & Tool Management
Relevant source files
The following files were used as context for generating this wiki page:
Feeds, Speeds, and Tool Management constitutes a critical initiative within the CAM workbench aimed at automating and optimizing cutting parameters. Historically, users were required to manually enter horizontal feed, vertical feed, and spindle speeds for every Tool Controller in every job, leading to significant UX pain points. The system is transitioning toward a "Resolver + Providers" architecture that allows for automated suggestions based on tool geometry, stock material machinability, and machine capabilities.
The core objective is to integrate FreeCAD's Material Machinability model and dedicated Tool Management structures into the operation flow. This ensures that cutting parameters are not only persisted but also calculated using physics-aware logic or rule-based registries, moving away from purely manual entry.
Sources: Mod/CAM/Roadmap/Epics/FeedsAndSpeeds.md:10-25, src/Mod/CAM/Roadmap/README.md:68-85
Tool Management Architecture
The tool management system distinguishes between the physical geometry of a tool and its runtime application. This is achieved through a hierarchical relationship between Tool Bits and Tool Controllers.
Tool Hierarchy and Definitions
- Tool Bit: Represents the physical cutter, including its geometry (e.g., Endmill, Drill, VBit) and material (e.g., HSS, Carbide). These are stored in
.fctbfiles and can be organized into Tool Libraries. - Tool Controller (TC): A runtime pairing that attaches specific machining parameters (Feeds and Speeds) to a Tool Bit for use in a specific Job. Operations reference the TC rather than the Bit directly.
- Tool Shape: The geometric template used to render the tool and calculate engagement.
Sources: src/Mod/CAM/Roadmap/ADR/ADR-000.md:144-175, src/Mod/CAM/Roadmap/Functionality/Tool Management.md:4-22
Component Relationships
The following diagram illustrates how tools are referenced within a machining project.
Feed & Speed Resolution Logic
The project has adopted a pluggable Resolver + Provider architecture to handle cutting parameter suggestions. This allows the system to consult multiple data sources in priority order to determine the best Feeds and Speeds (F&S).
Resolver Flow
The FeedSpeedResolver is a pure function that takes the tool, material, operation type, and machine context to return a FeedSpeedResult. It consults providers in the following order:
- ToolPresetProvider: Reads presets stored directly on the
ToolBit. - RuleRegistryProvider: Consults
MachiningRuleassets (e.g., vendor-specific catalogs). - MaterialMachinabilityProvider: Uses the stock material's
Machinabilitydata. - FormulaProvider: A last-resort fallback using fundamental relations (e.g.,
rpm = sfm × 1000 / (π × d)).
Sources: Mod/CAM/Roadmap/Epics/FeedsAndSpeeds.md:79-105
Data Structures and Properties
To support the new resolution logic, the Tool Controller and Tool Bit data models have been extended with metadata properties.
| Component | Property | Description |
|---|---|---|
| Tool Controller | OpTypeHint | Enum defining the intended operation category (e.g., Roughing, Finishing). |
| Tool Controller | MaterialHint | Link or name of the material this TC is intended for. |
| Tool Controller | FeedSpeedProvenance | A map tracking the source of each field (e.g., "user", "formula", or asset URI). |
| Tool Bit | Presets | A list of (material, op_type) → values mappings stored in the toolbit file. |
| Machining Rule | Condition | Asset-based criteria (tool ID, coating, workpiece material). |
| Sources: Mod/CAM/Roadmap/Epics/FeedsAndSpeeds.md:106-125 |
Physics-Aware Optimization (Phase 3)
A planned post-stage optimizer considers the physical constraints of the setup.
- Machine Rigidity: Deflection-under-load per axis.
- Spindle Torque Curve: Power limits across the RPM range.
- Setup Stickout: Tool stickout from the chuck influencing deflection.
Sources: Mod/CAM/Roadmap/Epics/FeedsAndSpeeds.md:149-160
Material and Operation Integration
Feeds and Speeds are highly dependent on the Machinability of the stock material. The system leverages the FreeCAD Material workbench, which defines Surface Feet per Minute (SFM) and chipload curves.
Operation Configuration Parameters
Operations retrieve their parameters from the assigned Tool Controller. Key parameters include:
- Horizontal Feed: Lateral movement speed.
- Vertical Feed: Entry/Plunge speed.
- Spindle Speed: Rotational speed in RPM.
- Step Over: Radial increment perpendicular to the tool axis.
- Step Down: Axial increment along the tool axis.
Sources: src/Mod/CAM/Roadmap/Functionality/Operation Configuration.md:7-15, src/Mod/CAM/Roadmap/ADR/ADR-000.md:95-115
Conclusion
The Feeds, Speeds & Tool Management system provides the framework necessary for professional-grade CNC workflows. By separating physical tool definitions from runtime controllers and implementing a multi-provider resolver, the workbench reduces manual data entry and provides verifiable cutting suggestions grounded in material science and machine physics.
Sources: src/Mod/CAM/Roadmap/README.md:18-28, Mod/CAM/Roadmap/Epics/FeedsAndSpeeds.md:218-220