freecad/kiconnect | ||
CMakeLists.txt | ||
LICENSE | ||
MANIFEST.in | ||
pyproject.toml | ||
README.md | ||
setup.py |
KiConnect
KiCAD 9 API Workbench
What works
- Create board
- Add Vias
- Add footprint pads
- Import footprint 3d models
- Reload outline after changed in KiCAD
- Can be used in FreeCAD Assemblies
In Progress / To be ported
Tracks
Tracks can be loaded and drawn as simple LineSegment
but more work is needed to draw properly 'widthed', and particularly whilte trying to eliminate overlapping lines.
More Pad Shapes
Only rectangle get drawn right now, would like to figure out how to get Sketcher to do the heavy lifting
Sync to KiCAD
In theory this code is mostly working but there seems to be an issue in kicad-python
Plans
Add more board features
Currently refactoring similar objects to common base class, this will enable easily including other board elements (text, graphics, )
Package as proper FreeCAD add-on
Mutliboard support
Hope to support this one of several ways, depending on the future of KiCAD/API
- KiCAD supports multi-document, API include
get_boards()
kicad-cli
supports full API, spin up instances as needed- Manually switch between KiCAD projects and import new boards
- socker-per-project but this seems messy
Panelization
In it's most basic form, this will probably utilize kikit
to assist in basic panelization but in multiboard projects it will assist in panelizing differnt boards into one panel.
Syncronize all the things!
Syncing selections is fairly straight forward, but long term it would be awesome to have everything sync as their changed.