Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[CAM] VCarve improvements #14093

Merged
merged 9 commits into from
May 28, 2024
Merged

[CAM] VCarve improvements #14093

merged 9 commits into from
May 28, 2024

Conversation

phaseloop
Copy link
Contributor

@phaseloop phaseloop commented May 17, 2024

Rework of Vcarve operation to include features mostly available in commercial software of this kind. Those features are used to drastically improve carved surface quality (especially on smaller and less rigid CNC machines) and increase carving speed up to 50%.

  1. Step down - carve in small increments (similar to other CAM operations). Each depth steps are grouped by surface to limit X/Y movements.
  2. Finishing pass - run last path again (with optional offset) to remove fuzzy skin and/or other imperfections
  3. Head movement optimization - do not lift and reposition head (G0 command) if start of next edge is withing 0.5 mm XY distance. This makes whole operation at least 50% faster with negligible loss of edge precision.
  4. debugVoronoi method to render all voronoi paths used in path generation for debugging purposes.

Discussion and photo examples:

https://forum.freecad.org/viewtopic.php?t=87475

@github-actions github-actions bot added the WB CAM Related to the CAM/Path Workbench label May 17, 2024
@sliptonic
Copy link
Member

This looks good to me. Please disable the debug for production merge

@sliptonic sliptonic self-assigned this May 20, 2024
@phaseloop
Copy link
Contributor Author

phaseloop commented May 22, 2024

This looks good to me. Please disable the debug for production merge

Fixed - thanks!

(edited previous comment: Did some benchmarking with cProfile and Path.Log.debug() stack parsing it may not be such a big issue after all).

Added a new commit with simple _caller() caching to have at least slight performance improvement that will be merged into FreeCAD 1.0:

4abafa1

@sliptonic sliptonic merged commit 888ffcf into FreeCAD:main May 28, 2024
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
WB CAM Related to the CAM/Path Workbench
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants