From aed5f2b889386ff36990e752b74463ec9034abe7 Mon Sep 17 00:00:00 2001 From: ispyisail Date: Thu, 1 Oct 2026 22:05:26 +1300 Subject: [PATCH] Conductors: hops where wires cross (PR #1200, pending) New section 9: the project setting that draws an arc where two wires cross without being connected (issue #436), its three choices, which crossings hop, and what it does not change (DXF export, the data). Carries a pending notice until PR #1200 merges. --- _Sidebar.md | 2 +- conductors.md | 60 ++++++++++++++++++++++++ images/conductors-wire-hops-setting.png | Bin 0 -> 5493 bytes images/conductors-wire-hops.png | Bin 0 -> 10633 bytes 4 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 images/conductors-wire-hops-setting.png create mode 100644 images/conductors-wire-hops.png diff --git a/_Sidebar.md b/_Sidebar.md index e83a3b1..7369867 100644 --- a/_Sidebar.md +++ b/_Sidebar.md @@ -22,7 +22,7 @@
Guides -**[Conductors](conductors)** — wire properties, what feeds which export, and cables +**[Conductors](conductors)** — wire properties, what feeds which export, cables, and hops where wires cross **[Printing and exporting](printing_and_export)** — paper, PDF, images, and what each path does differently diff --git a/conductors.md b/conductors.md index 1e99092..375f937 100644 --- a/conductors.md +++ b/conductors.md @@ -291,6 +291,66 @@ Both are per project, and both are toggles you can leave off. --- +## 9. Hops where wires cross + +> **Status: pending.** This section describes +> [PR #1200](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/1200), +> not yet merged. Nothing here works until that lands — check the PR before +> trying any of this against your own build. This notice will come out once +> it merges. + +Where two wires cross without being connected, a project can draw a small +arc — a **hop** — on one of them, so the crossing cannot be read as a +connection. Until now the only way to show this was to insert a jump symbol +and split the wire around it ([#436](https://github.com/qelectrotech/qelectrotech-source-mirror/issues/436)). + +![Left: the default, crossings drawn as plain lines. Right: with hops on horizontal wires, each horizontal wire arcs over the vertical ones it crosses, and the corner where the lower wire turns has no hop.](https://raw.githubusercontent.com/wiki/qelectrotech/qelectrotech-source-mirror/images/conductors-wire-hops.png) + +**It is off by default.** Many drawing conventions, the French one among +them, do not use hops; a project that never turns them on is drawn and saved +exactly as before. + +### Turning hops on + +**Projet → Propriétés du projet** (*Project properties*), page **Général**, +the **Croisements de conducteurs** (*wire crossings*) list at the bottom: + +![The Croisements de conducteurs list in the project properties, set to Saut sur les conducteurs horizontaux.](https://raw.githubusercontent.com/wiki/qelectrotech/qelectrotech-source-mirror/images/conductors-wire-hops-setting.png) + +| Choice | What is drawn | +|---|---| +| **Sans saut** (*no hop*) — the default | crossings as plain lines | +| **Saut sur les conducteurs horizontaux** | the horizontal wire arcs **over** the vertical one | +| **Saut sur les conducteurs verticaux** | the vertical wire arcs **to the right of** the horizontal one | + +You choose the orientation rather than "whichever wire was drawn last", so +the whole project looks consistent. The setting belongs to the project: it +is saved in the `.qet` file and every folio follows it, on any computer. + +### Which crossings hop + +- Only a real **crossing** hops: one wire passing straight through another. +- A wire that **ends** on another one (a T, usually with a junction dot), or + **turns** on it, is a connection, not a crossing, and never hops. +- A crossing too close to a bend or to the end of a wire for the arc to fit + is drawn as a plain crossing. +- Of two crossings closer together than one arc, only the first hops. + +### What it changes, and what it does not + +- **Drawing only.** No element is added and no wire is split: the wire + numbers, the wiring list, the parts list and the project database are + exactly the same with or without hops. +- **Exports:** PDF, SVG, image export and printing all show the hops. + **DXF export does not** — it writes the wire segments itself and draws + crossings as plain lines. +- **In the file:** a project with hops on carries + `` (or `"vertical"`). Without that + element, or with any other value, no hop is drawn — so an older version of + QElectroTech simply shows plain crossings. + +--- + ## See also - **[User manual](user_manual)** — the walkthrough for drawing wires diff --git a/images/conductors-wire-hops-setting.png b/images/conductors-wire-hops-setting.png new file mode 100644 index 0000000000000000000000000000000000000000..3967e898d663a0a31ad9959e7ebb9d7e9cab0296 GIT binary patch literal 5493 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 literal 0 HcmV?d00001 diff --git a/images/conductors-wire-hops.png b/images/conductors-wire-hops.png new file mode 100644 index 0000000000000000000000000000000000000000..72eb528b9516f8a87b0064317e4db610a48355a4 GIT binary patch literal 10633 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 p|I0=Gm$Cl0Dfj