Sketch overlap merge, status toasts, curve segment angle, and Add bone options - #264
Merged
Merged
Conversation
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
There are 4 total unresolved issues (including 3 from previous reviews).
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 0c2c222. Configure here.
added 4 commits
September 14, 2026 17:49
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.

Summary
TKGeomBaseaccess violation when a new circle coincided with an existing arc (for example a bone end-cap).success,info,constraint,warning,error). Scripts:ezy.msg(text [, kind]). Add bone uses info for the next click, amber for rejected input, green on commit, and red if create fails.gui.curve_deviation_angle_deg, 2-20, default 6) controls AIS curve tessellation. Shared face-mesh polygons are force-cleaned so sketch arcs actually follow the slider.Fixes #263
Test plan
EzyCad/EzyCad_tests.EzyCad_tests(overlap cases inskt_topo_tests).docs/usage-sketch.md,docs/usage-settings.md,docs/usage-occt-view.md,docs/scripting.md, CHANGELOG [Unreleased].Note
Medium Risk
Sketch edge add/merge and undo recording touch core planar graph behavior; OCCT tessellation redisplay is broad but display-only. Add-bone flow changes are localized to sketch tools.
Overview
This PR tightens 2D sketch topology so collinear and same-circle overlaps no longer duplicate edges: existing geometry splits at overlap ends, only new atomic pieces are added, and undo records stored arc/line pieces so undo does not drop untouched spans or no-op redraws. That also fixes a TKGeomBase crash when a new circle sat on an existing arc (e.g. bone end-cap).
Status toasts are no longer always red:
Status_msgkinds drive color,GUI::show_statusmapsResult_status(user errors → amber constraint), andezy.msg(text [, kind])is wired through Lua/Python. Many call sites switch from plainshow_messageto typed toasts.View presentation adds
gui.curve_deviation_angle_deg(2–20°, default 6):Occt_view::apply_curve_deviationpushes AIS tessellation to the context and shapes, with extra cleanup so sketch wireframe arcs follow the slider instead of stale face polygons.Add bone gains persisted radius and total-length node options, temporary measure segments for Tab entry, axis-tangent snap on the second circle while placing radius 1, Holes → None after the waist commits the outline (and hole handlers are skipped when holes are off), and kind-aware progress toasts.
Reviewed by Cursor Bugbot for commit d5a1ce6. Bugbot is set up for automated code reviews on this repo. Configure here.