Repository navigation
Fix Modeling tool bugs found in a tool audit - #87
Merged
Merged
Conversation
Option on macOS (Alt elsewhere) added to the selection in Select and Lasso and softened edges in the Eraser, because a leftover helper counted Alt as Ctrl. Cmd is already mapped to Ctrl before tools see it, so only Ctrl now adds, removes or softens. Scale keeps its documented Ctrl-or-Alt centre anchor. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Pressing Esc while dragging cancelled the box, outline or eraser stroke but also cleared the flag that ignores the browser's click after a drag. Releasing then selected or cleared what was under the pointer (closing the open group), started a click outline, or erased the edge under the pointer. Esc mid-drag now swallows that trailing click, and a new press clears any click still owed so a missing one cannot eat the next real click. Select also reports a press as pending work, so Esc during a box drag over a set-aside tool ends the drag in Select instead of handing the release and click to that tool. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Guides were among the Eraser's pick kinds but were never marked, so they could not be erased and a guide in front of an edge kept the edge from being erased. Guides of the open edit context are now marked and deleted through the guide delete command, in the same undo step as the rest of the stroke. Shift and Ctrl leave guides alone, as they do dimensions and text. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Inside a rotated or scaled group, the outline that follows the cursor moved in world axes while the component was placed in the group's axes, so the result differed from the preview. The outline now uses the same transform the placement gets. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The Orbit tool's status and help said Shift pans, but the tool ignored Shift and always orbited. Holding Shift when a drag starts now pans for that drag, through the same camera pan as the Pan tool. The help also lists Ctrl for a free orbit. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The toggle and its Alt tap only changed a flag the tool displayed; the move never used it, because moved faces and edges of a solid always fold into a valid solid. The tool options bar now shows only Copy, and Alt is no longer taken by Move. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A selection holding a guide, a text or an edge drawn on a solid's face failed as a whole. Now: - Guide points, lines and segments follow the transform, and copy mode copies them. - Leader and model text move by their anchor and label point; copies are new texts. Screen text, fixed to the screen, is left where it is. - Edges drawn on a solid's face stay on the face while the rest of the selection moves. Selected on their own, the move is refused with a message saying to move the solid. - The moved outline draws guides, and leader lines and text. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Intersect of solids that do not overlap, and Subtract or Trim with a cutter that covers the whole target, used to delete the inputs without a word. The commands now refuse an empty result before the document changes and say why. Refusal messages are plain sentences without internal ids, and a refusal from the context menu shows in the status bar. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Resize Model scaled solids, sketch geometry, guides, section planes, dimensions, texts, groups, components and images, but left imported mesh parts and placed scene lights where they were. They now scale uniformly about the same point as everything else, and an area light's panel scales with them. Resize Model stays model-wide when it is started from inside a group. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Tape Measure kept the last mode it was used in, and Protractor kept Create guides off once it was turned off, so choosing either tool could quietly measure without guides or make guides when only a measurement was wanted. Each time it is chosen, Tape Measure now starts in Guide lines and Protractor starts with Create guides on. Setting a tool aside for a camera tool and returning to it keeps its mode. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Done, Reset, Flip and Rotate were only in the right-click menu while positioning a texture, and the tool options bar stayed empty. The bar now offers Done, Reset, Flip Left/Right, Flip Up/Down and Rotate 90, 180 and 270 degrees. Each runs the same command as its menu item, and they are disabled until a face is being positioned. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Circle, Polygon, Arc, 2 Point Arc, 3 Point Arc, Pie and Freehand now put the edges they create on the active tag, as Line and Rectangle do. Faces formed by any drawing command (curves, Line, Rectangle) also go on the active tag, unless they take over an existing face's attributes. Changing a curve's segments or radius keeps its edges' and face's tag. Callers of addCurveToDraft that pass no tag keep the default tag. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A width and height typed as a list, or typed right after the commit to re-edit the rectangle, now keep the side of the first corner that the pointer is on, as the Width and Height fields already did. A negative value still takes the other side. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…s end value Before the first click of Arc, Pie, 2 Point Arc and 3 Point Arc, a bare number changes nothing (unless it re-edits the arc just drawn), and the status now says to type it with s for a segment count, as Circle does for sides. Their value before the first click is labelled Segments and shows the count. 3 Point Arc's end stage takes a typed length as the end point's distance from the second point, toward the pointer. Its value was labelled Radius; it is now a Length field showing that distance. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… drawn Circumscribed goes back to inscribed each time Polygon is chosen. Each polygon now records its own mode, so redrawing it for a Sides change keeps that mode instead of reading the live toggle. While the tool options bar shows the polygon just drawn, a Ctrl tap or the bar's toggle redraws it in the other mode as one undo step. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Typing a new distance right after an offset undid the original and did not restore it when the new offset failed; it is now put back, as the bar's Allow overlaps re-edit already did, and stays the applied operation. The status no longer says "negative = inward": it says a typed value offsets toward the pointer's side and a negative one the other side, which is what the tool does. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
An audit of the Modeling tools found places where the tools did something different from what their help, status text or bar controls promised. This fixes them.
Selection and the Eraser
Move, Rotate, Scale and placement
Drawing
Other tools
Behavior change for the AI model API
A subtract where one cutter would swallow one of several pieces is now refused. It used to delete that piece silently.
Testing
Typecheck, lint, the SPDX and license checks, and the full suite pass (4,558 tests). Each fix has new tests, and the tests that were checked fail without their fix. User help in
docs/help/modeling/is updated, and every section stays within the AI Help chunk size. Not yet checked by hand in the running app.🤖 Generated with Claude Code