Home - sliptonic/FreeCAD GitHub Wiki
FreeCAD Path Workbench Development Wiki
Developer notes, architecture documentation, and planning for FreeCAD's CAM workbench
Core Architecture Concepts
Understanding the design philosophy and structure:
- Intent vs Strategy - How user intent maps to operations and path generators
- Operation Class Hierarchy - Mermaid diagrams of operation inheritance
- Shape Taxonomy - Spot, Line-Following, Area, Face Decoration geometry types
- Postprocessing Pipeline - G-code generation architecture
- Machines - Representation of physical CNC equipment
Developer Guides
Practical guides for extending Path:
- Creating Operations - File checklist, CMakeLists, InitGui registration
- Creating Dressups - When and how to create path modifications
- Creating Machines - What is shipped with FreeCAD and what is left to the user
- Creating Postprocessors - Machine-specific G-code generation
- Task Panel Design - UI/UX guidelines
API Reference
Function and class documentation:
- PathArea API Reference - add(), makeOffset(), makePocket(), makeSections()
- PathArea Complete Guide - Comprehensive libarea/ClipperLib documentation with examples
- fromShapes() Function - Shape-to-Path conversion parameters
- libarea/Clipper Notes - Boolean operations and ClipperLib integration
Implementation Status
Current state and known refactoring needs:
- Operations Status - What exists today, architectural inconsistencies, refactoring notes
- Dressups Status - Feature matrix and consolidation opportunities
- Generators Status - Current generators and needed functionality
Quick Reference
| I want to... | Read this... |
|---|---|
| Understand Path architecture | Intent vs Strategy |
| Create a new operation | Creating Operations |
| Modify toolpaths | Creating Dressups |
| Generate G-code for new machine | Creating Postprocessors |
| Work with polygon offsetting | PathArea API |
| Understand operation class hierarchy | Operations Status |
About This Wiki
This is a living development wiki containing:
- Architectural documentation
- Planning notes and WIP content
- Developer guidance and checklists
- Implementation status and refactoring plans
Separate user-facing documentation will be created later following the Diátaxis framework.
Note: See Archive/ for historical/project-specific content.