1
0
Fork
You've already forked KiConnect
0
forked from kiconnect/KiConnect
FreeCAD Workbench to integrate KiCAD v9 API
  • Python 84.3%
  • Shell 12.9%
  • CMake 2.8%
Find a file
2025年09月22日 22:43:17 +02:00
freecad/kiconnect big refactor of polygon references in Boards and feature references in API 2025年07月10日 14:18:27 -07:00
images rename screenshot 2025年04月08日 14:21:57 -07:00
.gitignore .gitignore 2025年05月01日 18:47:30 -07:00
CMakeLists.txt boilerplate, build/config, legal, not sure what all is even needed 2025年03月28日 23:09:29 -07:00
LICENSE boilerplate, build/config, legal, not sure what all is even needed 2025年03月28日 23:09:29 -07:00
MANIFEST.in boilerplate, build/config, legal, not sure what all is even needed 2025年03月28日 23:09:29 -07:00
pyproject.toml boilerplate, build/config, legal, not sure what all is even needed 2025年03月28日 23:09:29 -07:00
README.md README.md: Fix typo 2025年09月22日 22:43:17 +02:00
setup.py update to latest kicad-python to support sync >to> KiCAD, needs KiCAD 9.0.2 2025年03月31日 12:47:27 -07:00

KiConnect

KiCAD 9 API Workbench

screenshot of FreeCAD, KiCAD and KiCAD 3d View

What works

  • Create board
  • Bidirectional syncing
  • Add Vias
  • Add footprint pads
  • Import footprint 3d models
  • Reload outline after changed in KiCAD
  • Push outline back to KiCAD (requires KiCAD 9.0.2)
  • Can be used in FreeCAD Assemblies

Usage during development

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 while 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

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 different 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.