Makefile-friendly cross-platform CAM.
- Feature parity with cammill's batch mode
- Circular trochoidal pocket milling
- G2/G3 arc reconstruction
- Linking by small arcs
- Interactive GUI to preview step tree
- Interactive GUI to set tool params
- Stock removal simulation
- Graph of MRR, chipload
- Graph of conventional/climb/slot effective cutting
- Corner optimization (either feedrate reduction, or stepover reduction)
- Force vector calculation (flute helix, non-center-cutting endmill, plus deflection forces)
Statusbase class suitable for CLI or GUI kicks things off and reads configStepbase class with a lightweight__init__and the actual work done in arunmethod (to be done in threads, in parallel).Steps report their progress to theStatus(right now this just logs, but could be used for a progress bar later)- Dotted keys let you relate one phase step to the next one(s), e.g.
0might be to load a dxf, and0.0might be shape identification, and0.0.0and0.0.1might be profile and pocket milling. - Each phase is responsible for queueing the next phase's steps in the
Status.executor - Entry point
python -m timcam.api /path/to/dxf(will save Chrome Trace intrace.outand various step images inpreview/subdir).
- tc0 (lines)
- loader
- fixups (some arc reconstruction, dejumble, etc)
- result: barely-structured/sorted Loop objects
- tc1 (shapes)
- intent (inside/outside/mill/drill)
- depth/operation "layers" (becomes first component of name)
- tool selection
- roughing/finishing
- stock to leave
- result: PolyIntent [with islands]/CircleIntent (becomes second component of name), potentially doubling number of objects
- tc2 (plan)
- voronoi
- machine-generated path arcs (becomes third component of name)
- climb vs conventional
- tc3 (optimization)
- linking
- aircutting removal
- excessive engagement reduction (tell tc2 to reduce stepover for some arcs)
- final arc reconstruction
- tc4 (g-code output, serial?)