(c) 2014-2015 Juan Pablo Caram
FlatCAM is a program for preparing CNC jobs for making PCBs on a CNC router. Among other things, it can take a Gerber file generated by your favorite PCB CAD program, and create G-Code for Isolation routing.
============================================
This fork has been ported from Python 2.7 / PyQt4 to Python 3 / PyQt5 with the following updates:
- Python 3 syntax and standard library (print functions,
except as,io.StringIO,tkinter,urllib.request/parse,html.escape, integer division, etc.) - PyQt5 with
QtWidgets/QtGui/QtCoresplit, new-style signals/slots, updatedQFileDialogAPI - Shapely 2.0+ compatibility (
.geomsfor multi-geometry iteration,unary_union, immutable coordinates) - VisPy 0.9+ with conditional monkey-patches for modern API
- NumPy 2.0+ compatibility (
numpy.inf) - Light Fusion Qt style override for consistent icon visibility across desktop themes
- Smart file-type auto-detection on the toolbar Open button
Download standalone executables from the Releases page:
- Linux -
FlatCAM-vX.Y-linux-x86_64.tar.gz(extract and run./FlatCAM) - Windows -
FlatCAM-vX.Y-windows-x86_64.zip(extract and runFlatCAM.exe) - Arch/Manjaro -
flatcam-X.Y-1-x86_64.pkg.tar.zst(install withsudo pacman -U flatcam-*.pkg.tar.zst, then runflatcam)
- Python 3.8+
- PyQt5 >= 5.15
- VisPy >= 0.9
- Shapely >= 1.7.1
- NumPy, SciPy, Matplotlib, Rtree, svg.path, simplejson
pip3 install -r requirements.txtpython3 FlatCAM.pyTested on Manjaro 26.2.
# All tests
python3 -m unittest discover tests
# Single test file
python3 -m unittest tests.test_excellon
python3 -m unittest tests.test_gerber_flow
# Tcl command tests
python3 -m unittest discover tests/test_tclCommandspip install pyinstaller PyOpenGL PyOpenGL-accelerate
pyinstaller flatcam.spec --noconfirmThe standalone executable is created in dist/FlatCAM/.
makepkg -s
sudo pacman -U flatcam-*.pkg.tar.zstpython make_win32.py build============================================
- "Clear non-copper" feature, supporting multi-tool work.
- Groups in Project view.
- Pan view by dragging in visualizer window with pressed MMB.
- OpenGL-based visualizer.


