Skip to content

Tools to work with PCB data (Gerber, Excellon, NC files) using Python.

License

Notifications You must be signed in to change notification settings

MacroFab/pcb-tools

 
 

Repository files navigation

pcb-tools - unofficial but maintained fork

CI Coverage Docs

Tools to handle Gerber and Excellon files in Python. In the pipeline column output the status of a certain step in github actions workflow

Version Supported Notes
3.7.x Python 3.7 End of Life
3.8.x Python 3.8
3.9.x Python 3.9
3.10.x Python 3.10
3.11.x Python 3.11
3.12.x Python 3.12

Usage Example:

import gerber
from gerber.render import GerberCairoContext

# Read gerber and Excellon files
top_copper = gerber.read('example.GTL')
nc_drill = gerber.read('example.txt')

# Rendering context
ctx = GerberCairoContext()

# Create SVG image
top_copper.render(ctx)
nc_drill.render(ctx, 'composite.svg')

Rendering Examples:

Top Composite rendering

Composite Top Image Composite Bottom Image

Source code for this example can be found here.

Install from source:

$ git clone https://github.com/MacroFab/pcb-tools.git
$ cd pcb-tools
$ pip install -r requirements.txt
$ python setup.py install

Documentation:

PCB Tools Documentation

Development and Testing:

Dependencies for developing and testing pcb-tools are listed in requirements-dev.txt. Use of a virtual environment is strongly recommended.

$ virtualenv venv
$ source venv/bin/activate
(venv)$ pip install -r requirements-dev.txt
(venv)$ pip install -e .

We use pytest to run pcb-tools's suite of unittests and doctests.

(venv)$ pytest

About

Tools to work with PCB data (Gerber, Excellon, NC files) using Python.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.4%
  • Other 0.6%