-
Notifications
You must be signed in to change notification settings - Fork 20
Net Color Pen
The Net Color Pen is a quick way to highlight a net across your schematic by painting its wires with a custom colour. Useful for debugging signal flow, reviewing a specific bus, or making a diagram readable in a design review.
The pen lives on the Active Bar → Net Color dropdown.
- Open the Active Bar's Net Color dropdown and click a colour. The pen is now armed — a pencil glyph in the armed colour rides the cursor (grey in clear mode), alongside the usual placement crosshair. The OS cursor shape itself doesn't change.
- Click a wire. Signex floods the whole connected net and colours its wires.
- The pen stays armed (Altium-style continuous placement) — click another net to paint it the same colour, or pick a different colour first.
-
Escor a right-click puts the pen down.
Clicks on empty canvas are no-ops; the pen stays ready.
The Net Color dropdown carries seven presets — Blue, Light Green, Light Blue, Red, Fuchsia, Yellow, Dark Green — plus:
- Custom Color... — opens the Pick Net Color dialog: a 48-swatch Quick Pick grid on the left, a Custom RGB column on the right with R / G / B text inputs, a live preview box, and the hex value. Use Color arms the pen with your colour; Cancel backs out.
- Clear Net Color — arms the pen in "clear" mode: the next wire you click has its net's colour removed.
- Clear All Net Colors — removes every net colour at once.
Both Clear rows are greyed out until the F5 palette below has at least one entry. They gate on the palette's per-net-name map, not on what the pen has painted — so painting with the pen alone leaves them disabled. Until that's fixed,
Ctrl+Zis the reliable way to undo a stroke.
F5 opens a separate Net Colors window. It lists every net label on
the active sheet with ten swatches and an × clear button per row.
Only the Altium shortcut profile binds F5 to the palette; the
Classic profile binds F5 to Refresh View instead.
This palette does not colour anything on the canvas. Its choices are recorded and shown back in the palette, but nothing in the renderer reads them. The Active Bar pen described above is the path that actually paints wires. Track this if you need per-net-name colouring — it isn't wired up yet.
Since v0.14 the flood runs on the authoritative connectivity core in
the signex-net crate — the same derivation ERC and netlist export read,
so the highlight and the netlist can't disagree.
Starting from the clicked wire, it walks the union-find over:
- Wire endpoints — every wire segment sharing an endpoint joins the net.
- Junctions — including a wire that ends on another wire's interior (a T-junction). The older hand-rolled flood missed those.
Points are compared in a 1 µm bucket space. The previous inline union-find bucketed at 0.01 mm, which let a highlight bleed between two nearly coincident nets; that leak is fixed.
What the flood does not do:
- It does not follow labels. Two wires carrying the same net label but not physically connected are not painted together — the flood is physical connectivity only.
- It does not cross sheet boundaries. It runs on the active sheet. Hierarchical labels and sheet pins are not traversed.
- Global labels are not painted across sheets.
- It colours wires only — not junctions, pins, symbols, or labels. The flood collects the net's junctions too, but the renderer only consults the override map for wires, so junction dots keep their theme colour.
(The cross-sheet stitching that signex-net gained in v0.14 is consumed by
ERC and export; the flood uses the per-sheet physical core.)
The hit test for "which wire did I click?" is strict: the click point, snapped to the grid first, must be within 0.05 mm of a wire segment. The general selection hit test is more forgiving — at least 0.25 mm, and wider still for a thick wire, since it widens to the wire's own stroke. The pen deliberately doesn't, so you can't paint a neighbour when two wires run close together.
-
Ctrl+Z— the dependable one. Unwinds your strokes one at a time. - Clear Net Color in the dropdown, then click the net.
- Clear All Net Colors in the dropdown — removes every override at once, and disarms the pen.
Both dropdown rows are disabled unless the F5 palette holds an entry (see above), so
Ctrl+Zis the path that always works.
Clicking an already-painted net with the same colour does not toggle it off; it's detected as a no-op change and ignored.
Pen colours are render-only. They live in application state keyed by
wire UUID and are never written to your .snxsch, so:
- Git diffs on the
.snxschstay clean — no colour noise. - The document is untouched; painting never marks a file dirty.
Colours do not persist across sessions. The override map is not serialised anywhere — not to the project, not to a sidecar, not to the preferences. Close the app and your net colours are gone. Treat the pen as a review-session tool, not as saved design intent.
Every pen stroke that actually changes something pushes a snapshot onto a dedicated net-colour undo stack, separate from the document's history (net colours aren't document mutations, so they must not mix with them).
-
Ctrl+Zpops the net-colour stack first, before touching the document's undo. RepeatedCtrl+Zunwinds your strokes, then starts undoing document edits. - Repainting the same net with the same colour is de-duplicated — one undo step, not two.
- Clear All Net Colors is undoable the same way.
-
Redo does not restore net colours.
Ctrl+Yonly walks the document history. An undone stroke is gone; re-paint it.
F9 (AutoFocus) dims the canvas
outside the current selection's bounding box. It keys off the selection
— painted nets get no special treatment and are dimmed like anything else
outside the box.
- Per-net colours only. You can't paint part of a net.
- Wires only. Junctions, pins, symbols, and labels keep their theme colour.
- Single sheet. The flood does not cross into child sheets.
- Not persisted. See above.
- No colour in the PCB view — the PCB canvas ships in v2.0.
- Active Bar — where the Net Color dropdown lives
-
ERC and Validation — AutoFocus, and the shared
signex-netconnectivity contract - Selection and Filter — selection basics
Signex v0.14.0 · Apache-2.0 · Issues · Discussions · Website