feat: strengthen sketches, feature editing, and independent assemblies
This commit is contained in:
1 parent
07932d0f42
commit
0398a813c8
65 files changed
+7082
-268
No files matched your search
@@ -11,6 +11,13 @@ component, and **Paste New** creates an independent copy. Move an occurrence wit
|
||||
triad, then **Capture Position** to keep it or **Revert** to put it back. SolveCraft asks before
|
||||
the next command if a move wasn't captured. **Ground** fixes an occurrence in place.
|
||||
|
||||
Paste New copies nested component definitions, sketches, feature histories and generated
|
||||
dimension parameters. Repeated child instances remain shared within the new copy. Materials,
|
||||
appearances and wholly internal joints/motion records receive copied references. Design-wide
|
||||
user parameters remain shared; retained external links and omitted cross-boundary motion
|
||||
records are reported. Unsupported destructive links refuse the entire copy. See
|
||||
[individual-instance and copy details](https://github.com/bherbruck/solvecraft/blob/main/docs/occurrence-workflows.md).
|
||||
|
||||
**Joints** (`joint.create`, J) connect two components by joint origins that snap to faces, edges,
|
||||
circles and vertices: rigid, revolute, slider, cylindrical, pin-slot, planar and ball, with
|
||||
offsets, flip and limits. **As-built Joint** keeps the current position, **Rigid Group** locks
|
||||
|
||||
@@ -18,6 +18,22 @@ Extruding into existing material selects **Cut**. In an empty component it selec
|
||||
choose **New Body** explicitly to keep an addition separate. Changing the default does not alter
|
||||
operations already saved in a design.
|
||||
|
||||
Editing an extrusion retains its signed distances, From/To Object inputs, taper expressions
|
||||
and explicit body targets. Revolve edits retain world, sketch and explicit-line axes, both
|
||||
angle expressions and To Object targets. An unchanged **All profiles** selection continues
|
||||
to include profiles added later. Cancel restores the complete timeline; a successful edit is
|
||||
one undo step, including downstream parameter changes. Editing a placed component previews the
|
||||
edited feature before its downstream history. Cylindrical Emboss profile guides follow the
|
||||
sketch's chosen occurrence frame.
|
||||
|
||||
For cylindrical **Emboss**, select a supported exterior cylinder face and a tangent sketch
|
||||
profile. **Deboss** cuts radially into the wall. Orthogonal line profiles, including holes and
|
||||
concave outlines, wrap with exact radial walls; the profile must stay clear of seams and ends.
|
||||
Complete cylinders and coaxial sleeves are supported. Capture pending component positions
|
||||
before applying. The feature stores the selected target and author occurrence paths, so edits
|
||||
and reopening retain the chosen instances. Other curved surfaces and free-form profiles remain
|
||||
unsupported; omitting the face retains the planar emboss behavior.
|
||||
|
||||
Fillets and chamfers handle straight edges between planar faces, whole smooth loops, runs of
|
||||
neighbouring edges with mitred or spherical corners, and closed chains of curved edges (a rolling
|
||||
ball). See the roadmap's known limitations for the rest.
|
||||
|
||||
@@ -17,3 +17,8 @@ Saves are atomic: a crash at any moment leaves either the old file or the new on
|
||||
replaced version is kept as `<file>.bak`. Unsaved changes are autosaved to a recovery folder,
|
||||
and the next launch offers to recover them. Older design files are upgraded on open, and files
|
||||
from a newer version are refused with a message.
|
||||
|
||||
Current designs use format 9 for semantic configuration styles, associative free-form offsets
|
||||
and explicit cylindrical emboss selections. Older geometry and expressions retain their
|
||||
meaning during upgrade; missing new fields use defaults. Association records and occurrence
|
||||
paths are bounded and checked before they can alter geometry.
|
||||
@@ -15,6 +15,20 @@ fillet, chamfer, offset (O), mirror, patterns, move/copy and scale.
|
||||
**Project** (P) and **Intersect** bring model edges into the sketch as linked geometry that
|
||||
follows later changes. Sketching on a face projects its edges automatically.
|
||||
|
||||
Extend finds intersections with exact ellipses, rational conics and spline spans. It keeps the
|
||||
original line or circular support and extends only beyond the selected endpoint; conflicting
|
||||
constraints or an ambiguous overlap leave the sketch unchanged.
|
||||
|
||||
Offsets of smooth ellipses, conics and splines follow their source after dimension changes,
|
||||
dragging and reopening a design. Their stored cubic spline has a whole-span normal-distance
|
||||
error bound of 0.002 mm. Singular tangents, curvature cusps, possible self-intersections and
|
||||
excessive subdivisions are refused. Offset these curves individually: mixed chain junctions
|
||||
currently require separate geometry. `sketch.offset.break` releases an offset for independent
|
||||
editing, and undo restores its association. Older independently sampled offsets remain independent.
|
||||
Smooth open offsets can be offset again, including bounded refinement after a source edit.
|
||||
A closed offset uses a natural cubic spline whose seam can have different end tangents;
|
||||
offsetting that result again is refused when the seam has no unique normal.
|
||||
|
||||
## Constraints and dimensions
|
||||
|
||||
The solver is SolveCraft's own (damped Gauss–Newton with degree-of-freedom analysis). Constraints:
|
||||
|
||||
Reference in new issue
Block a user