178fc47ed7
Custom title bar: on Windows and Linux the application bar is the window's title bar (drag to move with OS snapping, double-click to maximize or restore, minimize/maximize/close buttons, resize from the edges and corners); macOS keeps its traffic lights over the bar; the web build has no window buttons; ui.window control method (adapted from VectorCraft)
bherbruckandClaude Opus 5.52026-10-08 03:54:15 +00:00
e5560e8035
Sheet metal: rules as expressions (Thickness, K-factor, bend radius, reliefs, gaps; may use parameters), sheet bodies kept as flat patterns and sewn folded from exact faces (new kernel::sew), Flange (base, edge with height to the outer face, angle, inside/outside/middle, several edges at once with corners closed to the rule gap, contour from an open chain), Hem, Unfold/Refold with cut-outs that follow the bends, Convert to Sheet Metal, flat pattern with bend lines and bend table, DXF export; recipes: sm_flange, sm_hem, unfold/refold, rule edits (oracle 67-76 all pass)
bherbruckandClaude Opus 5.52026-10-08 03:50:06 +00:00
df64a373b0
Sketch links: body-based references (edges, faces, silhouettes, sections, iso curves) are cached by model identity, so editing a sketch with projections no longer re-projects (30x faster per edit on a 20k-triangle model)
bherbruckandClaude Opus 5.52026-10-08 04:11:06 +00:00
7ca6e9278b
Loop blends: sharp corners between straight edges meet in mitres (ellipse arcs), arcs of exactly the blend's radius become sphere octants (pole-free), and loops plus the other edges blend in order (every edge of an extruded part: sphere and torus corners)
bherbruckandClaude Opus 5.52026-10-08 03:50:00 +00:00
457ed7fed7
Offset works on splines, ellipses and conics (and chains through them): the offset curve becomes a fit spline within a few hundredths of a millimetre
bherbruckandClaude Opus 5.52026-10-08 03:55:48 +00:00
205ddfcf27
Sketch Fillet on corners of a line and an arc or two arcs (the tangent arc nearest the corner, curves cut back to it, radius dimension)
bherbruckandClaude Opus 5.52026-10-08 03:43:57 +00:00
9a9caa6511
Browser tree: components with an activation radio (others drawn faded), ground pin, groups in Bodies/Sketches/Construction (new, from selection, rename, ungroup, kept in the design: browser.group/ungroup/rename_group/move/order), drag and drop to reorder, into and out of groups and into another component, Ctrl/Shift multi-select, hover lights the bodies, folds remembered; occurrence Move/Copy with a gizmo and Capture Position/Revert; the viewport shows bodies where their occurrences place them
bherbruckandClaude Opus 5.52026-10-08 02:11:36 +00:00
7e373ff1f7
Draft of walls between caps on non-convex bodies: planes tilt about their neutral-plane line, cylinders become cones (47: drafted round-ended pocket)
bherbruckandClaude Opus 5.52026-10-08 03:29:15 +00:00
94a0cdef77
Ellipse dimensions: major radius (type major: centre to axis end) and minor radius (a radius dimension on the ellipse)
bherbruckandClaude Opus 5.52026-10-08 03:34:01 +00:00
59685a9180
Shell and offset faces on bodies of planes and cylinders (filleted boxes, bosses: each face moves along its normal, cylinders change radius, corners and arcs follow); surface classification leaves out singular points (cone apexes); recipes: holes on cylinders drill toward the axis
bherbruckandClaude Opus 5.52026-10-08 03:18:16 +00:00
d285cedd73
Trim and Break on ellipses, splines and conics: cut at the exact crossings (alternating projection onto both curves), pieces stay exact (Bézier spans as single-span control splines, conic arcs as conics); geom Seg2::split_at and closest_param
bherbruckandClaude Opus 5.52026-10-08 03:23:40 +00:00
097217a3f3
Sketch drawing: points dropped on a curve stay on it ("on:<curve>:x,y" point arguments add a point-on-curve constraint; On hint while drawing)
bherbruckandClaude Opus 5.52026-10-08 03:12:36 +00:00
a6dc759a02
Fix: rectangles over-constrained after an edit (dragged sides collapsed)
bherbruckandClaude Opus 5.52026-10-08 02:46:35 +00:00
c2309eb43b
Joints engine: joint origins that snap to faces, round ends or points (re-found on every solve, so joints follow edits), joints (rigid, revolute, slider, cylindrical, pin-slot, planar, ball) with values, limits, flip and offset, As-built Joint, Rigid Group, Drive Joints, Motion Link, a joint-graph solver from grounded occurrences (degrees of freedom per occurrence, loop conflicts reported), Interference between bodies
bherbruckandClaude Opus 5.52026-10-08 02:39:16 +00:00
13b72bb011
Sketch drawing: clicking a model vertex projects it into the sketch (linked point) and draws from it, as Fusion does ("vertex:x,y,z" point arguments)
bherbruckandClaude Opus 5.52026-10-08 02:58:43 +00:00
8c88fb8d2d
Measure: split triangles that cut through curved faces onto the surface (trimmed faces after booleans were measured up to 15% off; 61's keyway volume now matches); oracle step check shows the original volume
bherbruckandClaude Opus 5.52026-10-08 02:39:05 +00:00
063d55bdb3
Sketch drawing: a point snapped to a line's midpoint stays there ("mid:<line>" point arguments add a MidPoint constraint)
bherbruckandClaude Opus 5.52026-10-08 02:45:16 +00:00
d729918034
Change Parameters dialog (params_dialog.rs): favourites, user parameters (unit, expression, value, comment; add, rename, delete) and model parameters grouped by sketch or feature, live validation and preview while typing, CSV/JSON import and export; parameter-name autocomplete (Tab) in every expression box: dialogs, inline sketch dimensions, manipulator values
bherbruckandClaude Opus 5.52026-10-08 02:24:25 +00:00
0da4c756c8
Sketch drawing inference: the cursor snaps to line midpoints and to horizontal/vertical alignment with the previous point (with an H/V/Mid hint), so lines drawn that way get their constraints inferred
bherbruckandClaude Opus 5.52026-10-08 02:35:08 +00:00
888ac0f5c4
Navigation bar: Look At (selected face or plane, else the active sketch) and visual style (shaded with edges, shaded, wireframe; kept between runs); F6 fits the view
bherbruckandClaude Opus 5.52026-10-08 02:22:42 +00:00
9c03f4bf32
Oracle replayer: features with fusion_effective_extent replay the extent Fusion actually used (63: its through-all is sized from vertices); noted per case in docs/oracle.md
bherbruckandClaude Opus 5.52026-10-08 02:07:55 +00:00
31030ed008
Exact free-form profiles: geom Seg2 gains cubic Béziers and conics (rational quadratics: exact length, area, split, tangents); sketch ellipses, conics, text, fit splines and control splines up to degree 3 enter profiles as exact segments wherever a loop uses a whole segment, and the kernel builds them as B-spline / NURBS edges (an extruded ellipse is three faces with the exact volume)
bherbruckandClaude Opus 5.52026-10-08 02:08:53 +00:00
8b4ec13d3b
Edit Feature dialogs for construction planes (offset, at angle), split, scale, offset face, thread, stock, pipe, emboss, rib/web, replace face and remove
bherbruckandClaude Opus 5.52026-10-08 02:05:06 +00:00
950fa39b0f
Coil dialog; value box for curve-based dialogs (pipe, rib, path pattern) at the picked curve
bherbruckandClaude Opus 5.52026-10-08 01:59:53 +00:00
83438eeaab
Coil walls as smooth B-spline surfaces (one per profile segment; ruled walls only as a fallback): a 3-turn coil has 4 faces instead of 724
bherbruckandClaude Opus 5.52026-10-08 01:56:30 +00:00
d2ba20e174
Dialogs with live previews for Rib, Web, Emboss, Replace Face, Align, Remove, Pattern on Path, Pipe and Stock
bherbruckandClaude Opus 5.52026-10-08 01:40:38 +00:00
015bc56c93
Offset Plane (with plane preview), Plane at Angle, Split Body, Scale, Offset Face and Thread dialogs
bherbruckandClaude Opus 5.52026-10-08 01:37:40 +00:00
fa8da64613
Context menus: radial marking menu in the viewport (Repeat on top, Undo, Delete, Press Pull, Create Sketch, Extrude, Move/Copy, Hole; right press-and-hold or a right drag on the ring flicks to pick), contextual lists for faces, edges, bodies, sketch entities (construction, fix, applicable constraints) and empty space; browser menus for bodies, sketches and components; rename box, Properties window; body.rename and sketch.redefine commands; ui.menu / ui.menuPick / ui.rename control methods
bherbruckandClaude Opus 5.52026-10-08 01:28:08 +00:00
1b664bb1b0
Sketch UI: click a constraint glyph to select it, Delete removes the constraint; glyphs sit half way along their curve; lighter randomized sketch test
bherbruckandClaude Opus 5.52026-10-08 01:24:48 +00:00
7a0cc85392
Preferences (File menu): theme, grid, perspective, auto-project face edges, body selection; all kept between runs
bherbruckandClaude Opus 5.52026-10-08 01:20:33 +00:00
967bee179a
Physical Material dialog (body appearance follows the material: steel, brass, copper, PLA…), Enter applies every OK dialog
bherbruckandClaude Opus 5.52026-10-08 01:17:45 +00:00
9df954cd94
Coil (PrimitiveCoil: diameter, two of revolutions/height/pitch, circular or square section inside/on/outside, start angle, handedness) on a new kernel helical sweep; loft to a point (sketch point sections, pyramids); recipes: a sweep along a fitted 3D helix replays as a coil (oracle 49, compared within 0.5% since Fusion's path is a spline fit) and loft point sections (oracle 37)
bherbruckandClaude Opus 5.52026-10-08 01:10:16 +00:00
4455402eab
Sketch profiles: grid-accelerated splitting and node merging, bounding-box nesting (large sketches several times faster); randomized sketch-editing test (thousands of mixed create/modify/constraint/projection/undo steps: no panics, designs round-trip)
bherbruckandClaude Opus 5.52026-10-08 01:11:36 +00:00
97abc687ae
Extrude taper handle: drag the ring beside the arrow sideways to tilt the walls (1 degree steps; Alt/Ctrl free)
bherbruckandClaude Opus 5.52026-10-08 00:59:19 +00:00
428237563a
Hole: depth arrow into the material (drag sets the depth; empty is through all)
bherbruckandClaude Opus 5.52026-10-08 00:55:53 +00:00
10e66785b1
Patterns of components (rectangular, circular or path: new occurrences at each placement); path pattern orientation test
bherbruckandClaude Opus 5.52026-10-08 00:44:47 +00:00
1988594a13
Section Analysis (FusionHalfSectionViewCommand, INSPECT): cut the view by an origin plane, construction plane or planar face with an offset (drag arrow) and flip; the inside of cut bodies shows a flat cap colour; live while the dialog is open, Remove Section on the right-click menu; viewport shader validated in a test
bherbruckandClaude Opus 5.52026-10-08 00:14:57 +00:00
24627d4f0a
Selection filter in the SELECT panel: select bodies (a face picks and highlights its body), faces, edges, vertices, sketch geometry
bherbruckandClaude Opus 5.52026-10-08 00:09:01 +00:00
b5051b2744
Rib and Web (to the next face or a depth, flip), Emboss/deboss on planar faces (EmbossCmd), Replace Face onto a parallel plane or face, Align (point to point, face to face), Remove (SoftDeleteCommand), timeline Copy/Paste of features (independent copies: own dimension parameters and input names, references remapped, optional translation)
bherbruckandClaude Opus 5.52026-10-08 00:34:47 +00:00
075808e7ee
Pattern on Path (PatternOnPath: spacing or first-to-last distance, flip, identical or path orientation; instance k moves by path(k·d) − path(0)), rectangular/circular/path patterns of bodies; recipes: path_pattern (oracle 53 passes)
bherbruckandClaude Opus 5.52026-10-08 00:25:39 +00:00
02de01f87c
Projection keeps free-form geometry exact: tilted circles project to ellipses and tilted arcs to conics (rational quadratic arcs), other sketches' ellipses, splines and conics in parallel planes map exactly, and smooth edges that are neither lines nor arcs become fit splines instead of line chains
bherbruckandClaude Opus 5.52026-10-08 00:38:10 +00:00
935e6465fa
Blends: whole smooth loops picked by one edge (tangent chain), full circles, walls at any angle, several loops per feature; flat non-plane faces healed into planes; fillets and chamfers repeat in feature patterns
bherbruckandClaude Opus 5.52026-10-08 00:30:36 +00:00
cde3af7a3c
UI: interactive tools for the new sketch commands (crates/ui-egui/src/sketch_tools.rs): Project/Intersect/Include and the other model-pick tools, Trim/Extend/Break by clicking the piece, Offset (curve then side), sketch Fillet/Chamfer at a corner (radius dialog), Curvature, tangent circles, SketchConstrainer, Polygon, Mirror and sketch patterns, Project To Surface, Intersection Curve, Spun Profile, point tools for midpoint line, tangent arc, ellipse, conic, splines, arc slots, blend curve, and a text box for Text; constraint glyphs on the active sketch; text outline points hidden. Hooks in tools.rs/viewport.rs/lib.rs are a few lines
bherbruckandClaude Opus 5.52026-10-08 00:28:01 +00:00
9330ee5698
STEP export: AP242 file of our own, names, colours, components as assemblies
bherbruckandClaude Opus 5.52026-10-08 00:12:14 +00:00
dd7485503a
Parameters: unit-aware parameters (an inch parameter reads bare numbers as inches), atan2/mod/trunc and clearer unit errors, cycle paths (a → b → a), rename with every reference following (expressions, feature inputs, dimensions, favourites, comments), deletes refused with the list of users, parameter errors shown on the features using them, parameters.add/rename/delete/comment/users/graph/complete and expr.evaluate; ChangeParameterCommand renames and favourites; hostile test no longer writes stray files
bherbruckandClaude Opus 5.52026-10-07 23:57:56 +00:00
a88b8eb6b3
SketchConstrainer (applies the constraint one or two entities nearly satisfy) and sketch.toggle_driven (driven/driving dimensions, with over-constraint check)
bherbruckandClaude Opus 5.52026-10-08 00:12:56 +00:00
57d01f8405
Kernel: revolved faces turned away from the angle wrap (booleans with revolved bodies work), cuts that leave pieces make separate bodies, trivial booleans (clear of / inside) by sampling, body mirrors with join; recipes: pattern source names, thread, holes at sketch points, mirror of bodies
bherbruckandClaude Opus 5.52026-10-07 23:50:36 +00:00
cb01314d35
3D sketch curves (wires): Include 3D Geometry keeps out-of-plane edges and curves 3D; Project To Surface (curves onto a face along the sketch normal), Intersection Curve (bodies/faces), Isoparametric Curve (u/v or a direction), Spun Profile (a body's outline about an axis) and Fit Curves to Mesh Section; all linked and re-resolved; wires drawn, inspected and deletable
bherbruckandClaude Opus 5.52026-10-07 23:54:18 +00:00
beab69cfb2
Measure tool (I): pick one or two vertices, edges or faces for length/area/position, minimum distance with ΔX/ΔY/ΔZ and a line in the view, and the angle between planar faces or straight edges (MeasureCommand items, engine test); theme switch from the control channel no longer leaves stale scene colours
bherbruckandClaude Opus 5.52026-10-07 23:29:17 +00:00
7518c4f4b5
Edit Feature dialogs for rectangular/circular patterns, loft, sweep and move (directions along other vectors are kept)
bherbruckandClaude Opus 5.52026-10-07 23:23:10 +00:00
f0cfeba59b
Parameters engine: feature inputs as named model parameters (dN, editable, referenceable), parameters table with sources, values, dependencies (uses/used by) and cycles, favourites, comments, CSV/JSON export and import; more units (inch, mil, yd, km, nm) and functions (exp, ln, log, sign, pow, hypot)
bherbruckandClaude Opus 5.52026-10-07 23:20:51 +00:00
6f349b79f5
AutoConstrain (from datum, and Finish with AutoConstrain): infers coincident, horizontal/vertical and tangent constraints, then dimensions until fully constrained; Insert DXF (ASCII: lines, arcs, circles, bulged polylines, ellipses, splines, text; $INSUNITS) and Insert SVG (paths with all commands, shapes, transforms, units; Béziers kept exact as splines/conics; text) into sketches; sketch.export_dxf; text outline points hidden (view::sketch_point_visible)
bherbruckandClaude Opus 5.52026-10-07 23:22:25 +00:00
b511ac6124
Sketch: drag points of the active sketch (the solver keeps the constraints, one undo step per drag); closed profiles shaded
bherbruckandClaude Opus 5.52026-10-07 23:14:24 +00:00
97d03e3824
Components: occurrences with transforms (instances and Paste New copies), world placement of the model (Session::world_state for display, measure, export), active component authoring frame, move/ground/capture/revert positions, move bodies and sketches between components, rename/delete, migration of older designs
bherbruckandClaude Opus 5.52026-10-07 23:10:40 +00:00
54ee20bef4
Sketch constraints and dimensions: Curvature (G2, ConstraintSmooth) and Polygon constraints; redundant constraints and dimensions are refused as over-constraining (Fusion behaviour), with driven (reference) dimensions that measure instead; arc length and linear diameter (about a centerline) dimensions; sketch.glyphs (constraint glyph anchors, conflicts) and sketch.snap (coincident/midpoint/on-curve/horizontal/vertical inference); solver damping floor keeps weakly seen variables from flying off
bherbruckandClaude Opus 5.52026-10-07 23:06:31 +00:00
a1accbf46e
Extrude: Two sides direction with a second draggable arrow, taper angle field; ground grid drawn under the model (bodies below the grid plane are no longer hidden by it); preview extent included in the view depth range
bherbruckandClaude Opus 5.52026-10-07 23:06:32 +00:00
a13f4664dc
UI: compile fix for the new feature kinds (Hole pattern rest, timeline icon fallback)
bherbruckandClaude Opus 5.52026-10-07 23:01:41 +00:00
840eddb875
Pipe (solid or hollow, along sketch curves), Bounding Solid, Scale (uniform or per axis), Offset Face (planar faces), physical materials with mass in Measure; sweeps keep profile holes
bherbruckandClaude Opus 5.52026-10-07 23:00:19 +00:00
37f4e4e49e
Kernel: shell of non-convex bodies with planar faces (faces offset with the body's topology)
bherbruckandClaude Opus 5.52026-10-07 22:55:49 +00:00
2f39f0381a
Kernel: push coincident faces apart before trying the boolean (no slow failing retries first)
bherbruckandClaude Opus 5.52026-10-07 22:54:43 +00:00
b3ca8911eb
Holes at sketch points (one feature, many holes, following the points) and threaded holes; cosmetic threads (FusionThreadCommand, ISO metric, model.threads); components groundwork: the document is a component tree (New Component, Create Components from Bodies, active component, component.list)
bherbruckandClaude Opus 5.52026-10-07 22:52:12 +00:00
61ed21847a
Rectangular and circular pattern, loft and sweep dialogs with live previews (pattern spacing arrow, loft sections by sketch in pick order, sweep path from sketch curves)
bherbruckandClaude Opus 5.52026-10-07 22:55:25 +00:00
6e20038906
Sketch Blend Curve (tangent control-point spline between two curve ends) and the Centerline line type (sketch.centerline: left out of profiles, drawn as an axis)
bherbruckandClaude Opus 5.52026-10-07 22:55:34 +00:00
2491c40fef
Sketch Text (MTextCmd, sketch.edit_text): glyph outlines of the embedded Liberation Sans (SIL OFL 1.1, attributed) as lines and conics that close into extrudable profiles; editable text, height, position and angle
bherbruckandClaude Opus 5.52026-10-07 22:47:30 +00:00
79a4194f6e
Revolve angle rotator (drag the arc end, 5 degree steps), right-click menu in the viewport (Repeat last command, commands for the selection, fit/home/undo), larger inline sketch dimension boxes
bherbruckandClaude Opus 5.52026-10-07 22:43:21 +00:00
3229fd9740
Kernel: booleans with coincident planar faces push the faces apart exactly (perpendicular neighbours stretched or shrunk), union cuts the slab beyond the plane
bherbruckandClaude Opus 5.52026-10-07 22:32:39 +00:00
8d7a0cf3d0
Sketch free-form curves: Ellipse (centre, major axis end, minor radius), Fit Point and Control Point (degree 3 and 5) Splines, Conic Curve (rho); solved like other curves (points on them, tangency at shared ends, drag fit points), profiled as polylines; mirror/pattern/move/scale copy them; Tangent Arc continues splines and conics
bherbruckandClaude Opus 5.52026-10-07 22:35:03 +00:00
956492c993
Dark theme (default): Fusion-like blue-grey viewport #2e3440, darker chrome, subtle grid, light text, blue accent; light theme kept as a second Tokens set; toggle on the application bar (sun/moon), ui.set {dark}, kept between runs (eframe storage; browser local storage on the web); viewport, sketch, glyph, view cube, timeline and overlay colours all come from the theme; preview spinner and state in ui.inspect
bherbruckandClaude Opus 5.52026-10-07 22:23:24 +00:00
a4a17331dc
Kernel: concave edge fillets; whole smooth-loop blends of planar faces (cylinders and tori: pocket floors, plate outlines); rounding every edge of a convex planar body (sphere corners); healing after booleans (exact lines/arcs for intersection curves, coplanar faces merged, collinear edges joined); faces rebuilt on their stored surfaces
bherbruckandClaude Opus 5.52026-10-07 22:08:19 +00:00
b2b9331415
Drag manipulators and automatic operation: extrude (two arrows when symmetric), fillet/chamfer, shell and move arrows drag their value with round-step snapping (Alt/Ctrl: free) and the dialog follows; Extrude operation "auto" (engine) and the dialog follow the geometry: into a body cuts (red), out of one joins, free space makes a new body; a manual choice sticks
bherbruckandClaude Opus 5.52026-10-07 21:56:37 +00:00
f5c2c725c8
Extrude/revolve "all profiles" means the drawn ones: auto-projected face edges only count when the drawn curves make no profile
bherbruckandClaude Opus 5.52026-10-07 21:58:17 +00:00
9301bc4210
Sketch projection: Project (edges, face loops, body silhouettes, vertices, other sketches' curves and points, origin, axes, planes), Intersect (body/face/edge section with the sketch plane) and Include 3D Geometry as linked reference geometry: fixed, purple, re-resolved on every recompute (follows upstream edits, keeps ids when the shape is unchanged, flagged when the reference is lost), usable in profiles, constraints and dimensions; Break Link; sketching on a face auto-projects its edges (sketch.auto_project); drawing on a model vertex or edge projects it
bherbruckandClaude Opus 5.52026-10-07 21:43:32 +00:00
eb22a149b1
Sketch inline dimensions while drawing (line length/angle, rectangle width/height, circle diameter, arc radius/sweep, polygon radius/sides, slot length/width): boxes sit on what they measure, typing goes into the first box and locks it, Tab moves on, Enter places the shape, typed values become dimension constraints (expressions and units); Press Pull (Q: faces extrude/cut by sign, edges fillet), X toggles construction on selected curves, Move dialog (M) with preview
bherbruckandClaude Opus 5.52026-10-07 21:40:13 +00:00
043a542e29
Kernel: pole-free six-patch spheres; vendored truck-shapeops with robust meshing and nearest-parameter loop projection (sphere and box booleans work); least-squares sphere classification
bherbruckandClaude Opus 5.52026-10-07 21:24:11 +00:00
7ef3426cb3
Keyboard-first commands: E/F/H open with the on-canvas value box focused as soon as the geometry is picked (typing replaces the value, Enter applies, Tab moves on, Esc cancels), extrude direction arrow; Extrude takes planar body faces (face: [x,y,z] copies the face boundary into a sketch), so select-face-then-E press-pulls; join/cut previews show the tool body (cut see-through red)
bherbruckandClaude Opus 5.52026-10-07 21:23:47 +00:00
d44083d1cc
Live operation previews: open feature dialogs (new or Edit Feature) evaluate on a scratch session off the UI thread (Session::preview, no document or undo changes) and draw the result in place: new surface tinted, removed material as a translucent ghost; errors show in the dialog and keep the last good preview; a failing join/cut still shows its tool body
bherbruckandClaude Opus 5.52026-10-07 21:08:56 +00:00