Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### Changed

- **User guide**: Chamfer (<kbd>C</kbd>) and Fillet (<kbd>F</kbd>) have their own sections. The Options **?** for those modes opens the matching section. **Add midpoint nodes** for square, both rectangle tools, and slot stays on the line-edge midpoint section (those shapes are built from straight edges). Settings **Sketch -> Nodes** has three midpoint rows: line edges (default off), square/rectangle (default on), and slot straight edges (default off).
- **Task toolbar**: Sketch / Design / Workbench switcher; the tools row shows only the current task. Design has its own Move / Rotate / Scale / Align shafts (bake bodies for CSG). Workbench has Move / Rotate / Align shafts (instance pose). <kbd>G</kbd> / <kbd>R</kbd> / <kbd>J</kbd> stay on the current task; <kbd>S</kbd> enters Design Scale.
- **Mode names**: Design idle is `Design_inspection` (was `Normal`); Sketch idle is `Sketch_inspection` (was `Sketch_inspection_mode`). `ezy.get_mode()` / `ezy.set_mode` use the new names; `Normal` and `Sketch_inspection_mode` still parse.
- **Move / rotate / scale space**: Options **Local** (default) or **World**. Local uses the first selected solid's frame (origin and X/Y/Z from **Show axes**). World keeps global XYZ at that solid's bounding-box center. Persisted as **`gui.transform_space`**.
Expand Down
9 changes: 6 additions & 3 deletions docs/usage-settings.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ Between those, the pane has collapsible sections. Expand a section to see its co
6. **Sketch** — Nested sections (open state remembered in `gui.settings_headers`):
- **Appearance** — edge and face display colors; shapes in sketch mode (faint/ghost/wire).
- **Dimensions** — length-dimension appearance and behavior (most rows have **?** help).
- **Nodes** — permanent node marker size and origin color; midpoint options for line/rect/slot tools.
- **Nodes** — permanent node marker size and origin color; three midpoint rows (line edges, square/rectangle, slot).
- **Snap** — snap guide colors, line width (desktop), mode (including *None*), and **All co-axial nodes** (hidden when mode is *None*).
- **Underlay** — underlay highlight color.

Expand All @@ -75,7 +75,7 @@ Between those, the pane has collapsible sections. Expand a section to see its co
- **Arrow style** — *Standard*, *Sharp*, *Wide*, or *3D shaded*
- **Arrow orientation** — *Automatic*, *Internal*, or *External*
- **Show sketch dimensions** — global on/off for length dimensions on all sketches (tool mode may still limit which sketch shows dims when on)
- **Permanent node annotation size** (scale for **+** markers on the sketch **Origin** and [Add node](usage-sketch.md#add-node-tool) points; see [Sketch origin](usage-sketch.md#sketch-origin)), **Origin marker color**, **Add midpoints to line edges** / **square/rectangle** / **slot edges**, **Underlay highlight color**, **Snap guide color (node)** / **(axis)**, **Snap guide line width** (desktop only; slider **0.5** to **8.0**; default **1.0**), **Snap guide mode** (*Traditional*, *Fullscreen*, *Both*, *None*), **All co-axial nodes** (hidden when mode is *None*)
- **Permanent node annotation size** (scale for **+** markers on the sketch **Origin** and [Add node](usage-sketch.md#add-node-tool) points; see [Sketch origin](usage-sketch.md#sketch-origin)), **Origin marker color**, **Add midpoints to line edges** (default off) / **square/rectangle** (default on) / **slot edges** (straight edges only, default off), **Underlay highlight color**, **Snap guide color (node)** / **(axis)**, **Snap guide line width** (desktop only; slider **0.5** to **8.0**; default **1.0**), **Snap guide mode** (*Traditional*, *Fullscreen*, *Both*, *None*), **All co-axial nodes** (hidden when mode is *None*)

**WebAssembly build** — Open CASCADE line-width controls (`SetWidth` / `Prs3d` line width) have no visible effect in the browser (WebGL/GLES). The **Settings** pane hides **Edge thickness**, **Dimension line width**, and **Snap guide line width** on the web build. Saved JSON may still contain those keys from a desktop session; they are not shown as editable rows in the browser UI.

Expand Down Expand Up @@ -121,7 +121,7 @@ Sketch-related preferences are edited in the **Options** panel while you use a s
- **Sketch options** (all sketch tools): **Snap guide mode** (*Traditional*, *Fullscreen*, *Both*, *None*), then **Snap dist** and **All co-axial nodes** (global co-axial grid vs closest-per-axis only; both hidden when mode is *None*), and **Faint shapes** (show document solids as ghost/wire while sketching; style and **Shape Faint Strength** in **Settings -> Sketch -> Appearance**). *None* disables snap-to-node and snap guides. See [How sketch snap works](usage-sketch.md#sketch-snapping). **Snap guide color (node)**, **Snap guide color (axis)**, **Snap guide line width**, **Snap guide mode**, and **All co-axial nodes** are also in **Settings -> Sketch -> Snap** (persisted in `gui.*` keys below).
- **Extrude sketch face**: under **Extrude**, **Both sides** (default on), **Twist**, and **Material** for the new solid (same document preset as **Normal** mode Options **Material**). With **Twist** on, the first drag sets height, then a second drag sets twist angle about the face center; <kbd>Tab</kbd> / <kbd>Shift+Tab</kbd> enter height / angle. Fast drag preview for dense faces is configured in **Settings -> Sketch -> Appearance** (**Extrude fast preview**); with **Twist**, face copies rotate as well as translate. Other modes that still show **Material** in Options use that same preset when relevant (for example **Sketch from planar face**).
- **Add edge** / **Add node** (and similar): a **Shortcuts** line documents TAB / Shift+TAB typing behavior.
- **Add line edge**: under **Options**, **Add midpoint nodes** ([usage-sketch.md#line-edge-option-add-midpoint-nodes](usage-sketch.md#line-edge-option-add-midpoint-nodes)) and **Place from center** ([usage-sketch.md#line-edge-option-place-from-center](usage-sketch.md#line-edge-option-place-from-center)); each has a **?** link. See also [Line edge Options](usage-sketch.md#line-edge-options). The midpoint setting is also in **Settings -> Sketch -> Nodes** (persisted).
- **Add line edge**: under **Options**, **Add midpoint nodes** ([usage-sketch.md#line-edge-option-add-midpoint-nodes](usage-sketch.md#line-edge-option-add-midpoint-nodes)) and **Place from center** ([usage-sketch.md#line-edge-option-place-from-center](usage-sketch.md#line-edge-option-place-from-center)); each has a **?** link. See also [Line edge Options](usage-sketch.md#line-edge-options). **Add midpoint nodes** is the same control on multi-line, arc, square, both rectangle tools, and slot, because those tools place straight edges; the checkbox **?** opens that same section. The saved rows under **Settings -> Sketch -> Nodes** are separate: **Add midpoints to line edges** (`gui.add_mid_pt_edges`, default **off**; also multi-line and arc), **Add midpoints to square/rectangle** (`gui.add_mid_pt_rect_edges`, default **on**), and **Add midpoints to slot edges** (`gui.add_mid_pt_slot_edges`, straight edges only, default **off**).
- **Add bone**: under **Options**, **Add center nodes**, **Add radius nodes**, and **Add total length nodes** (all default on) and **Holes** (**None**, **One radius**, **Two radii**). Persisted as **`gui.bone_add_center_nodes`**, **`gui.bone_add_radius_nodes`**, **`gui.bone_add_total_length_nodes`**, and **`gui.bone_holes`**. See [Bone Creation Tool](usage-sketch.md#bone-creation-tool).
- **Sketch operation** (mirror / revolve axis): mirror, revolve, angle, and clear-axis actions (see [usage-sketch.md](usage-sketch.md#operation-axis-tool)).

Expand Down Expand Up @@ -239,6 +239,9 @@ If saved layout text has no `[Docking]` section (older installs), a default dock
| `edge_dim_arrow_orientation` | integer | **0** automatic, **1** internal, **2** external. |
| `show_sketch_dimensions` | boolean | When false, hides length dimensions on all sketches. |
| `permanent_node_anno_scale` | number | Scale for permanent **+** markers: the sketch **Origin** and user-placed Add node points ([Sketch origin](usage-sketch.md#sketch-origin); **0.25** to **3.0**; default **1.0**). |
| `add_mid_pt_edges` | boolean | **Settings -> Sketch -> Nodes -> Add midpoints to line edges.** Line, multi-line, and arc **Add midpoint nodes** (default **false**). Legacy `add_midpoints_to_linear_edges` is read when this key is absent. See [Line edge option: Add midpoint nodes](usage-sketch.md#line-edge-option-add-midpoint-nodes). |
| `add_mid_pt_rect_edges` | boolean | **Add midpoints to square/rectangle** (square and both rectangle tools; default **true**). Same help section as line edges. |
| `add_mid_pt_slot_edges` | boolean | **Add midpoints to slot edges** (slot straight edges only; default **false**). Same help section as line edges. |
| `bone_add_center_nodes` | boolean | Add-bone Options: commit permanent **Bone A** / **Bone B** (default **true**). |
| `bone_add_radius_nodes` | boolean | Add-bone Options: commit permanent **Bone A+** / **A-** / **B+** / **B-** axis-tangent nodes (default **true**). |
| `bone_add_total_length_nodes` | boolean | Add-bone Options: commit permanent **Bone A tip** / **Bone B tip** outer-end nodes (default **true**). |
Expand Down
15 changes: 9 additions & 6 deletions docs/usage-sketch.md
Original file line number Diff line number Diff line change
Expand Up @@ -168,9 +168,12 @@ While the **Line Edge** tool is active, the Options panel (under the **Options**

When checked, each new straight edge created with this tool (and with **Add multi-line edge**) gets an automatic **midpoint node** at the center of the segment. That node is a snap target but does not show a **+** marker and is not listed under **Nodes** in the [Sketch List](usage.md#sketch-list).

- Default is **off** (no midpoint nodes on new edges).
- The same preference is available globally and persistently in **Settings -> Sketch -> Add midpoints to new linear edges** (saved as `gui.add_mid_pt_edges`). The Options checkbox mirrors that setting for the current session while you use line tools and the **Arc Segment** tool.
- Affects **future** edges from the Line, Multi-line, and Arc Segment tools.
**Add midpoint nodes** is the same control for every tool that places straight edges, so those tools share this page. A new straight-edge tool uses this section rather than a page of its own. Square, rectangle from two points, rectangle with center point, and slot are built from straight edges, so their Options checkbox and the matching **Settings -> Sketch -> Nodes** rows open here.

- **Line**, **multi-line**, and **arc**: default **off**. Saved as **Add midpoints to line edges** (`gui.add_mid_pt_edges`). The Options checkbox mirrors that row while those tools are active. Older settings files may still have `add_midpoints_to_linear_edges`; that value is read when `add_mid_pt_edges` is absent.
- **Square** and both **rectangle** tools: default **on**. Saved as **Add midpoints to square/rectangle** (`gui.add_mid_pt_rect_edges`).
- **Slot**: straight edges only, default **off**. Saved as **Add midpoints to slot edges** (`gui.add_mid_pt_slot_edges`).
- Affects **future** edges from the tool you are using.
- Midpoint snapping on **intersection splits** (when a new edge crosses an existing one) is separate topology behavior; see [Automatic splitting on edge intersections](#sketch-snapping).

(line-edge-option-place-from-center)=
Expand Down Expand Up @@ -218,7 +221,7 @@ When checked, the **first click** sets the **midpoint** of the new edge (not an
- Lines can be used as construction geometry or as part of your final design
- The line tool works in any sketch plane
- Multiple line edges can be created in sequence by right-clicking after each line
- **New straight edges automatically split existing straight edges** at interior intersection points (or when snapping to an existing midpoint, if midpoints were created). This is how you divide a closed profile into multiple faces (for separate extrusions, etc.) — just draw the crossing or connecting line; no extra "split" step is required. The same logic applies to multi-line sequences. Collinear overlaps (including drawing the same segment twice) merge to a single copy of each piece. Midpoint creation for new edges is controlled by **Add midpoint nodes** in the Line Edge Options panel or **Settings > Sketch > Add midpoints to new linear edges** (default off).
- **New straight edges automatically split existing straight edges** at interior intersection points (or when snapping to an existing midpoint, if midpoints were created). This is how you divide a closed profile into multiple faces (for separate extrusions, etc.) — just draw the crossing or connecting line; no extra "split" step is required. The same logic applies to multi-line sequences. Collinear overlaps (including drawing the same segment twice) merge to a single copy of each piece. Midpoint creation for new edges is controlled by **Add midpoint nodes** in the Line Edge Options panel or **Settings -> Sketch -> Nodes -> Add midpoints to line edges** (default off). Square, rectangle, and slot use the same control with their own defaults; see [Line edge option: Add midpoint nodes](#line-edge-option-add-midpoint-nodes).
- **Place from center** is useful for symmetric segments (e.g. a divider through the middle of a rectangle) without measuring half-lengths manually.

## Multi-Line Edge Tool
Expand Down Expand Up @@ -429,7 +432,7 @@ While the **Arc Segment** tool is active, the Options panel shows the same **Add

- When **on**, each new arc gets an automatic **midpoint node** at the geometric center of the arc curve (parametric half). That node is a snap target only; it does not show a **+** marker and is not listed under **Nodes** in the [Sketch List](usage.md#sketch-list).
- When **off** (default), only the three clicked points (start, bulge, end) are stored as nodes.
- The setting mirrors **Settings -> Sketch -> Add midpoints to new linear edges** (`gui.add_mid_pt_edges`) for the current session.
- The setting mirrors **Settings -> Sketch -> Nodes -> Add midpoints to line edges** (`gui.add_mid_pt_edges`) for the current session.

**Tips:**
- The three clicks define a unique circular arc; the second click controls bulge direction (which side of the chord the arc curves toward).
Expand Down Expand Up @@ -950,7 +953,7 @@ In both cases, Add node never leaves a **permanent edge** between two clicks the

Each sketch includes a built-in **Origin** (see [Sketch origin](#sketch-origin)) — shown as a permanent **+ inside a circle** on the **active sketch** when enabled in **Sketch properties**.

Nodes you place with **Add node** are treated as **user-placed** points. When the sketch is visible, eligible points can show a red **+** marker in the 3D view so you can see and pick them; you can delete user-placed markers from the selection. Geometry that exists only as automatic **edge midpoints** for snapping is separate (those nodes are not shown the same way; controlled by the **Add midpoints to new linear edges** setting in Settings > Sketch, default off).
Nodes you place with **Add node** are treated as **user-placed** points. When the sketch is visible, eligible points can show a red **+** marker in the 3D view so you can see and pick them; you can delete user-placed markers from the selection. Geometry that exists only as automatic **edge midpoints** for snapping is separate (those nodes are not shown the same way). Whether a tool adds them is set per tool group under **Settings -> Sketch -> Nodes**; see [Line edge option: Add midpoint nodes](#line-edge-option-add-midpoint-nodes).

### How to use

Expand Down
Loading
Loading