diff --git a/_Sidebar.md b/_Sidebar.md index 7369867..077984e 100644 --- a/_Sidebar.md +++ b/_Sidebar.md @@ -46,6 +46,8 @@ **[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 + **[Grouping items](grouping_items)** — select, move and copy several items as one **[Finding your place on a folio](navigating_folios)** — go to a cell like B13 or 4-B7, keep the headers in sight, show the cell limits, zoom and pan diff --git a/conductors.md b/conductors.md index 375f937..3f8f2cb 100644 --- a/conductors.md +++ b/conductors.md @@ -293,12 +293,6 @@ 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 diff --git a/data_files/project_diagram_child_shapes.md b/data_files/project_diagram_child_shapes.md index 2160631..0fe87b3 100644 --- a/data_files/project_diagram_child_shapes.md +++ b/data_files/project_diagram_child_shapes.md @@ -15,6 +15,12 @@ attribute : none * closed -- for polygons * z -- stacking order * is_movable -- `1` / `0` + * inside an `Ellipse` shape that is cut down to an arc, an `` child: + * startAngle -- where the arc starts, in degrees, anticlockwise from three o'clock + * spanAngle -- how far it runs; negative runs clockwise + * closure -- `chord` or `pie` when the arc is closed; absent when it is open + + A whole ellipse has no `` child. See [Arcs and curved wires](drawing_arcs). These are diagram shapes and are **not** the same as the element drawing primitives documented under [description](elements_child_description), even diff --git a/drawing_arcs.md b/drawing_arcs.md new file mode 100644 index 0000000..f17dc88 --- /dev/null +++ b/drawing_arcs.md @@ -0,0 +1,126 @@ +# Arcs and curved wires + +Lighting and house-wiring layouts often draw the wire from a switch to a lamp +as a curve rather than a straight line, so it stands apart from walls and +furniture on the plan. QElectroTech draws these as **arcs**: free drawing on +the folio, like lines and rectangles, not conductors. An arc is not connected +to anything — it does not appear in the wiring list, the parts list or any +export that follows wires. + +There are two ways to get one: the **Arc** tool, which draws a half arc in two +clicks and gives it a handle to pull in or out, and the older way of cutting +an ellipse down with its end handles. + +--- + +## 1. The Arc tool + +> **Status: pending.** This section describes +> [PR #1202](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/1202), +> 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 drawing toolbar: line, rectangle, ellipse, the new arc button, polyline](https://raw.githubusercontent.com/wiki/qelectrotech/qelectrotech-source-mirror/images/drawing-arc-toolbar.png) + +The **Ajouter un arc** (*add an arc*) button sits on the drawing toolbar +between the ellipse and the polyline. It is also in **Édition → Ajouter**, and +in the command search (`Ctrl+Shift+M`, type `arc`). + +1. Click where one end of the arc should be. +2. Move to the other end, and up or down to the height the arc should reach. + The arc follows the cursor. +3. Click again. Right-click instead to cancel. + +The result is always a **half arc**: its two ends sit on one horizontal line, +and it bulges up if you finished above the first click, down if you finished +below it. + +| Hold | Result | +|---|---| +| *nothing* | both clicks snapped to the grid | +| **Shift** | a true half circle — the height is half the distance between the ends | +| **Ctrl** | off the grid | + +A new arc takes the line colour, thickness and style of the last shape you +drew, but **never its fill**: a filled arc would close into a half disc. The +tool stays active, so you can draw the next arc straight away; clicking the +selection arrow, or the Arc button again, ends it, and Enter starts it again +later +(see [Drawing faster](drawing_faster)). + +### Pulling an arc in or out + +![Left: a half arc as drawn, with its middle handle at the top. Centre: the handle pulled in, the arc flatter. Right: the handle pulled past the ends, the arc now bulging downwards. The two end handles do not move in any of the three.](https://raw.githubusercontent.com/wiki/qelectrotech/qelectrotech-source-mirror/images/drawing-arc-handle.png) + +Select a half arc and it shows a turquoise handle in the **middle of the +curve**, as well as one at each end. + +- Drag the middle handle **away from the ends** to make the arc deeper. +- Drag it **towards the ends** to make it flatter. +- Drag it **past the line between the ends** and the arc turns over to the + other side. + +The two ends do not move while you do this, so an arc drawn between a switch +and a lamp stays connected to both by eye. Ctrl frees the handle from the +grid. One drag is one undo step. + +The middle handle is only there on a **half arc** — every arc the Arc tool +draws, also after you rotate it, and an ellipse cut down to exactly a half +along its width or height (section 2, with Shift). Drag one of the end handles and the arc stops being a half arc: +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. + +--- + +## 2. Cutting an ellipse down to an arc + +Any ellipse can be turned into an arc. Select it, and drag one of the two +turquoise handles on its outline: that end of the curve follows the cursor +round the ellipse. Hold **Shift** to move in 15° steps. Drag one end all the +way round onto the other and the ellipse closes again. + +This gives arcs of any length, not only halves, but each end moves round the +ellipse rather than staying where you put it, which makes it slow to fit an +arc between two fixed points. For that, use the Arc tool. + +--- + +## 3. A dashed arc + +Select the arc, open **Propriétés de la sélection** (*selection properties*), +and under **Trait** (*line*) set **Type** to **Tiret** (*dash*) or +**Pointillé** (*dotted*). The thickness and colour are on the same panel. + +Because a new arc copies the last shape's line style, the next arcs you draw +come out dashed too, until you change it back. + +--- + +## 4. In the file + +An arc is saved as an ordinary `Ellipse` shape with an `` child giving +its start angle and span in degrees, measured anticlockwise from three +o'clock. A half arc bulging upwards is `startAngle="0" spanAngle="180"`; the +same arc pulled past its ends is `spanAngle="-180"`. The Arc tool adds nothing +new to the file, so a project with arcs in it opens in any version that reads +ellipse arcs. See [shapes](project_diagram_child_shapes). + +--- + +## Limitations + +- The Arc tool only draws half arcs. A shallower or longer curve is a half arc + pulled in or out, or an ellipse cut down by hand. +- The middle handle works only on half arcs. +- 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. +- An arc is drawing, not a wire. For a curve that is part of the circuit, + use a conductor. + +## See also + +- [Mouse modifiers](mouse_modifiers) — every Shift, Ctrl and Alt while drawing and reshaping +- [Drawing faster](drawing_faster) — command search, repeating the last tool +- [Conductors](conductors) — real wires, and hops where they cross diff --git a/drawing_faster.md b/drawing_faster.md index b280cdc..7c982be 100644 --- a/drawing_faster.md +++ b/drawing_faster.md @@ -75,7 +75,7 @@ Right-click an empty spot on a folio. The menu puts drawing first: |---|---|---| | **Renvoi de folio ▸** (*folio reference*) | places a folio report arrow where you right-clicked | [#1050](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/1050) | | **Insérer le dernier élément** (*insert last element*) | starts placing the last symbol again, as **A** does; shown once something has been placed | [#1050](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/1050) | -| **Ajouter ▸** (*add*) | text, image, PDF, line, rectangle, ellipse, polyline, curve, terminal strip | merged ([#1041](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/1041)) | +| **Ajouter ▸** (*add*) | text, image, PDF, line, rectangle, ellipse, arc (pending: [PR #1202](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/1202)), polyline, curve, terminal strip | merged ([#1041](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/1041)) | | **Propriétés du folio** (*folio properties*) | the folio's properties dialog | merged | | **Lignes et colonnes ▸** (*rows and columns*) | add or remove a row or a column | merged — moved one level down by #1041 | diff --git a/images/drawing-arc-handle.png b/images/drawing-arc-handle.png new file mode 100644 index 0000000..3b0a65e Binary files /dev/null and b/images/drawing-arc-handle.png differ diff --git a/images/drawing-arc-toolbar.png b/images/drawing-arc-toolbar.png new file mode 100644 index 0000000..16d4bd3 Binary files /dev/null and b/images/drawing-arc-toolbar.png differ diff --git a/keyboard_control.md b/keyboard_control.md index 0630ced..dca4192 100644 --- a/keyboard_control.md +++ b/keyboard_control.md @@ -115,7 +115,7 @@ asking whichever item has focus for its default one. **Édition → Ajouter** is a submenu holding every drawing tool that used to be toolbar-only: text field, image, PDF (where compiled in), line, -rectangle, ellipse, polyline, curve, and terminal strip. Reach it with +rectangle, ellipse, arc (pending: [PR #1202](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/1202)), polyline, curve, and terminal strip. Reach it with `Alt+E` then `→` to open the submenu, arrow keys to pick a tool, `Enter` to activate it. The automatic-conductor-break toggle sits in **Projet**, beside the automatic-conductor setting it pairs with. diff --git a/mouse_modifiers.md b/mouse_modifiers.md index 0f22ffa..a2629d6 100644 --- a/mouse_modifiers.md +++ b/mouse_modifiers.md @@ -90,6 +90,11 @@ While dragging out a rectangle or an ellipse: Shift has no effect on lines, polygons or paths — only on rectangles and ellipses. +With the **Arc** tool (pending: +[PR #1202](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/1202)), **Shift** makes a true half circle and **Ctrl** only takes the +clicks off the grid — there is no centre-anchored arc. See +[Arcs and curved wires](drawing_arcs). + Whether the shape is centre-anchored is decided **at the first click**, not re-checked while you drag. Letting go of Ctrl halfway through does not snap the shape back to corner-anchored; that is deliberate, so a tired hand does @@ -109,6 +114,7 @@ Select a shape or an image and drag one of its handles. | Rotate | **Shift** | snap the angle to 15° steps | | Skew | **Shift** | snap the skew to 15° steps | | Arc start/end | **Shift** | snap the arc angle to 15° steps | +| Arc middle (half arcs; pending: [PR #1202](https://github.com/qelectrotech/qelectrotech-source-mirror/pull/1202)) | **Ctrl** | off the grid; no other modifier. The ends stay put — see [Arcs and curved wires](drawing_arcs) | | Path node (node-edit mode) | **Alt** | give the node symmetric curve handles | | Curve handle | **Alt** | break the symmetry, making it a corner instead of mirroring the opposite handle |