Repository navigation
Epic 128 §1.2: Arc<T>, Frame3.FromAxes, mm/min Speed bridge - #6
Merged
Merged
Conversation
Additive geometry primitives the ModelingEvolution.ToolPath module (DXF → neutral tool path) builds on, rebased onto the epic-129 quaternion Frame3 model: - Arc<T>: centre/radius/start + signed sweep (CCW+), with StartPoint/EndPoint/ Mid/PointAt/TangentAt/Length. Maps 1:1 to a CAD ARC and to a 3-point circular robot move; a full circle is |Sweep| = 360°. - Frame3.FromAxes(origin, forward, approach): basis-from-directions factory for tool placement (approach axis + travel tangent), re-orthogonalizing forward against approach and building the orientation via Quaternion.FromAxes. The earlier Rotation3.FromAxes / Pose3.FromFrame drafts are dropped — that algebra now lives on Quaternion/Frame3 (epic-129). - MillimetrePerMinute<T> + SpeedInterop.ToLegacyMmPerMin(): bridge a unit-aware Speed<T,TUnit> to the legacy mm/min Speed<T> so a mm/s value is not silently read as mm/min (a 60x error) at Trajectory3Builder.MoveTo. Tests: Epic128PrimitivesTests (8) green. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EMY9H3gjTE9ZPy87RDvCzJ
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Additive geometry primitives for the independent ModelingEvolution.ToolPath module (DXF → neutral tool path), rebased onto the epic-129 quaternion
Frame3model.What
Arc<T>— centre/radius/start + signed sweep (CCW+), withStartPoint/EndPoint/Mid/PointAt/TangentAt/Length. Maps 1:1 to a CADARCentity and to a 3-point circular robot move; a full circle is|Sweep| = 360°.Frame3.FromAxes(origin, forward, approach)— basis-from-directions factory for tool placement (a torch approach axis + travel tangent). Re-orthogonalizesforwardagainstapproachand builds the orientation via the existingQuaternion.FromAxes. Complements the point-basedFrame3.FromSurface. (The earlierRotation3.FromAxes/Pose3.FromFramedrafts are dropped — that algebra now lives onQuaternion/Frame3as of epic-129.)MillimetrePerMinute<T>+SpeedInterop.ToLegacyMmPerMin()— bridge a unit-awareSpeed<T,TUnit>to the legacy mm/minSpeed<T>, so a mm/s value is not silently read as mm/min (a 60× error) atTrajectory3Builder.MoveTo.Tests
Epic128PrimitivesTests(8) green locally:Frame3.FromAxesalignment / re-orthogonalization / 90°-about-Z / parallel + degenerate throws,Arcquarter-circle points & length, tangent sign, and the mm/s→mm/min bridge.🤖 Generated with Claude Code
https://claude.ai/code/session_01EMY9H3gjTE9ZPy87RDvCzJ