diff --git a/conductors.md b/conductors.md index b813341..1e99092 100644 --- a/conductors.md +++ b/conductors.md @@ -110,17 +110,24 @@ Only drawn when the type is single-line: This is the practical answer to "why is this field here". Blank fields become blank columns. -**`--export-cables`** — the from-to wiring list, one row per conductor: +**`--export-cables`** — the from-to wiring list, one row per conductor. The +menu entry **Projet → Exporter le plan de câblage** (*Export the wiring +diagram*) writes the same CSV file. | Column | Comes from | |---|---| -| Folio | the folio the conductor is on | +| Page | the folio the conductor is on, as its number is shown on the folio | | Component 1 / Terminal 1 | the element and terminal at one end | | Component 2 / Terminal 2 | the element and terminal at the other end | | Tension / Protocol | **Tension / protocol** | | Wire colour | **Wire colour** (the text field, not the drawn colour) | | Wire section | **Wire section** | | Function | **Function** | +| Cable | **cable** — last column, in the nightly builds from 1 October 2026 onwards ([#1197](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/1197)); release 0.100 does not have it | + +A wire drawn through a folio report (an arrow to another folio) is one row, +not two. Its fields are taken from both halves: written once when the halves +agree, both values separated by a comma when they do not. **`--export-wires`** produces the conductor-number list. @@ -174,13 +181,41 @@ What exists is smaller than the name suggests: | Thing | What it really is | |---|---| -| The **Cable** field on a conductor | free text, stored and reloaded, read by nothing | +| The **cable** field on a conductor | free text, stored and reloaded; written as the last column of the wiring list export (nightly builds from 1 October 2026), and readable from a **[script](scripting)** | | The **`--export-cables`** command | the from-to wiring list — one row per *conductor*, not per cable | So a conductor can record which cable you intend it to belong to, and that text -survives in the file, but nothing collects conductors into cables, checks core -counts, or reports on them. If you need cable management, it has to live in the -wire numbering convention or outside QElectroTech. +survives in the file, but nothing inside QElectroTech collects conductors into +cables, checks core counts, or draws a cable list. **[Search & +Replace](search_and_replace)** does not cover the field either, so renaming a +cable means editing each of its wires. + +### Getting a cable list from a spreadsheet + +Until QElectroTech has a cable list of its own, the wiring list export gets you +most of the way: + +1. **Give each wire its cable name.** Double-click the wire to open its + properties and type the name in the **cable** field, for example `W1`. + The name is saved with the project. +2. **Export the wiring list:** **Projet → Exporter le plan de câblage** + (*Export the wiring diagram*), or on the command line: + + ```bash + qelectrotech --export-cables project.qet wiring.csv + ``` + +3. **Open the CSV in a spreadsheet** (the separator is a semicolon) and sort + or filter on the last column, **Cable**. Each cable's wires are then + together, with both ends of each wire, its colour and its section. Counting + the rows per cable gives the number of cores used. + +Wires with no cable name have an empty last column; filter them out, or sort +them to the end. + +Discussion [#956](https://github.com/qelectrotech/qelectrotech-source-mirror/discussions/956) +is about a real cable model inside QElectroTech; the export above is what works +today. --- diff --git a/images/terminal-strips-after-drop.png b/images/terminal-strips-after-drop.png new file mode 100644 index 0000000..3e85cc7 Binary files /dev/null and b/images/terminal-strips-after-drop.png differ diff --git a/images/terminal-strips-free-terminals.png b/images/terminal-strips-free-terminals.png new file mode 100644 index 0000000..be93c20 Binary files /dev/null and b/images/terminal-strips-free-terminals.png differ diff --git a/navigating_folios.md b/navigating_folios.md index 2800604..ae02b40 100644 --- a/navigating_folios.md +++ b/navigating_folios.md @@ -216,12 +216,6 @@ beyond the folio*) on the same page. ### Centre on cursor -> **Status: pending.** This subsection describes -> [PR #1190](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/1190), -> 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. - **Affichage → Centrer sur le curseur** scrolls the folio so the point under the mouse becomes the middle of the window. The zoom does not change. Point at the part of the drawing you want to look at next, press the key, and it diff --git a/terminal_strips.md b/terminal_strips.md index e32d37f..b1235dd 100644 --- a/terminal_strips.md +++ b/terminal_strips.md @@ -56,9 +56,13 @@ terminal you have reserved on the rail but not drawn — a spare, a future connection, a manufacturer-supplied end block — exists in the strip as a real terminal with no element behind it. -This is what the editor's **free terminal** list is for: terminals that exist in -the strip and not in the schematic. It is also why a strip's terminal count can -legitimately exceed the number of terminal elements in your folios. +This is why a strip's terminal count can legitimately exceed the number of +terminal elements in your folios. + +Do not confuse these with the editor's **Bornes indépendantes** (*Independent +terminals*) list, which is the opposite case: terminals **drawn on a folio** +that are **not in any strip yet**. Moving those into a strip is covered in +§2, *Moving drawn terminals into a strip*. --- @@ -75,7 +79,7 @@ way an element is. Terminals reach a strip by being added to it, either from the drawn terminal elements the project already has, or as free terminals you create in the strip -itself. +itself. The first case is described below. ### The terminal table @@ -95,6 +99,72 @@ itself. Type and function come from the terminal element's own definition — see **[Linking elements](element_linking)** for how an element declares them. +### Moving drawn terminals into a strip + +> Drag and drop, and the tooltips that say why the button is greyed out, are in +> the **nightly builds from 1 October 2026** onwards +> ([#1198](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/1198), +> [#1199](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/1199)). +> Release 0.100 has the button only. + +Every terminal element drawn on a folio that is not yet in a strip is listed in +the tree under **Bornes indépendantes** (*Independent terminals*). Click any one +of them and the right-hand side shows **all** of them in a table, with the +move controls at the top right. + +![The terminal strip manager with X2:10 selected in the tree under Bornes indépendantes. The table on the right lists the free terminals, none of its rows is selected, and the Déplacer dans list and its ✓ button are greyed out.](https://raw.githubusercontent.com/wiki/qelectrotech/qelectrotech-source-mirror/images/terminal-strips-free-terminals.png) + +**Selecting a terminal in the tree does not select it in the table.** The tree +item you click only opens this page. Both ways of moving work on what is +selected **in the table** (or, for a drag, on what you drag). In the picture +above, X2:10 is selected in the tree but no row of the table is, so the button +is greyed out. + +There are two ways to move terminals into a strip. + +**1. The button.** Select one or more rows in the table (Ctrl+click or +Shift+click for several), choose the strip in **Déplacer dans** (*Move to*), +and click the ✓ button next to it. + +**2. Drag and drop.** Drag the terminals onto a strip in the tree on the left: + +| Drag from | What moves | +|---|---| +| the table | every selected row | +| the tree, under *Bornes indépendantes* | the terminal you drag, one at a time | + +Drop them on the strip itself, or on any terminal already in that strip. They +are added after the strip's existing terminals, and the strip is then +selected, so you see the result straight away: + +![After dragging X2:11 and X2:12 from the table onto strip XT1: the tree shows them under XT1 after X2:1, and the strip's table lists X2:1, X2:11 and X2:12 at positions 0, 1 and 2.](https://raw.githubusercontent.com/wiki/qelectrotech/qelectrotech-source-mirror/images/terminal-strips-after-drop.png) + +Either way, the move is **one undo step**: the undo button in the manager's +toolbar puts every terminal of that move back. + +#### When the button is greyed out + +Hover over it: the tooltip says why. When more than one reason applies, it +names the most basic one first. + +| Situation | Tooltip | What to do | +|---|---|---| +| The project has no strip yet | *Le projet n'a aucun bornier : créez-en un avec le bouton +* | create a strip with the **+** button at the top left of the manager | +| You changed cells in the table (shown in yellow) and have not applied them | *Appliquez ou annulez les modifications en cours avant de déplacer* (*Apply or cancel the current changes before moving*) | click **Apply** or **Reset** at the bottom first | +| No row of the table is selected | *Sélectionnez dans le tableau les bornes à déplacer* | select the rows to move | + +A drop is refused, and nothing moves, in the same pending-changes case, and +whenever it is not over a strip or one of its terminals. Moving reloads the +table, which would throw away changes not yet applied; that is why both the +button and the drop wait for **Apply** or **Reset**. + +#### Not possible by dragging + +- taking terminals back out of a strip, or moving them from one strip to + another — the strip's own page has a **Déplacer dans** list for that, which + includes *Bornes indépendantes*; +- changing the order of terminals within a strip. + --- ## 3. Grouping, levels and sorting @@ -206,6 +276,7 @@ its uuid loses its place in the strip. --- -See also: **[Linking elements](element_linking)** · +See also: **[Conductors](conductors)** — the wire properties, and the Cable field · +**[Linking elements](element_linking)** · **[Variables & formulas](variables)** · **[The project database](project_database)**