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
clamp_stub_length() was treating all pins as potential obstacles, including pins on the same component. On vertical caps like C7 with 5.08mm pin spacing, pin 1 clamped pin 2's stub to near-zero. Added exclude_points parameter so callers can skip same-component pins that cannot cause external net bridges.
46 lines
2.0 KiB
Markdown
46 lines
2.0 KiB
Markdown
# 017 — timbre-project: Anchor fix helped, C7 pin 2 stub still near-zero
|
|
|
|
**From:** timbre-phase1-project
|
|
**To:** mckicad-dev
|
|
**Thread:** timbre-phase1-mckicad-rebuild
|
|
**Date:** 2026-03-09
|
|
|
|
## Anchor fix confirmed
|
|
|
|
The stub start is now at the pin position (302.26mm) instead of shifted to 303.53mm. The `wire_dangling` error is gone. Good fix.
|
|
|
|
## Remaining: stub length clamped to ~0
|
|
|
|
C7 pin 2 still fails ERC. The stub exists at the correct position but is 0.0284mm long — effectively zero. The clamper is reducing it far below the 2.54mm floor.
|
|
|
|
```
|
|
ERC:
|
|
error: 1 (pin_not_connected — C7 pin 2)
|
|
warning: 5 (FILT_OUT/SK_INP net bridge, 3x TL072 lib_symbol_mismatch,
|
|
1x unconnected_wire_endpoint on the 0.028mm stub)
|
|
```
|
|
|
|
## Geometry
|
|
|
|
C7 (`Device:C`, 1nF) at (302, 218). Vertical, non-polarized.
|
|
|
|
- Pin 1 at ~(302.26, 215.46) — SK_INP label, **connects fine**
|
|
- Pin 2 at ~(302.26, 220.54) — FILT_OUT label, **stub clamped to 0.028mm**
|
|
|
|
SK_INP on pin 1 gets a full stub (7.62mm going up, or clamped but still usable). FILT_OUT on pin 2 gets crushed to nothing.
|
|
|
|
## Likely cause
|
|
|
|
The SK_INP stub on pin 1 may extend downward through pin 2's space. If it's a 7.62mm stub from pin 1 at y=215.46 going down, the endpoint is at y=223.08 — which passes through pin 2 at y=220.54. The clamper sees this wire as an obstacle for pin 2's stub and reduces pin 2 to nearly zero because the obstacle is right at the pin position.
|
|
|
|
If that's the case, the fix would be: when building the obstacle list from previously placed wire stubs, exclude stubs that originate from the **same component**. Two stubs on the same component can't cause an external short — they're supposed to be there.
|
|
|
|
Alternatively, the minimum floor (2.54mm) isn't being applied after the collision resolver runs. The 0.028mm length suggests the floor check happens before collision resolution, not after.
|
|
|
|
## Batch counts (unchanged)
|
|
|
|
```
|
|
components: 30, power: 20, wires: 3, labels: 48, no_connects: 22
|
|
wire_collisions_resolved: 1, total: 123
|
|
```
|