Model sub-resolution traces as exact 1D resistor chains
Tracks are now first-class Problem objects (TrackSeg: centerline + width, dump schema v5), so the wide/narrow decision replays at raster time: traces at least TRACK_1D_FACTOR (3) cells wide rasterize from their outline as before; narrower ones mark the cells their centerline crosses as copper and connect them with explicit conductance links carrying the trace's TRUE arc length per link - no staircase inflation for diagonals or arcs, and no discretization error in the trace R, at any grid size. Links across cells already joined by pour faces are skipped (union, not sum); chain-only cells get no sheet faces (their copper is narrower than a cell). Electrodes, via barrels, connectivity restriction and the skin-effect scaling all work on chain cells unchanged. This removes the need to shrink the cell size for thin traces: a 0.2 mm bridge at 500 um cells now matches its finely-rasterized ground truth within a few percent (tested), including diagonal and arc traces. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -80,7 +80,12 @@ SWIG API. Requires KiCad **10.0.1+**.
|
||||
fill on fewer than two layers carry no current and are reported.
|
||||
- The net's **traces** (straight and arc tracks, exact outline polygons
|
||||
incl. rounded ends) conduct together with the fills — dialog checkbox,
|
||||
on by default (`INCLUDE_TRACKS`). Pad copper other than the selected
|
||||
on by default (`INCLUDE_TRACKS`). Traces narrower than
|
||||
`TRACK_1D_FACTOR` (3) grid cells are modeled as exact **1D resistor
|
||||
chains** along their centerline — true arc length per link, so their
|
||||
series resistance carries no discretization error and no cell-size
|
||||
tuning is needed for thin traces. 1D-modeled traces show potential and
|
||||
power density but no |J| field. Pad copper other than the selected
|
||||
contacts is still **not** part of the conductor model.
|
||||
- **Solder buildup on mask openings** (dialog checkbox, **off by
|
||||
default**; `INCLUDE_MASK_BUILDUP`): zones drawn on `F.Mask`/`B.Mask`
|
||||
|
||||
Reference in New Issue
Block a user