https://github.com/vygr/python-pcb
Python PCB autorouter
https://github.com/vygr/python-pcb
Last synced: 9 months ago
JSON representation
Python PCB autorouter
- Host: GitHub
- URL: https://github.com/vygr/python-pcb
- Owner: vygr
- License: gpl-2.0
- Created: 2014-12-23T09:57:33.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2015-07-16T19:05:40.000Z (about 11 years ago)
- Last Synced: 2025-03-18T16:40:29.756Z (over 1 year ago)
- Language: Python
- Homepage:
- Size: 574 KB
- Stars: 24
- Watchers: 2
- Forks: 11
- Open Issues: 3
-
Metadata Files:
- Readme: README
- License: LICENSE
Awesome Lists containing this project
README
Python-PCB
==========
Python PCB router and viewer.
There are two viewer apps, view.py requires aggDraw module to be installed, view_mpl.py
requires matplotlib module to be installed. The matplotlib viwer is much more heavyweight
than the former.
Example command line would be:
pypy pcb.py --v 1 netlist.pcb | python view.py
You can drop the output to a file and view it as an animation with:
pypy pcb.py --v 1 netlist.pcb > anim
python view.py anim
-h or --help for help on either app.
Format of .pcb input file or stdin is:
[width, height, depth]
[track_radius, via_radius, gap_width, [(terminal_radius, terminal_gap, (x, y, z), [(x, y), ...]), ...]...]
You can stop a netlist early by just putting:
[]
For example:
[width, height, depth]
[track_radius, via_radius, track_gap, [(terminal_radius, terminal_gap, (x, y, z), [(x, y), ...]), ...]...]
[track_radius, via_radius, track_gap, [(terminal_radius, terminal_gap, (x, y, z), [(x, y), ...]), ...]...]
[]
[track_radius, via_radius, track_gap, [(terminal_radius, terminal_gap, (x, y, z), [(x, y), ...]), ...]...]
[track_radius, via_radius, track_gap, [(terminal_radius, terminal_gap, (x, y, z), [(x, y), ...]), ...]...]
Format of the view.py input is similar but has the track paths appended:
[width, height, depth]
[track_radius, via_radius, track_gap, [(terminal_radius, terminal_gap, (x, y, z), [(x, y), ...]), ...]...], [(x, y, z), ...]]