Add three-axis milling with independent CAM and Fusion validation (#1682)
Thanks @CypherNaught-0x.
This commit is contained in:
1 parent
dd5278a402
commit
737c9358d0
85 files changed
+14487
-43
No files matched your search
@@ -0,0 +1,92 @@
|
||||
# Adaptive clearing and 3D milling
|
||||
|
||||
Status: planned implementation following the first milling PR. The strategies and
|
||||
ball-end tooling below are not implemented or qualified yet.
|
||||
|
||||
## Scope and delivery order
|
||||
|
||||
Retain vertical, fixed-axis three-axis machining, rectangular stock, rigid setups,
|
||||
explicit feeds/speeds and fail-closed posting. Indexed/multi-axis work and physical
|
||||
controller qualification remain outside scope.
|
||||
|
||||
1. **Tool and verifier foundation.** Add ball-end mills with explicit cutting length,
|
||||
shank and holder dimensions, a pending document migration, command/UI editing and
|
||||
tool-tip semantics. Qualify swept spherical cutting envelopes independently on
|
||||
stationary, horizontal and sloping motions, including holder/shank clearance.
|
||||
2. **Adaptive clearing.** Introduce explicit optimal load, maximum stepdown, entry
|
||||
and linking settings. Maintain material state during planning; bound actual radial
|
||||
engagement through corners and narrow passages. Generate smooth clearing loops
|
||||
with proved entry/link clearances. Ordinary offset pocketing is not adaptive clearing.
|
||||
3. **3D roughing.** Slice the protected target at bounded Z levels, include radial
|
||||
and axial stock allowances, and support rest roughing from a fingerprinted preceding
|
||||
stock state. Reject unsupported undercuts, uncertain topology and inaccessible
|
||||
regions. Removed material must never be inferred solely from a preceding path's name.
|
||||
4. **3D finishing.** Deliver parallel finishing for shallow surfaces and constant-Z
|
||||
finishing for steep surfaces, with ball tools, cutter-contact offsets, bounded
|
||||
chord error and explicit cusp/stepover settings. Scallop finishing follows only
|
||||
after its surface-spacing and connector bounds are independently qualified.
|
||||
5. **Integrated acceptance.** Exercise editing, generation/cancellation, simulation,
|
||||
diagnosis, exports, save/reopen and stale-result refusal through commands and the
|
||||
visible Manufacture workspace. Keep portable jobs incremental and bounded.
|
||||
|
||||
## Independent validation
|
||||
|
||||
Keep the generator, NC interpreter and stock verifier separate. Extend typed motions
|
||||
and provenance only where required; preserve the reference post's initialized machine
|
||||
state and reject unsupported controller behavior. Inspect every emitted NC block.
|
||||
|
||||
Original fixtures cover a sloped plane, convex dome, concave bowl, saddle, stepped
|
||||
boss, steep wall, islands connected by a narrow neck, interrupted cuts, rest stock,
|
||||
shifted origins and tool changes. Each fixture declares protected surfaces, allowed
|
||||
rough stock, finished regions, accessibility and independent dimensional expectations.
|
||||
Hand-calculated sphere-plane contact and cusp-height cases qualify the verifier first.
|
||||
Fault injections include the wrong ball radius, omitted roughing stock, excess
|
||||
engagement, reversed arcs, connecting gouges, rapid-through-stock and holder contact.
|
||||
|
||||
Acceptance retains 0.01 mm dimensional tolerance, 0.001 mm post/interpolation budget
|
||||
and 0.0025 mm verifier uncertainty. Local surface distances and hole/wall dimensions
|
||||
accompany volume differences. Refine uncertain regions; exhausting resources yields
|
||||
inconclusive and blocks posting. For roughing, verify protected geometry and allowed
|
||||
stock per operation instead of requiring identical intermediate material removal.
|
||||
Engagement checks report their definition, sampling/bound uncertainty and the NC line.
|
||||
|
||||
## Fusion comparison packages
|
||||
|
||||
Use the same original recipes in local Fusion and SolidCraft. Reconcile units, tools,
|
||||
stock, frames, allowances, entry/links and operation settings before comparison.
|
||||
Record version, available capabilities, post identity/hash/properties and timestamps.
|
||||
Capture NC Program output, setup HTML and final simulation stock after every operation;
|
||||
use Save Stock when automated export is unavailable. Preserve the actual Accuracy
|
||||
setting and report an unexposed numeric resolution as not reported.
|
||||
|
||||
Both posted programs pass through the independent interpreter and verifier. Compare
|
||||
each against intended geometry and Fusion stock, with line-linked diagnostics, path
|
||||
overlays, surface differences, volume, distance, retract count and time estimates.
|
||||
Missing artifacts or unavailable licensed strategies cannot count as passing parity.
|
||||
Require complete passing packages for each delivered strategy before declaring parity.
|
||||
All Fusion-produced artifacts and derived comparisons stay in ignored local storage;
|
||||
commit only original recipes, harness code and independently authored expectations.
|
||||
|
||||
## Dependency decisions
|
||||
|
||||
Keep the existing pinned Cavalier 0.9.0 adapter for planar offsets/islands and Parry
|
||||
0.31.1 for bounded collision/distance queries. Both need geometry-specific guards;
|
||||
neither provides an adaptive machining algorithm or an independent stock proof.
|
||||
Cavalier documents rounded joins and arc-size constraints; retain current degeneracy
|
||||
and scale tests. Parry's double-precision mesh and point-query APIs are candidates for
|
||||
cutter-contact acceleration; benchmark against a simple original implementation first.
|
||||
No additional runtime dependency is justified yet. Reuse the existing robust predicates,
|
||||
Spade and spatial index; consider property testing as a development-only dependency.
|
||||
|
||||
Primary references inspected on 2026-10-16:
|
||||
|
||||
- [Autodesk adaptive roughing overview](https://help.autodesk.com/cloudhelp/ENU/Fusion-CAM/files/3D-ADAPTIVE-READ.htm)
|
||||
- [Autodesk adaptive parameters](https://help.autodesk.com/cloudhelp/ENU/Fusion-CAM/files/GUID09E44604-DAD8-47D6-ADC6-C100869DE724.htm)
|
||||
- [Autodesk parallel finishing](https://help.autodesk.com/cloudhelp/ENU/Fusion-CAM/files/3D-PARALLEL-STEPS.htm)
|
||||
- [Cavalier 0.9.0](https://docs.rs/crate/cavalier_contours/0.9.0)
|
||||
- [Parry 0.31.1 triangle mesh](https://docs.rs/parry3d-f64/0.31.1/parry3d_f64/shape/struct.TriMesh.html)
|
||||
- [Parry 0.31.1 point queries](https://docs.rs/parry3d-f64/0.31.1/parry3d_f64/query/point/trait.PointQuery.html)
|
||||
|
||||
Each implementation arc runs focused analytic/fault tests, then repository quality
|
||||
and Wasm gates. The oracle command must require the strategies actually claimed by
|
||||
that milestone, without relaxing the first milestone's completeness requirements.
|
||||
Reference in new issue
Block a user