From c3e203557b89f8a2317407fe021588cd94b91508 Mon Sep 17 00:00:00 2001 From: ispyisail Date: Fri, 2 Oct 2026 07:09:36 +1300 Subject: [PATCH] drawing_arcs: the fillet tool (PR #1212) and the middle-handle change (PR #1211), both pending --- _Sidebar.md | 2 +- drawing_arcs.md | 63 +++++++++++++++++++++++++ images/drawing-fillet-before-after.png | Bin 0 -> 18846 bytes 3 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 images/drawing-fillet-before-after.png diff --git a/_Sidebar.md b/_Sidebar.md index 077984e..4477feb 100644 --- a/_Sidebar.md +++ b/_Sidebar.md @@ -46,7 +46,7 @@ **[Pictures on a folio](pictures)** — labels, crop, transparency, what they cost in the file -**[Arcs and curved wires](drawing_arcs)** — the Arc tool, pulling an arc in or out, dashed arcs for lighting layouts +**[Arcs and curved wires](drawing_arcs)** — the Arc tool, pulling an arc in or out, rounding a corner with a fillet, dashed arcs for lighting layouts **[Grouping items](grouping_items)** — select, move and copy several items as one diff --git a/drawing_arcs.md b/drawing_arcs.md index da9e53f..7c89a33 100644 --- a/drawing_arcs.md +++ b/drawing_arcs.md @@ -66,6 +66,17 @@ along its width or height (section 2, with Shift). Drag one of the end handles a the middle handle disappears, and the end handles work as in section 2. Drag the end back to make a half arc again and the middle handle returns. +> **Status: pending.** This paragraph describes +> [PR #1211](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/1211), +> not yet merged. Until it lands, the middle handle shows in both handle +> modes and covers the handle under it. + +The middle handle shows with the **size** handles only. Click the arc again +to switch to the rotate and skew handles and it goes away, so the skew handle +at the top of the arc can be grabbed. With the size handles, the resize handle +that would sit under it is hidden: the middle handle already changes that +height. + --- ## 2. Cutting an ellipse down to an arc @@ -103,6 +114,56 @@ ellipse arcs. See [shapes](project_diagram_child_shapes). --- +## 5. Rounding a corner: the fillet tool + +> **Status: pending.** This section describes +> [PR #1212](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/1212), +> 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. + +The **fillet** tool rounds the corner between two drawn lines, like the sketch +fillet in a CAD program. It turns a sharp corner into a curve of the radius +you choose, which is the usual way to draw a cable or pipe run that bends. + +![Left: a corner, two crossing lines, and two lines with a gap between them. Right: the same after a fillet on each, with the radius dialog.](https://raw.githubusercontent.com/wiki/qelectrotech/qelectrotech-source-mirror/images/drawing-fillet-before-after.png) + +1. Choose **Ajouter un congé** (*add a fillet*): in **Édition → Ajouter**, on + the drawing toolbar (behind its » arrow when the window is narrow), or + from the command search (`Ctrl+Shift+M`, type `congé`). +2. Click the two lines one after the other — **or** click once where they + meet or cross. +3. A small dialog asks for the **radius**. Type it and press **Enter**. + Escape in the dialog cancels that fillet. + +The tool stays on, so you can go straight to the next corner. **Escape**, a +right-click, or clicking the button again ends it. A right-click after +picking only the first line drops that pick instead. + +What happens to the lines: + +| The two lines… | Result | +|---|---| +| meet at a corner | both are shortened to where the curve starts | +| cross each other | each keeps the part **on the side you clicked**; the other part is cut off. A single click on the crossing keeps the longer part of each | +| do not reach each other | both are **extended** to meet the curve | + +The radius is in the same units as the sizes in **Propriétés de la +sélection**, and the dialog starts with the last radius you used. The curve +takes the line style of the first line you clicked. One Ctrl+Z undoes the +whole fillet: both lines go back and the curve goes away. + +Nothing is done, and the status bar says why, when: + +- the two lines are parallel, or so nearly in line that there is no corner; +- the radius is too big for the lines — the message gives the largest radius + that fits. + +The result is two ordinary lines and an ordinary arc (section 4), not a new +kind of shape. Moving one of them afterwards does not move the others. + +--- + ## Limitations - The Arc tool only draws half arcs. A shallower or longer curve is a half arc @@ -111,6 +172,8 @@ ellipse arcs. See [shapes](project_diagram_child_shapes). - Ctrl does not draw the arc out from its centre, as it does for an ellipse; it only takes the clicks off the grid. - The start and end angles cannot be typed in the properties panel. +- The fillet tool works on drawn lines only — not yet on a corner of a + polyline, not on wires, and not in the symbol editor. - An arc is drawing, not a wire. For a curve that is part of the circuit, use a conductor. diff --git a/images/drawing-fillet-before-after.png b/images/drawing-fillet-before-after.png new file mode 100644 index 0000000000000000000000000000000000000000..48e8bef915cd3bf75f06c107d5a8eee3c0706c99 GIT binary patch literal 18846 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 literal 0 HcmV?d00001