Skip to content
grayzuPublic

About

A CNC CAM (Computer-Aided Manufacturing) software application

Resources

Stars

0 stars

Watchers

0 watching

Forks

 
 

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CamForge CNC CAM

CamForge is a portable Python desktop CAM prototype for Windows CNC routing and milling. It is designed around the workflow used by modern CAM tools: import geometry, configure stock, choose tools and machine limits, build separate operations, preview paths, tile work, and export G-code.

Run

python camforge.py

The app uses Tkinter from the Python standard library and the already common packages numpy, Pillow, and matplotlib.

License

CamForge is source-available under the PolyForm Noncommercial License 1.0.0. You may use, study, modify, and redistribute the project for noncommercial purposes, but commercial use, sale, or commercial derivatives are not permitted without a separate license from the copyright holder.

See LICENSE.

Support

This project is free for permitted noncommercial use. Donations are optional and do not grant additional rights beyond the license.

Current Features

  • Import simple DXF vector entities: line, lightweight polyline, circle, and arc.
  • Import STL meshes for raster-style 3D roughing and finishing passes; STEP import is recognized as a planned 3D-kernel feature.
  • Import grayscale heightmap images for 2.5D relief carving.
  • CAM-style workflow rail: import, select features, define toolpaths, simulate, then post/export.
  • Feature selection from the imported vector list or by clicking near vectors in the viewport.
  • Operations remember their selected vector/features when edited.
  • DXF import detects inch/mm-style headers and converts imported geometry into the internal model correctly.
  • 2D Design uses a true top-down 2D orthographic workspace with no Z/height display.
  • 2D Design view is pinned to the stock: (0,0) is bottom-left and the top-right corner is the configured stock size.
  • 3D Preview and Simulation use orthographic 3D projection.
  • Viewport controls: mouse wheel zooms, right-drag rotates 3D views, left-click selects, empty click clears selection, empty drag box-selects, and left-drag on selected vectors moves them.
  • MVP vector controls: move, scale, mirror, rotate, group, and ungroup.
  • Persistent tool library with wood/plastic/light-aluminum router defaults, ballnose tools, and V-bits.
  • Persistent machine profiles with axis limits, rapid feed, spindle RPM bounds, spindle mode, coolant, and post commands.
  • Default machine profile for Sienci Labs AltMill MK2 4x4 with 1.5 kW ER20 spindle.
  • Configurable project units: in or mm, with inches as the default.
  • Stock setup with dimensions, safe Z, and tiling.
  • Multiple independent toolpath operations.
  • Basic tab support for profile-style toolpaths.
  • 2D design, 3D preview, and stock-removal simulation view modes with play/pause/step/scrub controls.
  • Export all operations together, separately, or as tiled G-code files.
  • Preview vectors, stock, tiles, heightmaps, mesh samples, and generated paths.
  • grblHAL-style G-code output suitable as a starting post for AltMill/gSender workflows.

Default AltMill Profile

  • Machine: Sienci Labs AltMill MK2 4x4 - 1.5kW ER20.
  • Travel: X 1265 mm / 49.803 in, Y 1251 mm / 49.252 in, Z 174 mm / 6.850 in.
  • Spindle range: 7,500 to 24,000 RPM.
  • Post preamble: G20 or G21, G90, G17, G94, G54, safe Z, M3 S..., spindle dwell.
  • Post ending: safe Z, M5, M9, M30.

These defaults are editable in the machine profile library.

Intended Workflow

  1. Import DXF vectors, STL models, or a grayscale heightmap. STEP files are acknowledged but deferred to a later implementation pass.
  2. Select vectors/features from the feature list or viewport.
  3. Create an operation from that selection: profile, pocket, engrave/V-carve, inlay, 3D rough/finish, or heightmap relief.
  4. Edit operation parameters such as tool, depth, stepover, allowance, feeds/speeds, and tabs.
  5. Calculate toolpaths and use the simulation controls to inspect stock removal.
  6. Export all operations, separate operation files, or tiled output.

Included Operation Types

  • Profile
  • Pocket
  • V-Carve
  • V-Carve Inlay Female
  • V-Carve Inlay Plug
  • Heightmap Relief
  • 3D Rough
  • 3D Finish

Research-Informed Feature Targets

The first version is shaped by patterns from Carbide Create Pro, Vectric VCarve Pro, Carveco Maker, PixelCNC, Kiri:Moto, Fusion Manufacture, and F-Engrave:

  • Job setup should keep stock, zero, machine, tool, feeds, speeds, and operation order visible.
  • Toolpaths should be individually named, previewed, enabled, disabled, and exported.
  • 3D workflows need separate roughing and finishing strategies.
  • V-carving needs V-bit angle, max/flat depth, and inlay variants.
  • Heightmap and image-based relief carving is important for artistic CNC work.
  • Tiling should export machine-sized sections for projects larger than the cutting area.
  • A setup report and estimated machining time help users catch mistakes before running a CNC.

Useful references:

Important Safety Note

This is a working prototype, not yet production CAM. Always simulate and air-run generated G-code before cutting material. The DXF, mesh, V-carve, inlay, pocket, and 3D engines are intentionally conservative approximations that should be hardened with real-world test cuts and controller-specific post processors.

Next Engineering Milestones

  • Add robust geometry with a library such as ezdxf and polygon offsets/clipping once dependency installation is allowed.
  • Add true medial-axis V-carving and F-Engrave-compatible inlay math.
  • Add controller-specific post processors for GRBL, grblHAL, LinuxCNC, Mach3/4, and ShopBot.
  • Add toolpath containment, tabs/bridges, ramps, lead-ins, rest machining, drilling cycles, and tool-change handling.
  • Add a richer 3D stock removal simulator.

About

A CNC CAM (Computer-Aided Manufacturing) software application

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages