M1: hole feature (simple, drilled, counterbore, countersink), cone classification and apex counting

Oracle: 19/29 parts match Fusion.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
bherbruckandClaude Opus 5.5 committed 2026-10-07 19:22:27 +00:00
1 parent 42e0362f5b
commit 431b87c2b9
12 files changed
+396 -41

No files matched your search

+10 -10
View File
@@ -2,7 +2,7 @@
Generated by `cargo xtask oracle`. Each case is a part built in Fusion (recipe and measurements kept locally in `plan/fusion/oracle/`, not committed). SolveCraft replays the recipe through its command engine and compares body count, volume and area (relative tolerance 1e-3) and face/edge/vertex counts (exact).
**12 / 29 cases pass** (10 need features not implemented yet).
**19 / 29 cases pass** (4 need features not implemented yet).
| Case | Result | Notes |
|---|---|---|
@@ -13,25 +13,25 @@ Generated by `cargo xtask oracle`. Each case is a part built in Fusion (recipe a
| 05-taper-extrude | pass | |
| 06-symmetric-extrude | pass | |
| 07-fillet-all-edges | FAIL | step 8 (FusionFilletEdgesCommand): not supported yet: the faces at the edge ends must be planar |
| 08-chamfer | FAIL | step 8 (FusionChamferCommand): not supported yet: the faces at the edge ends must be perpendicular to the edge |
| 08-chamfer | pass | |
| 09-shell | not yet | recipe: feature op `shell` is not supported yet |
| 10-rect-pattern-holes | not yet | recipe: feature op `rectangular_pattern` is not supported yet |
| 11-circular-pattern-flange | not yet | recipe: feature op `circular_pattern` is not supported yet |
| 12-mirror-feature | not yet | recipe: feature op `mirror` is not supported yet |
| 10-rect-pattern-holes | pass | |
| 11-circular-pattern-flange | pass | |
| 12-mirror-feature | pass | |
| 13-combine-join | FAIL | step 12 (FusionCombineCommand): boolean Union: kernel internal error: boolean: This shell is not oriented and closed. |
| 14-combine-cut | FAIL | step 13 (FusionCombineCommand): boolean Cut: the operation failed: no result |
| 15-combine-intersect | FAIL | step 13 (FusionCombineCommand): boolean Intersect: the operation failed: no result |
| 16-sweep | not yet | recipe: feature op `sweep` is not supported yet |
| 17-loft | not yet | recipe: feature op `construction_plane` is not supported yet |
| 18-hole-features | not yet | recipe: feature op `hole` is not supported yet |
| 17-loft | not yet | recipe: feature op `loft` is not supported yet |
| 18-hole-features | pass | |
| 19-l-bracket-constrained | pass | |
| 20-slot-constrained | pass | |
| 21-draft | not yet | recipe: feature op `draft` is not supported yet |
| 22-split-body | not yet | recipe: feature op `construction_plane` is not supported yet |
| 23-bracket-multifeature | not yet | recipe: feature op `construction_plane` is not supported yet |
| 22-split-body | pass | |
| 23-bracket-multifeature | FAIL | step 14 (Extrude): boolean Union: the operation failed: no result |
| 24-user-parameters | pass | |
| 25-sketch-triangle | pass | |
| 26-sketch-belt | pass | |
| 27-sketch-trapezoid | pass | |
| 28-blind-pocket-fillets | FAIL | step 15 (FusionFilletEdgesCommand): not supported yet: the blend is larger than the neighbouring faces |
| 29-two-sided-and-partial-revolve | FAIL | step 14 (Revolve): boolean Cut: the operation failed: no result |
| 29-two-sided-and-partial-revolve | pass | |
+23 -23
View File
@@ -2,15 +2,15 @@
Generated by `cargo xtask parity` from `xtask/data/fusion-catalog.tsv` (the toolbar commands of Fusion's Design workspace, ids and names only) and the live command registry (`solvecraft-cli commands`). A command counts as live when SolveCraft registers the same command id. This measures breadth, not depth; see ROADMAP.md and docs/oracle.md for depth.
**SOLID + SKETCH: 46 / 291 commands live (16%).** All Design tabs: 95 / 1175 (8%). Registered commands: 67.
**SOLID + SKETCH: 53 / 291 commands live (18%).** All Design tabs: 129 / 1175 (11%). Registered commands: 74.
| Tab | Panel | Live | Total | % |
|---|---|---:|---:|---:|
| SOLID | CREATE | 7 | 35 | 20% |
| SOLID | MODIFY | 7 | 32 | 22% |
| SOLID | CREATE | 11 | 35 | 31% |
| SOLID | MODIFY | 8 | 32 | 25% |
| SOLID | ASSEMBLE | 0 | 21 | 0% |
| SOLID | CONFIGURE | 0 | 3 | 0% |
| SOLID | CONSTRUCT | 0 | 20 | 0% |
| SOLID | CONSTRUCT | 2 | 20 | 10% |
| SOLID | INSPECT | 1 | 25 | 4% |
| SOLID | INSERT | 0 | 11 | 0% |
| SOLID | SELECT | 0 | 15 | 0% |
@@ -24,11 +24,11 @@ Generated by `cargo xtask parity` from `xtask/data/fusion-catalog.tsv` (the tool
| SKETCH | ASSEMBLE | 0 | 1 | 0% |
| SKETCH | SELECT | 0 | 15 | 0% |
| SKETCH | FINISH SKETCH | 1 | 2 | 50% |
| SURFACE | CREATE | 1 | 25 | 4% |
| SURFACE | MODIFY | 6 | 26 | 23% |
| SURFACE | CREATE | 4 | 25 | 16% |
| SURFACE | MODIFY | 7 | 26 | 27% |
| SURFACE | ASSEMBLE | 0 | 20 | 0% |
| SURFACE | CONFIGURE | 0 | 3 | 0% |
| SURFACE | CONSTRUCT | 0 | 20 | 0% |
| SURFACE | CONSTRUCT | 2 | 20 | 10% |
| SURFACE | INSPECT | 1 | 25 | 4% |
| SURFACE | INSERT | 0 | 11 | 0% |
| SURFACE | SELECT | 0 | 15 | 0% |
@@ -38,7 +38,7 @@ Generated by `cargo xtask parity` from `xtask/data/fusion-catalog.tsv` (the tool
| MESH | MODIFY | 4 | 30 | 13% |
| MESH | ASSEMBLE | 0 | 21 | 0% |
| MESH | CONFIGURE | 0 | 3 | 0% |
| MESH | CONSTRUCT | 0 | 20 | 0% |
| MESH | CONSTRUCT | 2 | 20 | 10% |
| MESH | INSPECT | 1 | 25 | 4% |
| MESH | INSERT | 0 | 10 | 0% |
| MESH | SELECT | 0 | 10 | 0% |
@@ -48,40 +48,40 @@ Generated by `cargo xtask parity` from `xtask/data/fusion-catalog.tsv` (the tool
| FORM | MODIFY | 2 | 31 | 6% |
| FORM | SYMMETRY | 0 | 6 | 0% |
| FORM | UTILITIES | 0 | 5 | 0% |
| FORM | CONSTRUCT | 0 | 20 | 0% |
| FORM | CONSTRUCT | 2 | 20 | 10% |
| FORM | INSPECT | 1 | 25 | 4% |
| FORM | INSERT | 0 | 13 | 0% |
| FORM | ASSEMBLE | 0 | 1 | 0% |
| FORM | SELECT | 0 | 15 | 0% |
| FORM | FINISH FORM | 0 | 1 | 0% |
| SHEET METAL | CREATE | 2 | 19 | 11% |
| SHEET METAL | CREATE | 6 | 19 | 32% |
| SHEET METAL | MODIFY | 6 | 21 | 29% |
| SHEET METAL | ASSEMBLE | 0 | 20 | 0% |
| SHEET METAL | CONFIGURE | 0 | 3 | 0% |
| SHEET METAL | CONSTRUCT | 0 | 20 | 0% |
| SHEET METAL | CONSTRUCT | 2 | 20 | 10% |
| SHEET METAL | INSPECT | 1 | 25 | 4% |
| SHEET METAL | INSERT | 0 | 11 | 0% |
| SHEET METAL | SELECT | 0 | 15 | 0% |
| SHEET METAL | REFOLD | 0 | 1 | 0% |
| SHEET METAL | POSITION | 0 | 2 | 0% |
| PLASTIC | SETUP | 0 | 2 | 0% |
| PLASTIC | CREATE | 7 | 35 | 20% |
| PLASTIC | MODIFY | 7 | 32 | 22% |
| PLASTIC | CREATE | 11 | 35 | 31% |
| PLASTIC | MODIFY | 8 | 32 | 25% |
| PLASTIC | ASSEMBLE | 0 | 20 | 0% |
| PLASTIC | CONFIGURE | 0 | 3 | 0% |
| PLASTIC | CONSTRUCT | 0 | 20 | 0% |
| PLASTIC | CONSTRUCT | 2 | 20 | 10% |
| PLASTIC | INSPECT | 1 | 26 | 4% |
| PLASTIC | INSERT | 0 | 11 | 0% |
| PLASTIC | SELECT | 0 | 15 | 0% |
| PLASTIC | POSITION | 0 | 2 | 0% |
| ASSEMBLY | INSERT | 0 | 8 | 0% |
| ASSEMBLY | CREATE | 1 | 8 | 12% |
| ASSEMBLY | CREATE | 3 | 8 | 38% |
| ASSEMBLY | RELATIONSHIPS | 0 | 11 | 0% |
| ASSEMBLY | MOTION | 0 | 3 | 0% |
| ASSEMBLY | MODIFY | 4 | 11 | 36% |
| ASSEMBLY | CONTACT | 0 | 2 | 0% |
| ASSEMBLY | CONFIGURE | 0 | 3 | 0% |
| ASSEMBLY | CONSTRUCT | 0 | 20 | 0% |
| ASSEMBLY | CONSTRUCT | 2 | 20 | 10% |
| ASSEMBLY | INSPECT | 1 | 25 | 4% |
| ASSEMBLY | SELECT | 0 | 15 | 0% |
| ASSEMBLY | POSITION | 0 | 2 | 0% |
@@ -105,17 +105,24 @@ Generated by `cargo xtask parity` from `xtask/data/fusion-catalog.tsv` (the tool
- SOLID › CREATE › Create Sketch (`SketchCreate`)
- SOLID › CREATE › Extrude (`Extrude`)
- SOLID › CREATE › Revolve (`Revolve`)
- SOLID › CREATE › Hole (`FusionHoleCommand`)
- SOLID › CREATE › Box (`PrimitiveBox`)
- SOLID › CREATE › Cylinder (`PrimitiveCylinder`)
- SOLID › CREATE › Sphere (`PrimitiveSphere`)
- SOLID › CREATE › Torus (`PrimitiveTorus`)
- SOLID › CREATE › Rectangular Pattern (`PatternRectangular`)
- SOLID › CREATE › Circular Pattern (`PatternCircular`)
- SOLID › CREATE › Mirror (`MirrorCommand`)
- SOLID › MODIFY › Fillet (`FusionFilletEdgesCommand`)
- SOLID › MODIFY › Chamfer (`FusionChamferCommand`)
- SOLID › MODIFY › Combine (`FusionCombineCommand`)
- SOLID › MODIFY › Split Body (`FusionSplitBodyCommand`)
- SOLID › MODIFY › Move/Copy (`FusionMoveCommand`)
- SOLID › MODIFY › Delete (`FusionDeleteCommand`)
- SOLID › MODIFY › Change Parameters (`ChangeParameterCommand`)
- SOLID › MODIFY › Compute All (`FusionComputeAllCommand`)
- SOLID › CONSTRUCT › Offset Plane (`ConstructionPlaneOffsetFromPlaneCommand`)
- SOLID › CONSTRUCT › Plane at Angle (`ConstructionPlaneAtAngleCommand`)
- SOLID › INSPECT › Measure (`MeasureCommand`)
- SKETCH › CREATE › Line (`DrawPolyline`)
- SKETCH › CREATE › 2-Point Rectangle (`ShapeRectangleTwoPoint`)
@@ -159,16 +166,12 @@ Generated by `cargo xtask parity` from `xtask/data/fusion-catalog.tsv` (the tool
- SOLID › CREATE › Rib (`FusionRibCommand`)
- SOLID › CREATE › Web (`FusionWebCommand`)
- SOLID › CREATE › Emboss (`EmbossCmd`)
- SOLID › CREATE › Hole (`FusionHoleCommand`)
- SOLID › CREATE › Thread (`FusionThreadCommand`)
- SOLID › CREATE › Coil (`PrimitiveCoil`)
- SOLID › CREATE › Pipe (`PrimitivePipe`)
- SOLID › CREATE › Bounding Solid (`StockModelCommand`)
- SOLID › CREATE › Rectangular Pattern (`PatternRectangular`)
- SOLID › CREATE › Circular Pattern (`PatternCircular`)
- SOLID › CREATE › Pattern on Path (`PatternOnPath`)
- SOLID › CREATE › Geometric Pattern (`FusionPatternGeometricCommand`)
- SOLID › CREATE › Mirror (`MirrorCommand`)
- SOLID › CREATE › Thicken (`FusionSurfaceThickenCommand`)
- SOLID › CREATE › Boundary Fill (`SurfaceSculpt`)
- SOLID › CREATE › Find Features (`FusionFindFeaturesCommand`)
@@ -187,7 +190,6 @@ Generated by `cargo xtask parity` from `xtask/data/fusion-catalog.tsv` (the tool
- SOLID › MODIFY › Offset Face (`FusionOffsetFacesCommand`)
- SOLID › MODIFY › Replace Face (`FusionReplaceFaceCommand`)
- SOLID › MODIFY › Split Face (`FusionSplitFaceCommand`)
- SOLID › MODIFY › Split Body (`FusionSplitBodyCommand`)
- SOLID › MODIFY › Silhouette Split (`FusionPartingLineSplitCmd`)
- SOLID › MODIFY › Align (`AlignCmd`)
- SOLID › MODIFY › Remove (`SoftDeleteCommand`)
@@ -228,8 +230,6 @@ Generated by `cargo xtask parity` from `xtask/data/fusion-catalog.tsv` (the tool
- SOLID › CONFIGURE › Display Configuration Table (`FusionShowDesignConfigPanelCmd`)
- SOLID › CONFIGURE › Create Configuration Rules (`FusionConfigurationRulesCmd`)
- SOLID › CONSTRUCT › User Coordinate System (UCS) (`CoordinateSystemCommand`)
- SOLID › CONSTRUCT › Offset Plane (`ConstructionPlaneOffsetFromPlaneCommand`)
- SOLID › CONSTRUCT › Plane at Angle (`ConstructionPlaneAtAngleCommand`)
- SOLID › CONSTRUCT › Tangent Plane (`ConstructionTangentPlaneCommand`)
- SOLID › CONSTRUCT › Midplane (`ConstructionMidPlaneCommand`)
- SOLID › CONSTRUCT › Perpendicular Plane (`ConstructionPlanePerpendicularToPlaneCommand`)