Code Monkey home page Code Monkey logo

flatcam's Introduction

FlatCAM β (c) 2024.4

FlatCAM β Based on

  • FlatCAM BETA (c) 2019 by Marius Stanciu
  • 2D Computer-Aided PCB Manufacturing by (c) 2014-2016 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.

Example of PCB Isolation Routing from Gerber (.gbr) file to CNC G-Code (.nc) file:

1-2 Open Gerber (.gbr) file.
3 Double click .gbr file in Project tab panel.
4 Click "Isolation Routing" button.
5 Click "Generate geometry" button.
6 Click "Generate CNCJob object" button.
7-8 Save CNC G-code (.nc) file.

Isolation Routing

Installation instructions

Windows portable installation

This installation contains Python with installed packages and Qt binaries.

Note: Python 3.10 supports Windows 8.1 and newer.

Versions requirements

  • Python 3.10
  • PyQt5
  • See pyproject.toml file for version dependency (or requirements.txt file)
  • Use a strictly versions of Python and packages

See more on GitHub:

Installation

1. Python installation

See Python downloads.

2. Get pip

See Pip documentation to get pip.

3. Python packages installation

3.1. Linux

Install Python packages:

python -m pip install --disable-pip-version-check --no-deps --ignore-installed -r requirements.txt

3.2. Windows

Download and install:

Set environment variables:

  • Add python to Path variable; example: Path=C:\Users\IEUser\AppData\Local\Programs\Python\Python310;%Path%
  • Add Qt to Path variable; example: Path=C:\Users\IEUser\Downloads\msvc2019_64\bin;%Path%
  • Add variable QT_QPA_PLATFORM_PLUGIN_PATH for Qt plugins path; example: QT_QPA_PLATFORM_PLUGIN_PATH=C:\Users\IEUser\Downloads\msvc2019_64\plugins\platforms

Install Python packages with PyQt5 windows version and pywin32 package.

python -m pip install --disable-pip-version-check --no-deps --ignore-installed -r requirements_windows.txt

Debian/Ubuntu instructions

So, according to strictly dependency graph and new version of Debian pip (disallow to install packages to system Python environment, for example Kubuntu 23.04), project moved to automated version control:

  • pyenv - for install to Python version environment
  • poetry - for packages install to Python virtual environment. See pyproject.toml file

pyenv usage

Install pyenv:

curl https://pyenv.run | bash

Add pyenv to interactive console. Add lines to .bashrc:

# pyenv
export PYENV_ROOT="$HOME/.pyenv"
command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

Show available python versions to download and install:

pyenv install --list

Install python (for example, 3.10.11, see pyproject.toml file for python version requirements):

pyenv install 3.10.11
# show installed python versions:
pyenv versions

Switch to Python version:

pyenv local 3.10.11
# or set global version (this not affect the system Python):
pyenv global 3.10.11

poetry usage

Install poetry:

curl -sSL https://install.python-poetry.org | python3 -

Install python environment (packages) according to pyproject.toml file:

poetry install
# list all python environments:
poetry env list

For spetial cases it possible export poetry lock file to requirements.txt file for pip usage:

cd FlatCAM
poetry update
poetry export -f requirements.txt --output requirements.txt
python -m pip install --disable-pip-version-check --no-deps --ignore-installed -r requirements.txt

Developer tools installation

Kubuntu 24.04:

sudo apt install pyqt5-dev-tools

Run

python FlatCAM.zip

Get command-line help:

python FlatCAM.zip -h
usage: FlatCAM.zip [-h] [--shellfile SHELLFILE] [--shellvar SHELLVAR] [--headless] [-V] [misc ...]

2D Computer-Aided PCB Manufacturing for CNC

positional arguments:
  misc                  commands: quit, exit, save; file path: .FlatPrj, .FlatConfig, .FlatScript, .TCL

options:
  -h, --help            show this help message and exit
  --shellfile SHELLFILE
  --shellvar SHELLVAR
  --headless
  -V, --version         show version

Usage examples:
FlatCAM.zip --shellfile=<cmd_line_shellfile>
FlatCAM.zip --shellvar=<1,'C:\path',23>
FlatCAM.zip --headless

flatcam's People

Contributors

vika-sonne avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.