Commit Graph
584 Commits
Author SHA1 Message Date
bherbruck 2c020dbcbc Revert #1682 (three-axis milling) (#1715)
Thanks @bherbruck.
2026-10-16 09:02:19 -04:00
DuBearte 4a4911b473 Mesh export: twisted ruled faces are divided to the chord tolerance (#1666) (#1670)
Thanks @DuBearte.
2026-10-16 08:26:32 -04:00
CypherNaugh_0x 737c9358d0 Add three-axis milling with independent CAM and Fusion validation (#1682)
Thanks @CypherNaught-0x.
2026-10-16 08:26:28 -04:00
DuBearte dd5278a402 solid.hole: position takes length expressions and follows them (#1678) (#1683)
Thanks @DuBearte.
2026-10-16 08:26:23 -04:00
Mateusz Sych 838d0e86f2 Component rename also renames its placements (#1665) (#1685)
Thanks @SychPL.
2026-10-16 08:26:18 -04:00
Mateusz Sych d84d8c3222 Joint origin: a circle given by its centre (#393) (#1686)
Thanks @SychPL.
2026-10-16 08:26:14 -04:00
Mateusz Sych 2ae21143ee Motion animation export: a study or a joint drive as an animated GIF (#1680)
Thanks @SychPL.
2026-10-16 07:26:15 -04:00
midasdf 8207f29fc0 Register surface.boundary, which the 2/3 squash left unregistered (#1701)
Thanks @midasdf.
2026-10-16 07:26:12 -04:00
DuBearte 4d58d3bbca Extrude: to an object through the body, the automatic operation is Cut (#1633) (#1636)
Thanks @DuBearte.
2026-10-16 06:26:35 -04:00
midasdf bbd4f29ebb Class-A surfacing 3/3: blend curves, curved-edge fillets, the G2 corner and continuity analysis (#1642)
Thanks @midasdf.
2026-10-16 06:26:27 -04:00
phanoob 64b0b674d2 2D prism route: the same letters cut again are one exact boolean (#1644)
Thanks @phanoob.
2026-10-16 06:26:19 -04:00
Philipp Bischoff 3087363c44 test: three ignored tests pass again and run in CI (#679, #562) (#1663)
Thanks @PhilippBischoff0.
2026-10-16 06:26:13 -04:00
phanoob d5640b5efb Timeline marker, undo and redo compute off the window thread (#1675)
Thanks @phanoob.
2026-10-16 06:26:10 -04:00
midasdf 07da7f8065 Class-A surfacing 2/3: surface match, boundary patch and CV fairing (#1487)
Thanks @midasdf.
2026-10-16 03:26:20 -04:00
phanoob 9bb65b4d68 Booleans: a prism cut beside the target's other faces takes the exact 2D route in a column (#1629)
Thanks @phanoob.
2026-10-16 03:26:13 -04:00
Karl Von Richter 9422853cf9 Feature mirrors and patterns: preserve replay and add Flip/Center placement (#1619)
Thanks @Karl-VonRichter.
2026-10-16 03:01:00 -04:00
Irakli Kourtis f57a62deb7 Intersection edge nodes advance along the curve at fine display qualities (#1615)
Thanks @jyviko.
2026-10-16 03:00:56 -04:00
DuBearte 25c89a706e Sketch: a tangent arc starts from a trimmed end (#1485) (#1604)
Thanks @DuBearte.
2026-10-16 03:00:49 -04:00
bherbruck 26bf1af93b Sketch on an origin plane faces the side you clicked (#1587)
Fixes #1586.
2026-10-16 03:00:24 -04:00
Mateusz Sych 571122c4ba Motion Trace: a point's path as a joint is driven or a study plays, kept as a 3D spline (#1529)
Thanks @SychPL.
2026-10-16 01:54:34 -04:00
DuBearte 6f270f6259 Split Body: a sketch line as the splitting tool (#1552) (#1592)
Thanks @DuBearte.
2026-10-16 01:35:15 -04:00
Karl Von Richter 371578a06f Feat/Sketch: associative pattern tools with independent directions and Flip/Center controls (#1601)
Thanks @Karl-VonRichter.
2026-10-16 00:32:32 -04:00
JIJINBEI 44968dbfe6 Feature fields: a type for each role (Expr, BodyName, FacePick…) (#1273)
Thanks @jijinbei.
2026-10-16 00:28:12 -04:00
DuBearte f91103c51d Viewport: the grid faces side views (#1470) (#1583)
Thanks @DuBearte.
2026-10-16 00:27:19 -04:00
DuBearte ac3a25fb5b View keys: arrows turn the view, Ctrl+arrows pan, Ctrl+8 looks at the selection (#1541) (#1585)
Thanks @DuBearte.
2026-10-16 00:27:12 -04:00
Mateusz Sych 4d862cd76c Joints: joint.reach (inverse kinematics), and a jointed part follows a drag (#1540)
Thanks @SychPL.
2026-10-15 23:58:34 -04:00
H. Conrad 716107f0e4 Sketch cut and paste: refuse parameters that are not an object (no panic) (#1577)
Thanks @Ian-cmd-ops.
2026-10-15 23:34:18 -04:00
Irakli Kourtis fac3f96bdd Patch: G1/G2 to the faces beside the loop, general and N-sided loops, points (#759) (#1521)
Thanks @jyviko.
2026-10-15 23:07:24 -04:00
DuBearte 987f0be21e Sketch: infinite construction lines (#1359) (#1547)
Thanks @DuBearte.
2026-10-15 22:54:16 -04:00
Colin Faulkingham 7ef78f960a Fix perpendicular fillets after connected rounds (#1581)
Thanks @cfaulkingham.
2026-10-15 22:40:09 -04:00
Erikas a422fb1a4b solid.mirror: a plane's {origin} takes length expressions and follows them (#1492) (#1501)
Thanks @erkexzcx.
2026-10-15 22:37:08 -04:00
phanoob 5165e428cd Boolean: refuse a nudged result that meshes inconsistently (#1360) (#1455)
The last-resort nudge's result is also measured finely; a face left a hair wide that meshes as its whole plane no longer passes as a plausible cut.
2026-10-15 22:19:28 -04:00
Irakli Kourtis 1a0b33fcf3 Headless pictures draw on the GPU, with the viewport's pipelines (CPU rasterizer as last tier) (#1555)
Thanks @jyviko.
2026-10-15 22:19:26 -04:00
Giovanni 48322f6464 Join a flange flush with a bent, tapered loft's end where the retry fails (#1391) (#1556)
Thanks @gvocale.
2026-10-15 22:19:22 -04:00
Erikas 5c0351b1f4 Fillet: refuse only crossed faces the round makes, not ones the body had (#1488) (#1517)
Thanks @erkexzcx.
2026-10-15 22:19:19 -04:00
Erikas b20fd3d9d6 Booleans: when the last-resort nudge fails both ways, try two more screw axes (#1490) (#1527)
Thanks @erkexzcx.
2026-10-15 22:19:15 -04:00
Mateusz SychandClaude Sonnet 5.5 a6742180a9 Join from a sketch on a body's face joins that body (#1349) (#1526)
Thanks @SychPL for the fix.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-15 21:27:35 -04:00
cronosandClaude Sonnet 5.5 abb15e4b0e Preserve circle and arc centre heights when measuring straight edges (#1546)
Thanks @crono2250 for the fix.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-15 21:27:29 -04:00
Karl Von RichterandClaude Sonnet 5.5 584bbe923d sketch(fix): preserve rectangle constraints through fillets (#1543)
Thanks @Karl-VonRichter for the fix.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-15 21:27:24 -04:00
4cbf9cf607 Sheet metal: an Edge Flange can choose its own corner relief (#1481)
An Edge Flange feature can set the shape and size of the relief at the corners its flanges make, in place of the sheet metal rule's. Design format 24.

Co-authored-by: NOWN-DEV <[email protected]>
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-15 20:22:31 -04:00
c361630954 Export the current 3D view as 2D DXF with optional hidden lines (#1449)
Adds File > Export > Current View as DXF: the visible bodies projected from the current camera onto 2D LINE/LWPOLYLINE entities, with hidden edges omitted or dashed.

Co-authored-by: cronos <[email protected]>
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-15 20:04:25 -04:00
Jackson OurslandandClaude Opus 5.5 78242d67d1 Import FreeCAD and Rhino files through cadmpeg (#1435)
FreeCAD .FCStd and Rhino .3dm files open, insert and drop like STEP and IGES:
cadmpeg (Apache-2.0, pinned =0.6.1, native builds only) detects the format,
decodes it under its service resource caps, validates the model and writes it
as STEP AP214, which becomes an Import feature in a new component named after
the file, with the up and names options.

Only the fcstd, rhino and step codecs are compiled in (no default features).
ACIS is left out: cadmpeg's sat codec is a ShapeManager stream decoder.
native_cad.rs is the single importer seam. Self-made FreeCAD and Rhino box
fixtures, hostile-input, ZIP-bomb and cap tests, engine tests for the
component path; the browser build reports these formats as not supported.
A note under design format 23 says an Import's file can name these formats.

Co-authored-by: Jacob Oursland <[email protected]>
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-15 19:30:03 -04:00
bherbruck 4097ac0131 sketch.cut: refuse non-object params instead of panicking 2026-10-15 19:12:55 -04:00
7160ff7beb A sketch on an extrude's cap keeps its face when the extrude is made thin (#1532)
Thin extrude caps are certified by the curves the wall follows, so a sketch attached to a cap survives switching between solid and thin (#1519).

Co-Authored-By: Philipp Bischoff <[email protected]>
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-15 18:55:17 -04:00
f7967b1ff6 Joints: gears, rack and pinion, and screws (#1524)
Motion links can carry a coupling (gear pair, rack and pinion, screw) whose ratio follows radii, picked round faces or pitch. Design format 23.

Co-authored-by: SychPL <[email protected]>
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-15 18:47:38 -04:00
cronosandClaude Sonnet 5.5 73493b94c3 Measure circle and arc centres as fixed 3D points (#1514)
Picked circles and arcs keep their own centres when measured; only a cylindrical face uses its axis.

Co-authored-by: cronos <[email protected]>
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-15 18:04:17 -04:00
3dd8e2d176 timeline.edit: refuse fields the feature's definition doesn't have (#1507)
A field the definition doesn't have is refused with the fields it does have, instead of reporting success and changing nothing (#1491).

Co-Authored-By: Erikas <[email protected]>
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-15 18:03:32 -04:00
bherbruckandClaude Opus 5.5 a13124acdd Import glTF 2.0 files (.glb, .gltf) as mesh bodies (#1512)
glTF files open, insert and drop like 3MF/STL/OBJ: a component named after the file, the node tree as nested rigid components, repeated meshes as occurrences, metres to mm, Y up turned to Z up by default (up: z keeps axes), materials as PBR appearances. Bounded, hostile-input tested reader; no new persisted data. Closes #1505.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-15 17:27:29 -04:00
bherbruckandClaude Opus 5.5 843c548589 Copy, cut and paste sketch geometry (Ctrl+C/X/V, context menu) (#1500)
* Copy, cut and paste sketch geometry (Ctrl+C/X/V, context menu)

Sketch geometry had no copy or paste: Ctrl+C / Ctrl+X / Ctrl+V arrive as
clipboard events that nothing handled, and the sketch context menu had no
Copy, Cut or Paste.

- sketch.copy / sketch.cut / sketch.paste: lines, arcs, circles, ellipses,
  splines, conics, points and text. Constraints and dimensions wholly among
  the copied entities come along (each dimension gets its own parameter
  with the same expression); ones that reach outside, fixes and pattern or
  offset relations are dropped. Paste goes centred at `at`, by
  `translate`, or offset from the original (same sketch) / at the same
  coordinates (another sketch, on its plane). One undo step; the pasted
  geometry is selected.
- Ctrl+C / Ctrl+X / Ctrl+V in a sketch (paste at the cursor), and Cut,
  Copy and Paste in the sketch context menu. Outside a sketch Ctrl+C /
  Ctrl+V copy and paste the selected timeline features. A copy also puts a
  line of text on the system clipboard so the next Ctrl+V is delivered.

Fixes #1480

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* Keep a pasted text's height and angle expressions, drop its place's

Co-Authored-By: Claude Opus 5.5 <[email protected]>

---------

Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-10-15 15:55:10 -04:00
phanoob 6b30326e6d Extrude: a cut takes in a hole of its profile that lies over empty space (#1472)
Checked locally on main merged with this: cargo check --workspace, the kernel and doc tests, and all robustness goldens (all_0 to all_3) pass.
2026-10-15 15:33:05 -04:00