[KC1]: Merge API, Board and BoardSketch #16

Open
opened 2026-06-18 21:39:37 -04:00 by morgan · 1 comment
Owner

Initially this seemed like the right idea, and there would be a 1 to 1 relationship with a KiConnect Project and its KiCAD board. Turned out there is just a lot of noise cause by this separation. BoardSketch makes called to the API which is turn makes additional calls to Board, creating a mess. The relationship between Board and BoardSketch isn't as bad but there is a significant 'mental overhead' caused by much of this relationship. Most functionality should be merged, anything related to geometry conversion needs to be separated into a new class type, GeometryConverter (ie; KiCADGeometryConverter, ...).

Because this is a bit sprawling issue tag [KC1] will be used in comments to point out code that will be part of this merge.

Initially this seemed like the right idea, and there would be a 1 to 1 relationship with a KiConnect Project and its KiCAD board. Turned out there is just a lot of noise cause by this separation. `BoardSketch` makes called to the `API` which is turn makes additional calls to `Board`, creating a mess. The relationship between `Board` and `BoardSketch` isn't as bad but there is a significant 'mental overhead' caused by much of this relationship. Most functionality should be merged, anything related to geometry conversion needs to be separated into a new class type, GeometryConverter (ie; KiCADGeometryConverter, ...). Because this is a bit sprawling issue tag [KC1] will be used in comments to point out code that will be part of this merge.
Author
Owner

Example:
Board.sync_from just calls BoardSketch.sync_from
BoardSketch has no sync_to, instead it's done in Board.sync_to

Example: `Board.sync_from` just calls `BoardSketch.sync_from` `BoardSketch` has no `sync_to`, instead it's done in `Board.sync_to`
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: morgan/kiconnect#16
No description provided.