KiBot/README.md

88 lines
2.3 KiB
Markdown

# KiPlot
KiPlot is a program which helps you to plot your KiCad PCBs to output
formats easily, repeatable, and most of all, scriptably. This means you
can use a Makefile to export your KiCad PCBs just as needed.
For example, it's common that you might want for each board rev:
* Check DRC one last time (currently not possible)
* Gerbers, drills and drill maps for a fab in their favourite format
* Fab docs for the assembler
* Pick and place files
You want to do this in a one-touch way, and make sure everything you need to
do so it securely saved in version control, not on the back of an old
datasheet.
KiPlot lets you do this.
As a side effect of providing a scriptable plot driver for KiCad, KiPlot also
allows functional testing of KiCad plot functions, which would otherwise be
somewhat unwieldy to write.
## Developing
### Set up a virtualenv (if you installed KiCad normally)
If you installed KiCad from a package manager, or you used `make install`,
you probably have the packages and libraries on you system paths.
```
virtualenv --python /usr/bin/python2.7 --system-site-packages ~/venv/kiplot
```
### Set up a virtualenv (if you installed KiCad locally)
If the `pcbnew` Python package is *not* installed at a system level (e.g. if
you are building locally and not installing to the system, you should not
need any system packages:
```
virtualenv --python /usr/bin/python2.7 ~/venv/kiplot
```
However, you must make sure `pcbnew` is accessible to KiPlot.
You might need to add it to the `PYTHONPATH`.
You might also need to set `LD_LIBRARY_PATH` (you need to be able to load
`libkicad_3dsg.so`).
For example, if you installed in `~/local/kicad`, you might have:
```
export PYTHONPATH=~/local/kicad/lib/python2.7/site-packages
export LD_LIBRARY_PATH=~/local/kicad/lib64
```
### Install KiPlot to the virtualenv
Activate the virtualenv:
```
source ~/venv/kiplot/bin/activate
```
Install `kiplot` with `pip -e`:
```
cd path/to/kiplot
pip install -e .
```
## Testing
There are some tests. Run them with pytest:
```
pytest
```
# TODO list
There are some things that still need work:
* DRC checking - that can't be done over the Python interface yet. If/when
this is added to KiCad, KiPlot will be able to also be used for DRC
functional tests instead of a complex additonal test harness in C++.