https://github.com/vygr/go-pcb
Go PCB autorouter
https://github.com/vygr/go-pcb
Last synced: about 1 year ago
JSON representation
Go PCB autorouter
- Host: GitHub
- URL: https://github.com/vygr/go-pcb
- Owner: vygr
- License: gpl-2.0
- Created: 2014-12-24T12:34:15.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2015-07-16T15:07:20.000Z (about 11 years ago)
- Last Synced: 2025-06-14T05:02:50.386Z (about 1 year ago)
- Language: Go
- Homepage:
- Size: 1.5 MB
- Stars: 9
- Watchers: 3
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README
- License: LICENSE
Awesome Lists containing this project
README
Go-PCB
======
Go PCB router and solver.
Example command lines would be:
go run pcb.go --v 1 netlist.pcb | go run view.go --o 1 --s 7
go run dsn2pcb.go test1.dsn | go run pcb.go --v 1 --z 8 --q 10 --r 2 | go run view.go
You can drop the output to a file and view it as an animation with:
go run pcb.go --v 1 netlist.pcb 1 > anim
go run view.go anim
-h or --help for help on either app.
Format of .pcb input file or stdin is:
[width, height, depth]
[track_radius, via_radius, track_gap, [(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 viewer input is similar but has the track paths appended and the gaps removed:
[width, height, depth]
[track_radius, via_radius, track_gap, [(terminal_radius, terminal_gap, (x, y, z), [(x, y), ...]), ...]...], [(x, y, z), ...]]