Creating a roadmap for CAM development (#22591)

* draft roadmap

* Update README.md

fix links

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* current state

* update

* Update Tool Management.md

drag knife

* Create ADR-003.md

* Update ADR-003.md

* Update ADR-003.md

* Update ADR-003.md

* Update Generators.md

* functionality

* adr-003

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* improve circular holes features

* Update ADR-003.md

Ambiguous term "Safe height" (safe for what?) shall be renamed OpRapidsHeight to indicate its function.

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* relative gcode

* adding tables

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Survey.
Assessment of functionality

* Update Operation Configuration.md

* Update Operation Configuration.md

* Update Job Management.md

array

* Update README.md

short term priorities

* Update README.md

* Update README.md

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Update README.md

* Update README.md

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Update README.md

* Update README.md

* Update README.md

* renaming

* Update ADR-004.md

* Update README.md

* Update README.md

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Update README.md

* Update README.md

ADR update

* Roadmap cleanup.

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* @connor's changes

* Update README.md

* Update Operation Configuration.md

Drilling ops:
Don't ignore user selection on entry. Use auto if no selection.

* Update Operation Configuration.md

Fill in some place holders
Flesh out current state.

* safe operating planes
AR-003

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Update ADR-003.md

language normalized

* Update ADR-003.md

* Remove current state

* Update ADR-002.md

* Update Operation Configuration.md

Retain starting position from hole to hole when set. 
ie retain starting angle on XY plane as determined by first hole. 
Minimising rapids between holes gains nothing over all and leads to rather arbitrary starting on subsequent holes.

* Update Operation Configuration.md

Pocket clearance. Fix and restore Spiral

* recomputes

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Update ADR-005.md

* Update ADR-005.md

* Update Output Generation.md

* Update Simulation and Verification.md

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Update ADR-003.md

title change and cleanup

* Update README.md

ADR3 title change

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Update Operation Configuration.md

* initiatives

* handling user selection draft ADR

* Update Output Generation.md

* update

* epics

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* changes

* cleanup

* meta data on path commands

---------

Co-authored-by: Ian Abreu <z0r0@shurikenlabs.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: J-Dunn <dunn@piments.com>
Co-authored-by: Brad Collette <bradcollette@pop-os.localdomain>
This commit is contained in:
sliptonic
2025-08-09 11:17:34 -05:00
committed by GitHub
parent 2cd1438a61
commit 4e59e3b0f4
12 changed files with 576 additions and 0 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,39 @@
# 🟩 Core Essentials
*Features present or expected in a basic CAM package and necessary to perform the required tasks*
| Feature | Description | Assessment |
| -------------------- | --------------------------------------------------------------- | ---------- |
| G-code Generation | Translate internal tool path to machine-specific G-code dialect | DONE |
| Output Customization | Line numbers, comments, units (G20/G21) | DONE |
| Output review & edit | After the gcode is generated, the user should have the option to review it and edit before saving. They should have the option of editing in an external editor of their choice | Output review is done. Only uses internal editor which is poor |
---
# 🟨 Professional Grade
*Features usually present or expected in the state-of-the-art applications*
| Feature | Description | Assessment |
| ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| Preflight Checks | Catch and flag obvious problems before generating output | Sanity check can catch some errors. Requires running the check manually. |
| Post-Processor Customization | Control modal vs explicit axes, tool change blocks, headers/footers | Customization with flags in the Job output tab. Posts are inconsistent. |
| Advanced Customizatoin | Allow customization of output beyond the trivial. Allow customizing the post with an editing/customization tool | Requires editing the python file.<br>Requires copying the post file to a specific location. Clunky and unintuitive |
| Subprogram Support | Generate G-code with subprograms and subroutines | NONE |
| Setup Page Generation | Instructions, checklists, warnings, and errors for the operator | DONE |
| G-code Decomposition | Break arcs/canned cycles into linear segments or explicit moves | NONE |
| Coordinate Conversion | Convert absolute to relative (G91), center arcs to relative (G91.1) | NONE |
| Coolant Control | Coolant control should be started at the most desirable point to avoid wasting coolant during a tool change or before it is actually needed. | Current coolant control turns on when the TC is loaded. Inefficient |
| Advanced g-code generation | It should be possible to write postprocessors to generate any valid gcode | Some gcode features are not possible |
---
# 🟦 Next-Level CAM
*Features that would exceed industry standard*
| Feature | Description | Assessment |
| ----------------------------- | --------------------------------------------------------- | ---------- |
| On-Machine Inspection | Generate code or triggers for probing/inspection routines | None |
| Multi-File Output | Support splitting G-code into multiple files | LImited |
| Tool Wear Compensation | Output tool wear adjustments via offsets or tables | None |
| Feedback Loop Integration | Closed-loop post processing using machine state | None |
| Direct-to-Machine Fabrication | Reimagine CAM → G-code → Machine as a seamless pipeline | None |

View File

@@ -0,0 +1,25 @@
# 🟩 Core Essentials
*Features present or expected in a basic CAM package and necessary to perform the required tasks*
| Feature | Description | Assessment |
| -------------------- | -------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| Python/Macro Support | Allow scripting or automation via Python or macros | Limited.<br>Some CAM functions require the GUI to be loaded. <br>No examples shipped with FreeCAD.<br>No examples on the wiki |
---
# 🟨 Professional Grade
*Features usually present or expected in the state-of-the art applications*
| Feature | Description | Assessment |
| -------------------- | ------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Parametric Workflows | Operations update automatically in response to model changes | Partial. <br>Recomputes are inconsistent. Sometimes triggered when not needed. Sometimes require manual recompute.<br>Recomputes are inefficient. Cannot, for example, recompute just the dressup or just the finishing pass. |
---
# 🟦 Next-Level CAM
*Features that would exceed industry standard*
| Feature | Description | Assessment |
| ----------------------------- | ----------------------------------------------------- | ---------- |
| Headless Batch Jobs | Run toolpath generation/export without UI interaction | Limited |
| External Workflow Integration | Embed CAM pipeline into other automated systems | None |

View File

@@ -0,0 +1,35 @@
# 🟩 Core Essentials
*Features present or expected in a basic CAM package and necessary to perform the required tasks*
| Feature | Description | Assessment |
| ---------------------- | ------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Toolpath Visualization | Display toolpath in context of model and stock | Done. Arrow indicators on segments are too small to be useful. |
| Toolpath Inspection | Allow user to inspect/explore segments of the toolpath | Done. <br>Inspection shows the raw internal comands for the segments. These commands are not in the correct unit schema and do not reflect the postprocessed code. |
| | | |
---
# 🟨 Professional Grade
*Features usually present or expected in the state-of-the art applications*
| Feature | Description | Assessment |
| ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------- |
| Job Origin Indicator | Visual reference showing origin of the job | Shows in the 3D scene if enabled.<br>Does not show in the simulators. |
| Simulation: Tool & Model | Realistically render tool, stock, and models | Partially done. <br>Tool representation is incomplete. |
| Simulation: Tool Motion | Show representative tool movement.<br>Movement is sufficient to verify the tool path accuracy but does not reflect every movement. For example, may not show every peck movement in a cycle. | DONE |
| Simulation: Material Removal | Show realistic material removal in simulation | DONE |
| Simulation Speed Control | Speed up or slow down simulation for inspection | DONE |
| Collision Detection | Detect collisions between tool, stock, and model | NO |
| Error Detection | Identify common errors like gouging, overcutting, missed areas | NO |
| Consistent UI/UX | The UI scene navigation (pan, zoom, rotate) should follow the application mouse model | Behavior is inconsistent |
---
# 🟦 Next-Level CAM
*Features that would exceed industry standard*
| Feature | Description | Assessment |
| ------------------ | ------------------------------------------------------------------- | ---------- |
| Machine Simulation | Simulation accurately reflects actual machine behavior and movement | |
| Job estimates | Estimates of tool path completion time are accurate to within 1% | |
| | | |

View File

@@ -0,0 +1,28 @@
# 🟩 Core Essentials
*Features necessary to perform the required function*
| Feature | Description | Assessment |
|--------|-------------|------------|
| Define Stock Geometry | Specify size, shape, and orientation of raw material | |
| Model Placement | Position and rotate models within the stock | |
| Set Work Origin | Define the work coordinate system origin | |
---
# 🟨 Professional Grade
*Features present in the state-of-the-art applications and expected*
| Feature | Description | Assessment |
|--------|-------------|------------|
| Define Stock Material | Specify material type (for feeds/speeds, simulation, etc.) | |
| Fixtures/Clamping | Optionally define fixtures or clamping constraints | |
| Machine Envelope Visualization | Show how the job fits within the machine's work volume | |
---
# 🟦 Next-Level CAM
*Features that would exceed industry standard*
| Feature | Description | Assessment |
|--------|-------------|------------|
| *(placeholder)* | *(Add advanced stock/setup ideas here)* | |

View File

@@ -0,0 +1,31 @@
# 🟩 Core Essentials
*Features necessary to perform the required function*
| Feature | Description | Assessment |
|--------|-------------|------------|
| Tool Definition | Define and manage tools such as end mills, drills, inserts | |
| Tool Numbering | Assign tool numbers for G-code output | |
---
# 🟨 Professional Grade
*Features usually present or expected in the state-of-the-art applications*
| Feature | Description | Assessment |
| ------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- |
| Tool Metadata | Define shapes, material, holding, and additional metadata | |
| Feeds & Speeds Suggestions | Recommend cutting parameters based on tool, material, and operation | |
| Tool Import/Export | Synchronize tool definitions with machine or external databases | |
| Tool Libraries | Manage sets of tools as reusable libraries | |
| Probe Tool Definition | Identify probe tools and suppress spindle start | |
| Drag Knife Support | Define drag-knife tool and generate accurate offset-aware toolpaths | |
| Separate tool preparation from tool loading | With larger machines, a tool magazine may take a significant amount of time to index in preparation for a tool change. <br>We should support separating the calls to 'call for a tool' from the call to 'load the tool'. | |
---
# 🟦 Next-Level CAM
*Features that would exceed industry standard*
| Feature | Description | Assessment |
|--------|-------------|------------|
| *(placeholder)* | *(Add cutting-edge tool management or smart tooling features here)* | |