Skip to content

v0.5.2 — Sketch parity, text, mirror, cylinder dimension labels

Choose a tag to compare

@exzile exzile released this 01 Jun 22:20

v0.5.2

Design workspace release covering sketch parity, primitive UX, and performance improvements across PRs #78 and #79.

Sketch

  • Mirror tool — mirror any selection of entities across a chosen sketch line. Handles lines, arcs, circles, splines, and rectangles while preserving constraint relationships.
  • Text and text-on-path — parametric text using Roboto Regular/Bold/Italic (3 families × 3 weights). Text generates extrudable closed-spline contours; double-click to edit. Text-on-path included.
  • Point drag handles — every entity type (line endpoints, arc centre/ends, spline knots) now shows a Fusion-style drag handle. Reshape geometry directly in the viewport while the constraint solver keeps connections consistent.
  • Advanced constraints — G2+ smooth continuity, offset curves with live distance dimension, tangent-distance dimensions, angular solver, fixed spline type, break-link, H/V points constraint, and autoConstrain on solve.
  • Break/split arc — split arcs at any point; real cubic B-spline curve type for spline-control entities.
  • Arc radius editor — floating callout that appears when you click an arc centre dot, letting you edit a fillet radius directly in the viewport.
  • Corner fillet geometry — improved tangent-point reconstruction for corner fillets.

Primitives

  • Cylinder dimension labels — Fusion 360-style floating dimension badges on the cylinder preview's drag handles. A cyan 20.00 mm badge on the height arrow and an orange Ø 40.00 mm badge on the diameter arrow. Both update live during drag and are directly editable (type → Enter to commit).
  • Primitive operations complete — Box, Cylinder, Sphere, and Torus now fully support Join, Cut, Intersect, and New Component operations against existing bodies.
  • Coil and Pipe parity — dialogs completed to Fusion field set.
  • Edit from timeline — all primitive dialogs reopen from the timeline for parametric editing.

Viewport & performance

  • Memory leak fix — eliminated a pointermove event listener that accumulated on every sketch-interaction mount.
  • Demand-driven renders — scene re-renders are now demand-driven, cutting idle CPU on complex assemblies.
  • Batched constraint glyphs — reduced overlay work while panning.

Toolbar

  • Overflow button — RibbonSection shows a overflow button when not all tools fit in the ribbon.
  • Active-tool promotion — the active tool automatically promotes into the visible ribbon slot so the selected tool is always shown.
  • Flyout close-timing fix — prevents stray menu portals from intercepting canvas clicks after item selection.

Tests

  • CornerEditingCommit.test.ts — corner editing commit paths
  • CornerFilletGeometry.test.ts — tangent-point reconstruction
  • FilletRadiusUpdate.test.ts — fillet-radius update round-trips
  • Extended solver suite with mirror and arc edge cases

Foundation

  • SketchPointHandles.tsx replaces SketchSplineHandles.tsx — unified drag handles for all entity types.
  • gizmos/arrowMaterials.ts — singleton arrow materials extracted from PrimitiveBodies.
  • useDraggablePanel / useDraggableDialog — shared draggable panel infrastructure.
  • fontRegistry.ts, sketchTextGenerate.ts, textOnPath.ts — text subsystem utilities.
  • Roboto font files (Regular/Bold/Italic × 3 families) added to public/fonts/.