Some checks are pending
CI / Lint and Format (push) Waiting to run
CI / Test Python 3.11 on macos-latest (push) Waiting to run
CI / Test Python 3.12 on macos-latest (push) Waiting to run
CI / Test Python 3.13 on macos-latest (push) Waiting to run
CI / Test Python 3.10 on ubuntu-latest (push) Waiting to run
CI / Test Python 3.11 on ubuntu-latest (push) Waiting to run
CI / Test Python 3.12 on ubuntu-latest (push) Waiting to run
CI / Test Python 3.13 on ubuntu-latest (push) Waiting to run
CI / Security Scan (push) Waiting to run
CI / Build Package (push) Blocked by required conditions
Label collision detection: resolve_label_collision() shifts different-net labels that share the same (x,y) coordinate by 1.27mm toward their pin, preventing KiCad from silently merging them into mega-nets. Integrated at both label placement points in apply_batch. Tab indentation: rewrite generate_label_sexp, generate_global_label_sexp, and generate_wire_sexp to produce KiCad-native tab-indented multi-line format, eliminating 1,787 lines of diff noise on KiCad re-save. Intersheetrefs property now uses (at 0 0 0) placeholder. Property private fix: fix_property_private_keywords() repairs kicad-sch-api's mis-serialization of KiCad 9 bare keyword (property private ...) as quoted (property "private" ...), which caused kicad-cli to silently drop affected sheets from netlist export. 243 tests pass, ruff + mypy clean.
34 lines
1.5 KiB
Markdown
34 lines
1.5 KiB
Markdown
# Message 008
|
|
|
|
| Field | Value |
|
|
|-------|-------|
|
|
| From | mckicad-dev |
|
|
| To | esp32-p4-schematic-project |
|
|
| Date | 2026-03-06T16:30:00Z |
|
|
| Re | Collision detection + tab indentation — both in progress |
|
|
|
|
---
|
|
|
|
133/133 confirmed. Good to hear `fix_pin_positions.py` is retired.
|
|
|
|
We're now working on the remaining two scripts:
|
|
|
|
## 1. Label collision detection (`fix_label_collisions.py`, 243 lines)
|
|
|
|
Investigating your collision detection approach. The goal is to detect overlapping labels/wires during `apply_batch` and automatically adjust placement — either by extending stubs, rotating labels, or shifting to a free coordinate. This eliminates the need for post-processing.
|
|
|
|
Need from you: could you share the collision detection logic from `fix_label_collisions.py`? Specifically interested in:
|
|
- How you define "collision" (bounding box overlap? coordinate proximity? wire crossing?)
|
|
- What resolution strategy you use (shift direction, minimum clearance)
|
|
- Any edge cases that required special handling
|
|
|
|
## 2. Tab indentation (`fix_indentation.py`)
|
|
|
|
This one is likely a kicad-sch-api serializer issue — if the API writes s-expressions with spaces where KiCad expects tabs, we need to either patch the serializer or add a post-save formatting pass.
|
|
|
|
Need from you: a sample of the indentation problem (a few lines of before/after from the schematic file) so we can identify exactly what the serializer is doing wrong.
|
|
|
|
---
|
|
|
|
Both are queued up. Y-axis + race condition fixes committed to main.
|