mirror of
https://github.com/bherbruck/solidcraft.git
synced 2026-11-07 12:31:56 +00:00
7952516eb4
A sweep path through 3D sketch curves sampled every planar sketch curve in it into a 0.01 mm polyline, and took every linked 3D curve as the points its link stored, so SMLib got a many-cornered polyline (and refused a smooth one). Now: - a planar sketch curve in such a path is its exact segments (PathPiece::Segs of PathSeg::of_sketch over exact_segs); - a linked curve whose source has an exact curve keeps it: Wire::exact holds the record curves (WireCurve: schema 4 curve + interval) end to end along the wire, set with the wire when the link is resolved: an included body edge its record edge (kernel::brep_record), an included sketch curve leaving the plane its segments (kernel::sketch_record_curve). Wire::map carries them with a placement. The sweep follows them through kernel::curve_path (line, arc, ellipse as rational quadratic spans, polyline, B-spline as Bézier spans). - curves known only as points (projected onto a face, intersection and iso curves: the link resolves them on the mesh) stay points. Kernel, for the sheet and blend ports: planar_face_record (a profile face as a schema 4 sheet record with exact pcurves), smlib_sweeps::chain_curves (a segment chain as SMLib curves), body_from_record (any record into SMLib, checked), sketch_record_curve; record curves from design files are checked in curve_path. Format: pending/wire-exact-curves.rs. lib.rs (coordinator): export SpaceBezier, curve_path, edge_path, sketch_record_curve and planar_face_record from the kernel. (not built: base in progress; kernel and sketch check clean, doc not reachable) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017itGh5fpMEousnZ91cYcVt