Repository navigation
Add screw holes, teardrop, and sketch clipboard features - #1
Closed
plazmabokor wants to merge 110 commits into
Closed
plazmabokor wants to merge 110 commits into
plazmabokor wants to merge 110 commits into
Conversation
…text Multilanguage (helvetiker) and Rounded lacked umlauts, ß, é or €, and three.js draws a question mark for a missing letter. They now borrow what they lack from Sans, scaled to their units, so saved designs show the right letters. New text starts in Sans, which has everything. create_shape dropped textCurved, textRadius, textSize, textInward and textFlipped: makeShapeFromAsset did not copy them, so the layout never ran. Both found by plazmabokor in henmedia#48. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…spinner without selected edges The green coordinates at the corner ruler now also appear when several bodies are selected; they measure the shared outline, and a typed value moves all of them together in one undo step. Changing the fillet/chamfer size before any edge is selected no longer leaves the Apply spinner running forever. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…xt; fresh pictures Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The edge tool meshed every treated body with a fixed angular deflection (0.16 rad in standard), however tight the chord already was. The angle limit now loosens as the chord tightens (angular x linear stays at its value at the cap, up to 0.5 rad); at the cap nothing changes. On torus faces OCCT does not hold the chord with the looser angle, so meshTreatedBody checks them and, if the mesh strays, meshes fresh copies with the old angle. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018PZgw7hpWq3uABHCn8iZMo
A new catalog shape for horizontal holes that print without support: a round part with a point on top, so no layer has to bridge the hole. Width is the diameter, depth the length along the hole, height runs up to the tip; the tip angle (default 90 degrees, flanks at 45) follows from width and height and can be typed in the inspector, which then sets the height. A new diameter keeps the tip angle. Set to hole and grouped, it cuts a teardrop through the part with the point up. Wired through catalog, viewport, editor mesh, inspector, shape defaults, .lyl, MCP (creatable kind, no extra keys) and the shape icon; listed in the start page's library text and in the guide (shapes and mechanics chapters). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The sentence "Read the full guide, with pictures" sat inside a grey line and did not read as a link. It is now a button of its own below the help text, in the accent colour, with an arrow, in light and dark mode. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Teardrop now follows the bent tube; star, heart and crescent close the list just before the ruler. The inspector header fits long names on one line: a name with a word of twelve letters or more gets a smaller size, the header icons are a little narrower and closer together. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The "too many triangles" message and the guide (edges and threads chapters, German and English) now tell the reader to chamfer or round the body first and add the thread afterwards. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Two cutters for screw heads that sit in the part: a round pocket for a socket-head screw (DIN 912) and a cone for a countersunk screw (DIN 7991), both standing head end up. Width is the head diameter, height the whole length; the shaft diameter, the pocket depth (counterbore) or the cone angle (countersink, 90 degrees by default) are set in the inspector. Defaults fit an M3 screw. They sit in front of the teardrop in the shape list. Wired through catalog, viewport, editor mesh, inspector, shape defaults, .lyl, MCP (new keys screwHoleShaft, screwHoleHeadDepth, screwHoleAngle), icons, start page text and the guide. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The three bore shapes now go to the edge tool as real solids, not display meshes. The teardrop is its front-view outline (a circular arc and two lines) pushed along the depth; the screw holes are a half-section turned around the axis, so they carry plane, cylinder and cone faces. The profile part gets a "revolution" kind and a frame that lays the body into the shape's local frame. Oval screw holes and a teardrop without room for a tip keep the mesh. Kernel test: faces, surface types, volume, placement, turn, fillet and chamfer on real OCCT. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The teardrop, counterbore and countersink get the same "sides" controls as a cylinder (follow the size, or set them), in the inspector and in the shape defaults; the count only shapes the display mesh. Ellipse, oval cylinder, tube (and ring), half sphere, round roof and rounded box now go to the edge tool as exact solids. The half sphere is a quarter ellipse turned around the axis, the round roof a half ellipse pushed along the depth, the rounded box a rounded rectangle whose flat ends are rounded in the kernel when asked. Edges in the default shapes: ellipse 348 -> 6, tube 600 -> 6, half sphere 3008 -> 2, round roof 387 -> 6, rounded box 108 -> 24. Kernel test: volumes, placement and fillets on real OCCT. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The STEP export no longer skips shapes that are an outline pushed up or turned around an axis: star, heart, crescent, slot, polygon, honeycomb, spur gear, dovetail, single-glyph text, ellipse, oval cylinder, tube, half sphere, round roof, rounded box, teardrop, counterbore and countersink go out as the same exact bodies the edge tool gets, and as holes too. The raw kernel behind brepjs is now reachable through occtKernel(). Kernel test: volumes after a STEP round trip, and a counterbore cut out of a plate. The guide gets a section on the side count (what the slider shapes, where it matters, where it does not, how to use it) in the shapes chapter and an updated STEP row in the files chapter. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Teardrop, counterbore and countersink shapes; more shapes as exact CAD bodies (ellipse, oval cylinder, tube, half sphere, round roof, rounded box); STEP export of outline shapes; side-count sliders and guide section; finer meshes for small fillets (henmedia#50) and sketch zoom like the 3D editor (henmedia#49); guide pictures of the shape menu and start page retaken. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The word Anleitung/Guide next to the logo name sat centred, not on the baseline of "layerling". Both now share a baseline. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The join type for shell and offset (andymai/occt-wasm#366) is part of 5.4.0, so the own build from henmedia/occt-wasm is no longer needed. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…s on selection Contributed by @gogades.
…for dimensions on selection Follows the merge of PR henmedia#51 (@gogades): F, Home and Shift+F in the sketch are listed in the shortcuts dialog (and so in the guide), the sketches chapter says that dimensions show for the selection, and the sketch pictures are retaken. Changelog entry under Unreleased. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
… per ellipse; turned domes pass the plausibility check Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018PZgw7hpWq3uABHCn8iZMo
…deselect, drag and other edits (henmedia#65) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… load (henmedia#65) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…henmedia#68), Imperial fixes (henmedia#65) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Add section view tool to camera controls bar with interactive popover panel - Support slicing along X, Y, or Z axes with normal flip and centering - Continuous offset slider and numeric input bounded to scene/selection extents - Purely visual non-destructive clipping via Three.js localClippingEnabled on shape layers - Raycast filtering so clipped geometry cannot be clicked, enabling interior inspection - 3D cutting plane helper overlay with toggle - Full localization in German and English, and support for light, dark, and graphite themes - Unit tests in tests/unit/sectionView.test.ts
…as selected and the property inspector is collapsed. Now it always appears.
…triangles Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018PZgw7hpWq3uABHCn8iZMo
…ens upwards, no shader rebuild per move; guide, start page, changelog Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ector, import/export shortcuts, edge tool on STEP imports Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Dragging a shape locks its edges or centre onto edges or centres of other shapes, with a pink guide line. Alt pauses it; a checkbox in the snap grid menu and in the settings switches it off. Suggested by darkwingbreydin. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The thread shape (rod, screw, nut, tapped hole; V, trapezoidal, round and Whitworth profiles, either hand) is built as an exact solid from the same measures its mesh is drawn from: the profile swept along a helix half a turn at a time, sewn together, the ends cut by the chamfered solid of revolution, plus the screw head or the nut's hex body. Whitworth crests and roots are true arcs. The mesh stays for display and as the fallback; no .lyl field. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018PZgw7hpWq3uABHCn8iZMo
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018PZgw7hpWq3uABHCn8iZMo
The spring is built as an exact solid from the same measures its mesh is drawn from (springBuildPlan, shared with createSpringGeometry): a round wire swept along the helix half a turn at a time, the copies sewn together with the two square end discs. Footprint stretch, rotation and mirroring come from the same transform as the mesh. The mesh stays for display and as the fallback; no .lyl field. The display mesh draws the wire as a polygon, so the worker's volume check takes the mesh volume up by that polygon's share of the circle. Co-Authored-By: Claude <noreply@anthropic.com>
plazmabokor
force-pushed
the
spring-exact
branch
from
October 2, 2026 11:46
ef5dae3 to
95022bd
Compare
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
This release adds three major feature groups and supporting infrastructure:
Screw hole shapes – New
counterboreandcountersinkshapes for creating holes that accommodate screw heads. Includes exact CAD solid generation viathreadSolid.tsandspringSolid.ts.Teardrop shape – A new
teardropshape for horizontal holes that print without support, with exact CAD solid generation.Sketch clipboard – Copy, paste, and duplicate functionality within sketches via new
sketchClipboard.tsmodule. Includes UI updates to the sketch toolbar and keyboard shortcuts.Supporting infrastructure:
displayStepFromMillimeters,formatLengthMm, etc.)Documentation and guides:
Testing:
UI/UX improvements:
Testing
npm run typecheck– All type checks passNotes
https://claude.ai/code/session_01TrCgK6vV1pX3r3DuF6ayxW