Ultimately my aim is to integrate my SimpleMultiAxisCAM code for 4 and 5 axis CNC machining as a TPG (tool path generator) that post-processes the toolpath generated by another TPG. It shall add the inverse kinematic needed to use the 4th and 5th axis to follow the surface normal. Where that is not possible due to the tool or collet colliding with another point of the part or the machine, it shall try to follow the surface normal as close as possible.
CAM2 notes:'Tool Path Generator' (TPG) include a 'Geometry' setting.
This 'Geometry' setting includes a list of object names from the current file.
cam::Paths accepts these geometry names
looks for those that are based on the Part::Feature class (and hence have a TopoDS_Shape reference).
recursively iterates through the TopoDS_Shape objects until it finds the TopoDS_Edge objects.
It assembles these edges into lists of contiguous edges based on their endpoints.
The Cam::Path class does also allow Cam::Point objects to be contained so that point-based operations such as drilling, tapping, counterbore, boring etc.
Stored these contiguous edges.
represents a single 'curve' (i.e. line, arc, or spline, bezier curve).
- FreeCAD CAM-module sources (/src/Mod/Cam2/)
- FreeCAD CAM project Wiki page
- Design document for CAM2 module
- FreeCAD developer hub
- FreeCAD developer forum
- My SimpleMultiAxisCAM to integrate as a TPG
For new developers:
- CAM2 module introduction
- CAM2 parts of the module
- How features and GUI work in FreeCAD
- Integration of the libarea-clipper CAM library
- first GUI code