This website requires JavaScript.
Explore
Help
Sign In
1b-agent
/
OneCAD
Watch
1
Star
0
Fork
0
forked from
1b-agent/solidcraft-upstream
Code
Pull Requests
Activity
Files
e3ee1b359e0e549865a92bf0634fd71df4ff3b9f
OneCAD
/
crates
/
engine
/
src
T
History
bherbruck
feaed2e3f6
Merge pull request
#97
from CypherNaught-0x/fix/dimension-measured-after-solve
...
sketch.dimension reports the measured value after solving
2026-10-10 18:49:25 -04:00
..
cmd
Merge pull request
#97
from CypherNaught-0x/fix/dimension-measured-after-solve
2026-10-10 18:49:25 -04:00
tests
solid.cylinder, box, sphere, torus and coil place by expressions: base, corner and center take numbers or length expressions per coordinate ("basin_width/2", "10 mm") and follow parameter changes, renames and component frames; before, a point that was not three plain numbers (or an unreadable axis) was silently replaced by the origin (or Z). The features now store the point as expressions (plain numbers still saved as numbers, so existing designs read and write the same) and evaluate it on every recompute; an unreadable or out-of-range point or axis is refused with an error. Tests: primitive points take expressions, follow parameters, renames and a moved component, and bad points are refused
2026-10-10 18:37:22 -04:00
boolean_regression_tests.rs
A round hole elsewhere on a body no longer breaks a loft cut beside it: a loft cut from a pocket floor (556.68 x 99 down 4 mm to 80 x 80), with a 35 mm hole 66 mm away that it never touches, failed with a kernel panic in TroughFall, while the same cut without the hole, or with the hole made afterwards, worked
2026-10-10 17:57:34 -04:00
construct_tests.rs
Perpendicular Plane (construct.plane.perpendicular {plane, line}): the plane through a straight edge, sketch line or axis, square to a plane or planar face; a line square to the plane is refused (no single answer)
2026-10-10 05:00:55 +00:00
delete_face_tests.rs
Delete Face (face.delete, and faces in the Delete selection): a timeline feature that removes faces and heals the gap from the neighbouring planes through kernel::delete_faces; a picked face brings the rest of its surface (both halves of a hole's wall); face picks are stored by persistent name; a face its neighbours can't close is refused with the kernel's reason
2026-10-09 12:47:56 +00:00
extent_tests.rs
Extrude and Revolve To Object on curved faces follow the face: the tool runs through the target body and is cut back to its surface (the piece that starts at the profile); tests against a cylinder and a sphere (volumes by integration) and a revolve ending on a post; Shell Outside/Both on a cylinder through the exact curved offsets
2026-10-09 12:47:56 +00:00
frames_tests.rs
Fix modelling regressions and reconcile WIP UI work
2026-10-10 15:37:00 -04:00
frames.rs
solid.cylinder, box, sphere, torus and coil place by expressions: base, corner and center take numbers or length expressions per coordinate ("basin_width/2", "10 mm") and follow parameter changes, renames and component frames; before, a point that was not three plain numbers (or an unreadable axis) was silently replaced by the origin (or Z). The features now store the point as expressions (plain numbers still saved as numbers, so existing designs read and write the same) and evaluate it on every recompute; an unreadable or out-of-range point or axis is refused with an error. Tests: primitive points take expressions, follow parameters, renames and a moved component, and bad points are refused
2026-10-10 18:37:22 -04:00
fuzz.rs
Robustness runs and the kernel fixes they found
2026-10-10 00:04:37 +00:00
legacy_ids.rs
Command ids are SolveCraft's own: 173 ids that were another product's internal command ids become dotted, lower-case ids (<area>.<thing>[.<variant>]: solid.extrude, sketch.rectangle.two_point, sheet.flange, joint.drive, ...), in the registry, toolbar, dialogs, shortcuts, palette, control channel, MCP, examples, scenarios and docs
2026-10-09 12:17:23 +00:00
lib.rs
A panic while healing a boolean result no longer ends the boolean: a shallow, wide loft cut from a top face (556.68 x 99 down 4 mm to 80 x 80 in a 900 x 480 x 160 slab) failed with "called Option::unwrap() on a None value"
2026-10-10 17:57:34 -04:00
licences.rs
Releases offer plain programs; the licences are built in
2026-10-09 17:53:19 +00:00
params.rs
M0: engine command registry, file formats, view math and CPU renderer
2026-10-07 17:30:37 +00:00
pattern_suppress_tests.rs
A pattern or mirror of a suppressed feature has nothing to copy: its copies go with it and the pattern warns (the acceptance enclosure loses all four standoffs when Standoff is suppressed); scenario acceptance_pattern_of_suppressed_feature enabled
2026-10-10 05:27:01 +00:00
profile_refs_tests.rs
Profiles picked by index are kept by the curves around them: add_feature turns profile indices into the curve ids of each profile's outer loop (Extrude, Revolve, Sweep, Loft, Emboss, Sheet Base, Patch), so a face sketch whose projected outline is rebuilt still extrudes the picked region; a profile that is gone is an error on the feature, never another pick
2026-10-09 22:13:01 +00:00
recovery.rs
Autosave ids are unique within the process: an app restarted in the same second (the scenario harness crashes and restarts in one process) took the id
{seconds}-{pid}
of the crashed app, locked its entry again and so offered nothing to recover. The id now carries a per-process sequence number. Test: a restart in the same second still offers the crashed app's work
2026-10-10 13:24:08 -04:00
sample.rs
Command ids are SolveCraft's own: 173 ids that were another product's internal command ids become dotted, lower-case ids (<area>.<thing>[.<variant>]: solid.extrude, sketch.rectangle.two_point, sheet.flange, joint.drive, ...), in the registry, toolbar, dialogs, shortcuts, palette, control channel, MCP, examples, scenarios and docs
2026-10-09 12:17:23 +00:00
split_face_tests.rs
Split pieces stay separate faces: Measure counts them apart and Offset Face moves only the picked piece
2026-10-09 23:31:52 +00:00
tests.rs
solid.cylinder, box, sphere, torus and coil place by expressions: base, corner and center take numbers or length expressions per coordinate ("basin_width/2", "10 mm") and follow parameter changes, renames and component frames; before, a point that was not three plain numbers (or an unreadable axis) was silently replaced by the origin (or Z). The features now store the point as expressions (plain numbers still saved as numbers, so existing designs read and write the same) and evaluate it on every recompute; an unreadable or out-of-range point or axis is refused with an error. Tests: primitive points take expressions, follow parameters, renames and a moved component, and bad points are refused
2026-10-10 18:37:22 -04:00
thread_tests.rs
Modelled threads (Thread with modeled: true): the ISO 68-1 profile cut along a helix, M3 to M20, on shafts and in bores; running out past a free end of the face, stopping square at a set length. The groove is a watertight screw-sweep mesh (kernel::sweep_helix_mesh) cut by kernel::faceted_boolean (BSP on the faceted body, tolerance ladder checked by A−B + A∩B = A); the polygon rebuild welds vertices across grid cells, splits pinched loops, finds T-junctions through a grid, and takes the group's plane for a loop a hair off flat
2026-10-09 12:47:56 +00:00
view.rs
browser.visibility hides and shows sketches, bodies, construction geometry and origin items (items: ids or names, or a whole folder; visible: bool), so agents can hide helper sketches over MCP. What is hidden moved from the egui UI state into the engine session (view state: not saved, not an undo step); the desktop eye toggles and menus use it, headless renders and fit leave hidden items out, and document.inspect, sketch.inspect and ui.inspect report visibility. ui.set still accepts hiddenBodies, hiddenOrigin, hiddenSketches and shownSketches. Tests: helper sketches hide and show in the engine (hostile input changes nothing) and through MCP only
2026-10-10 14:33:56 -04:00