feat: close builder mutation and roundtrip evidence gaps

This commit is contained in:
2026-08-10 21:27:42 -04:00
parent 3907f50ff1
commit 26ea9b57d7
49 changed files with 5797 additions and 687 deletions

View File

@@ -25,12 +25,22 @@
"fuse",
"cut",
"common",
"rotate",
"pad",
"pocket",
"loft",
"pipe",
"revolution",
"groove",
"fillet",
"chamfer"
"chamfer",
"hole",
"draft",
"thickness",
"linear-pattern",
"polar-pattern",
"mirrored",
"multi-transform"
],
"transport": "step-text"
},

View File

@@ -25,14 +25,22 @@
"fuse",
"cut",
"common",
"rotate",
"pad",
"pocket",
"loft",
"pipe",
"revolution",
"groove",
"fillet",
"chamfer",
"hole",
"draft"
"draft",
"thickness",
"linear-pattern",
"polar-pattern",
"mirrored",
"multi-transform"
],
"transport": "step-text"
},

View File

@@ -25,11 +25,22 @@
"fuse",
"cut",
"common",
"rotate",
"pad",
"pocket",
"loft",
"pipe",
"revolution",
"groove",
"fillet"
"fillet",
"chamfer",
"hole",
"draft",
"thickness",
"linear-pattern",
"polar-pattern",
"mirrored",
"multi-transform"
],
"transport": "step-text"
},

View File

@@ -25,6 +25,7 @@
"fuse",
"cut",
"common",
"rotate",
"pad",
"pocket",
"loft",

View File

@@ -24,8 +24,11 @@
"fuse",
"cut",
"common",
"rotate",
"pad",
"pocket",
"loft",
"pipe",
"revolution",
"groove",
"fillet",
@@ -33,7 +36,10 @@
"hole",
"draft",
"thickness",
"linear-pattern"
"linear-pattern",
"polar-pattern",
"mirrored",
"multi-transform"
],
"transport": "step-text"
},

View File

@@ -24,9 +24,11 @@
"fuse",
"cut",
"common",
"rotate",
"pad",
"pocket",
"loft",
"pipe",
"revolution",
"groove",
"fillet",

View File

@@ -24,8 +24,11 @@
"fuse",
"cut",
"common",
"rotate",
"pad",
"pocket",
"loft",
"pipe",
"revolution",
"groove",
"fillet",
@@ -35,7 +38,8 @@
"thickness",
"linear-pattern",
"polar-pattern",
"mirrored"
"mirrored",
"multi-transform"
],
"transport": "step-text"
},

View File

@@ -24,6 +24,7 @@
"fuse",
"cut",
"common",
"rotate",
"pad",
"pocket",
"loft",

View File

@@ -24,6 +24,7 @@
"fuse",
"cut",
"common",
"rotate",
"pad",
"pocket",
"loft",
@@ -43,10 +44,10 @@
"transport": "step-text"
},
"history": {
"recordCount": 28,
"recordCount": 18,
"relations": {
"modified": 1,
"generated": 27,
"generated": 17,
"deleted": 0
},
"sourceObjects": [

View File

@@ -24,8 +24,11 @@
"fuse",
"cut",
"common",
"rotate",
"pad",
"pocket",
"loft",
"pipe",
"revolution",
"groove",
"fillet",
@@ -34,7 +37,9 @@
"draft",
"thickness",
"linear-pattern",
"polar-pattern"
"polar-pattern",
"mirrored",
"multi-transform"
],
"transport": "step-text"
},

View File

@@ -25,15 +25,22 @@
"fuse",
"cut",
"common",
"rotate",
"pad",
"pocket",
"loft",
"pipe",
"revolution",
"groove",
"fillet",
"chamfer",
"hole",
"draft",
"thickness"
"thickness",
"linear-pattern",
"polar-pattern",
"mirrored",
"multi-transform"
],
"transport": "step-text"
},

View File

@@ -97,7 +97,7 @@
"status": "explicit-runtime-contract",
"mappedNameRef": "optional provider evidence; final-shape-only stages are marked and cannot mint FreeCAD tokens",
"stringHasher": "optional opaque native table; validated and preserved losslessly",
"exactBlockers": ["private FreeCAD token algorithm", "missing native builder stage", "non-unique isomorphic source"]
"exactBlockers": ["browser FreeCAD private token callback ABI", "browser builder naming evidence transport", "non-unique isomorphic source"]
}
},
"browserWorker": {
@@ -124,13 +124,13 @@
"verification": { "level": "experimental", "provider": "FreeCADCmd 1.1.1 native headless Part oracle", "operations": ["locked-source-commit", "reproducible-native-build", "declarative-golden-contract", "part-geometry-replay", "numeric-tolerance-comparison", "execution-plan-validation", "source-inventory-validation", "type-property-inventory-validation"] }
},
"systemExactEvaluation": {
"evaluatedAt": "2026-08-09",
"evaluatedAt": "2026-08-10",
"exact": false,
"featureExactCount": 0,
"plan": "config/freecad-web-exact-parity-plan.json",
"promotionTask": "EX-REL-01",
"taskStatus": { "completed": 1, "inProgress": 37, "pending": 14, "blocked": 0 },
"blockers": ["private FreeCAD token algorithm", "missing native builder stage", "non-unique isomorphic source"]
"taskStatus": { "completed": 2, "inProgress": 36, "pending": 14, "blocked": 0 },
"blockers": ["browser FreeCAD private token callback ABI", "browser builder naming evidence transport", "non-unique isomorphic source"]
},
"rules": [
"UI status does not imply geometry or file compatibility.",

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -8,7 +8,7 @@
"freecad-web-freecad",
"web-freecad-web"
],
"scenarioCount": 22,
"scenarioCount": 23,
"scenarios": [
{
"id": "proxy-byte-preservation",
@@ -560,6 +560,68 @@
"resavedShapeAvailable": true
}
},
{
"id": "part-cut-through-hole",
"direction": "web-freecad-web",
"stages": [
"web-model",
"web-write",
"freecad-open",
"freecad-recompute",
"freecad-resave",
"web-inspect"
],
"domains": [
"objectTree",
"properties",
"shape",
"resources"
],
"freecadVersion": "1.1.1",
"status": "pass",
"differences": [],
"evidence": {
"typeId": "Part::Cut",
"solidCount": 1,
"faceCount": 7,
"volume": 3717.256661176918,
"boundingBox": {
"max": [
20,
20,
10
],
"min": [
0,
0,
0
]
},
"propertyCount": 3,
"properties": {
"Base": "Base",
"Refine": false,
"Tool": "HoleTool"
},
"toolPlacement": {
"position": {
"x": 10,
"y": 10,
"z": -1
},
"rotation": {
"axis": {
"x": 0,
"y": 0,
"z": 1
},
"angle": 0
}
},
"refine": false,
"resavedShapeAvailable": true
}
},
{
"id": "part-sphere-trim",
"direction": "web-freecad-web",

File diff suppressed because it is too large Load Diff

View File

@@ -141,6 +141,108 @@
"expected": "success",
"faces": 6,
"id": "part-extrusion-success",
"mutation": {
"before": {
"parameterSnapshot": [
0,
0,
5
],
"shape": {
"area": 62,
"bounds": {
"max": [
3,
2,
5
],
"min": [
0,
0,
0
]
},
"brepSha256": "9d30d34ebc7b7c4d817dceb14aa8283acaef95ec72b06dcbbb29adbd075c2221",
"edges": 12,
"faces": 6,
"shapeType": "Solid",
"solids": 1,
"valid": true,
"vertices": 8,
"volume": 30
}
},
"brepStable": true,
"edited": {
"parameterSnapshot": [
0,
0,
7
],
"shape": {
"area": 82,
"bounds": {
"max": [
3,
2,
7
],
"min": [
0,
0,
0
]
},
"brepSha256": "810f0b359958485b84d4404172ded10352418bf1877248604cfbe14262ecc4a5",
"edges": 12,
"faces": 6,
"shapeType": "Solid",
"solids": 1,
"valid": true,
"vertices": 8,
"volume": 42
}
},
"familyId": "Part::Extrusion",
"featureName": "Extrusion",
"parameterChanged": true,
"propertyPath": "Dir",
"restored": {
"parameterSnapshot": [
0,
0,
5
],
"shape": {
"area": 62,
"bounds": {
"max": [
3,
2,
5
],
"min": [
0,
0,
0
]
},
"brepSha256": "9d30d34ebc7b7c4d817dceb14aa8283acaef95ec72b06dcbbb29adbd075c2221",
"edges": 12,
"faces": 6,
"shapeType": "Solid",
"solids": 1,
"valid": true,
"vertices": 8,
"volume": 30
}
},
"restoredExactly": true,
"restoredGeometrically": true,
"schemaVersion": 1,
"shapeChanged": true,
"status": "pass"
},
"observed": "success",
"passed": true,
"shapeNull": false,
@@ -161,6 +263,96 @@
"expected": "success",
"faces": 4,
"id": "part-revolution-success",
"mutation": {
"before": {
"parameterSnapshot": 360,
"shape": {
"area": 150.79644737231007,
"bounds": {
"max": [
4,
2,
4
],
"min": [
-4,
0,
-4
]
},
"brepSha256": "1006818e02e479865c719ba5a8b6a513e3595dc36cbb618b8ea8f44770a80eee",
"edges": 6,
"faces": 4,
"shapeType": "Solid",
"solids": 1,
"valid": true,
"vertices": 4,
"volume": 75.398223686155
}
},
"brepStable": false,
"edited": {
"parameterSnapshot": 270,
"shape": {
"area": 121.09733552923257,
"bounds": {
"max": [
4,
2,
4
],
"min": [
-4,
0,
-4
]
},
"brepSha256": "9426f11d00c01396b73f44bc342d021a3779b0ff9d5a81bc78529f80edb589cb",
"edges": 12,
"faces": 6,
"shapeType": "Solid",
"solids": 1,
"valid": true,
"vertices": 8,
"volume": 56.54866776461628
}
},
"familyId": "Part::Revolution",
"featureName": "Revolution",
"parameterChanged": true,
"propertyPath": "Angle",
"restored": {
"parameterSnapshot": 360,
"shape": {
"area": 150.79644737231007,
"bounds": {
"max": [
4,
2,
4
],
"min": [
-4,
0,
-4
]
},
"brepSha256": "ec773a4c293bac1ffc7dfbb42ab648361eb9926779d8d79d00ba037fb01bbe19",
"edges": 6,
"faces": 4,
"shapeType": "Solid",
"solids": 1,
"valid": true,
"vertices": 4,
"volume": 75.398223686155
}
},
"restoredExactly": true,
"restoredGeometrically": true,
"schemaVersion": 1,
"shapeChanged": true,
"status": "pass"
},
"observed": "success",
"passed": true,
"shapeNull": false,
@@ -181,6 +373,96 @@
"expected": "success",
"faces": 6,
"id": "part-loft-success",
"mutation": {
"before": {
"parameterSnapshot": false,
"shape": {
"area": 81.18823416311344,
"bounds": {
"max": [
2,
2,
5
],
"min": [
-2,
-2,
0
]
},
"brepSha256": "efec0c6cf3b8907f16c071ffeed11238b8e5a9f8f60e40fad225eb418ff33f7b",
"edges": 12,
"faces": 6,
"shapeType": "Solid",
"solids": 1,
"valid": true,
"vertices": 8,
"volume": 46.666666666666664
}
},
"brepStable": false,
"edited": {
"parameterSnapshot": true,
"shape": {
"area": 81.18823416311344,
"bounds": {
"max": [
2,
2,
5
],
"min": [
-2,
-2,
0
]
},
"brepSha256": "9542e7469b051c053c1c425ffa5d246194661675e16ff0dcc046bce6b2527df1",
"edges": 12,
"faces": 6,
"shapeType": "Solid",
"solids": 1,
"valid": true,
"vertices": 8,
"volume": 46.666666666666664
}
},
"familyId": "Part::Loft",
"featureName": "Loft",
"parameterChanged": true,
"propertyPath": "Ruled",
"restored": {
"parameterSnapshot": false,
"shape": {
"area": 81.18823416311344,
"bounds": {
"max": [
2,
2,
5
],
"min": [
-2,
-2,
0
]
},
"brepSha256": "bb0a25834e30e135551532aba7398c66e7de32e79ca07d4b3cd07268ace94ee5",
"edges": 12,
"faces": 6,
"shapeType": "Solid",
"solids": 1,
"valid": true,
"vertices": 8,
"volume": 46.666666666666664
}
},
"restoredExactly": true,
"restoredGeometrically": true,
"schemaVersion": 1,
"shapeChanged": true,
"status": "pass"
},
"observed": "success",
"passed": true,
"shapeNull": false,
@@ -201,6 +483,111 @@
"expected": "success",
"faces": 6,
"id": "part-sweep-success",
"mutation": {
"before": {
"parameterSnapshot": [
{
"name": "Section",
"typeId": "Part::Feature"
}
],
"shape": {
"area": 56,
"bounds": {
"max": [
1,
1,
6
],
"min": [
-1,
-1,
0
]
},
"brepSha256": "5c1241164480ab824c8e107694158117e7d5854ca62985d1123a33853d6d5e58",
"edges": 12,
"faces": 6,
"shapeType": "Solid",
"solids": 1,
"valid": true,
"vertices": 8,
"volume": 23.999999999999996
}
},
"brepStable": true,
"edited": {
"parameterSnapshot": [
{
"name": "EditedSection",
"typeId": "Part::Feature"
}
],
"shape": {
"area": 40.5,
"bounds": {
"max": [
0.75,
0.75,
6
],
"min": [
-0.75,
-0.75,
0
]
},
"brepSha256": "5fcac1094e1a5fd89bdc44c7ebe60e3a80060bba5a28852875d55869b3a96ee7",
"edges": 12,
"faces": 6,
"shapeType": "Solid",
"solids": 1,
"valid": true,
"vertices": 8,
"volume": 13.5
}
},
"familyId": "Part::Sweep",
"featureName": "Sweep",
"parameterChanged": true,
"propertyPath": "Sections",
"restored": {
"parameterSnapshot": [
{
"name": "Section",
"typeId": "Part::Feature"
}
],
"shape": {
"area": 56,
"bounds": {
"max": [
1,
1,
6
],
"min": [
-1,
-1,
0
]
},
"brepSha256": "5c1241164480ab824c8e107694158117e7d5854ca62985d1123a33853d6d5e58",
"edges": 12,
"faces": 6,
"shapeType": "Solid",
"solids": 1,
"valid": true,
"vertices": 8,
"volume": 23.999999999999996
}
},
"restoredExactly": true,
"restoredGeometrically": true,
"schemaVersion": 1,
"shapeChanged": true,
"status": "pass"
},
"observed": "success",
"passed": true,
"shapeNull": false,
@@ -221,6 +608,114 @@
"expected": "success",
"faces": 7,
"id": "part-fillet-success",
"mutation": {
"before": {
"parameterSnapshot": [
[
1,
1,
1
]
],
"shape": {
"area": 372.99557428756424,
"bounds": {
"max": [
10,
8,
6
],
"min": [
-2.220446049250313e-16,
-2.220446049250313e-16,
0
]
},
"brepSha256": "53dbc555b86be7f2e989af3dd696ee01a611a4d7eb6b8d4fd1d379d351e8f73d",
"edges": 15,
"faces": 7,
"shapeType": "Compound",
"solids": 1,
"valid": true,
"vertices": 10,
"volume": 478.7123889803846
}
},
"brepStable": true,
"edited": {
"parameterSnapshot": [
[
1,
0.5,
0.5
]
],
"shape": {
"area": 374.6050880620834,
"bounds": {
"max": [
10,
8,
6
],
"min": [
-1.1102230246251565e-16,
-1.1102230246251565e-16,
0
]
},
"brepSha256": "25428228208a7ddd0b814f828c566d9ce99916c2ab86277d7eadf83dcba05aa7",
"edges": 15,
"faces": 7,
"shapeType": "Compound",
"solids": 1,
"valid": true,
"vertices": 10,
"volume": 479.6780972450962
}
},
"familyId": "Part::Fillet",
"featureName": "Fillet",
"parameterChanged": true,
"propertyPath": "Edges",
"restored": {
"parameterSnapshot": [
[
1,
1,
1
]
],
"shape": {
"area": 372.99557428756424,
"bounds": {
"max": [
10,
8,
6
],
"min": [
-2.220446049250313e-16,
-2.220446049250313e-16,
0
]
},
"brepSha256": "53dbc555b86be7f2e989af3dd696ee01a611a4d7eb6b8d4fd1d379d351e8f73d",
"edges": 15,
"faces": 7,
"shapeType": "Compound",
"solids": 1,
"valid": true,
"vertices": 10,
"volume": 478.7123889803846
}
},
"restoredExactly": true,
"restoredGeometrically": true,
"schemaVersion": 1,
"shapeChanged": true,
"status": "pass"
},
"observed": "success",
"passed": true,
"shapeNull": false,
@@ -241,6 +736,114 @@
"expected": "success",
"faces": 7,
"id": "part-chamfer-success",
"mutation": {
"before": {
"parameterSnapshot": [
[
1,
1,
1
]
],
"shape": {
"area": 371.4852813742385,
"bounds": {
"max": [
10,
8,
6
],
"min": [
-1.6653345369377348e-16,
-1.6653345369377348e-16,
0
]
},
"brepSha256": "53ed2773aca1555789f3cca4fbb6b95e76ca92e40b1f423d53bfe39da21bbca6",
"edges": 15,
"faces": 7,
"shapeType": "Compound",
"solids": 1,
"valid": true,
"vertices": 10,
"volume": 476.9999999999999
}
},
"brepStable": true,
"edited": {
"parameterSnapshot": [
[
1,
0.5,
0.5
]
],
"shape": {
"area": 373.99264068711926,
"bounds": {
"max": [
10,
8,
6
],
"min": [
-8.326672684688674e-17,
-8.326672684688674e-17,
0
]
},
"brepSha256": "ac5a85fa3d48a6595c1458a80fa22b6618c3c4203c3c5995a92cd2349fa262c5",
"edges": 15,
"faces": 7,
"shapeType": "Compound",
"solids": 1,
"valid": true,
"vertices": 10,
"volume": 479.25
}
},
"familyId": "Part::Chamfer",
"featureName": "Chamfer",
"parameterChanged": true,
"propertyPath": "Edges",
"restored": {
"parameterSnapshot": [
[
1,
1,
1
]
],
"shape": {
"area": 371.4852813742385,
"bounds": {
"max": [
10,
8,
6
],
"min": [
-1.6653345369377348e-16,
-1.6653345369377348e-16,
0
]
},
"brepSha256": "53ed2773aca1555789f3cca4fbb6b95e76ca92e40b1f423d53bfe39da21bbca6",
"edges": 15,
"faces": 7,
"shapeType": "Compound",
"solids": 1,
"valid": true,
"vertices": 10,
"volume": 476.9999999999999
}
},
"restoredExactly": true,
"restoredGeometrically": true,
"schemaVersion": 1,
"shapeChanged": true,
"status": "pass"
},
"observed": "success",
"passed": true,
"shapeNull": false,

View File

@@ -16,6 +16,105 @@
},
"faces": 6,
"id": "pad-tapered",
"mutation": {
"before": {
"parameterSnapshot": {
"unit": "Unit: mm (1,0,0,0,0,0,0,0) [Length]",
"value": 5
},
"shape": {
"area": 128.85239231084472,
"bounds": {
"max": [
2.43744331762962,
2.43744331762962,
5
],
"min": [
-2.43744331762962,
-2.43744331762962,
0
]
},
"brepSha256": "f5a07a59b273c128018d781af423bf016a2b0d17dc6dd59619460e37ca72de96",
"edges": 12,
"faces": 6,
"shapeType": "Solid",
"solids": 1,
"valid": true,
"vertices": 8,
"volume": 98.77344374611019
}
},
"brepStable": false,
"edited": {
"parameterSnapshot": {
"unit": "Unit: mm (1,0,0,0,0,0,0,0) [Length]",
"value": 6
},
"shape": {
"area": 150.51432170708637,
"bounds": {
"max": [
2.524931981155544,
2.524931981155544,
6
],
"min": [
-2.524931981155544,
-2.524931981155544,
0
]
},
"brepSha256": "1987bd297acc648dc0d43f7703d68a0c8005a45056a3274c5f0240b1b46b9679",
"edges": 12,
"faces": 6,
"shapeType": "Solid",
"solids": 1,
"valid": true,
"vertices": 8,
"volume": 123.40116377418519
}
},
"familyId": "PartDesign::Pad",
"featureName": "Pad",
"parameterChanged": true,
"propertyPath": "Length",
"restored": {
"parameterSnapshot": {
"unit": "Unit: mm (1,0,0,0,0,0,0,0) [Length]",
"value": 5
},
"shape": {
"area": 128.85239231084472,
"bounds": {
"max": [
2.43744331762962,
2.43744331762962,
5
],
"min": [
-2.43744331762962,
-2.43744331762962,
0
]
},
"brepSha256": "b5c1d71797f05ed2b2c51400de81047759f684a2c14d65d57acdc035aa3512e7",
"edges": 12,
"faces": 6,
"shapeType": "Solid",
"solids": 1,
"valid": true,
"vertices": 8,
"volume": 98.77344374611019
}
},
"restoredExactly": true,
"restoredGeometrically": true,
"schemaVersion": 1,
"shapeChanged": true,
"status": "pass"
},
"passed": true,
"solids": 1,
"status": "Valid",
@@ -36,6 +135,105 @@
},
"faces": 10,
"id": "pocket-tapered",
"mutation": {
"before": {
"parameterSnapshot": {
"unit": "Unit: mm (1,0,0,0,0,0,0,0) [Length]",
"value": 10
},
"shape": {
"area": 735.999242011454,
"bounds": {
"max": [
5,
5,
5
],
"min": [
-5,
-5,
-5
]
},
"brepSha256": "ae401e5db6c23acc7d0fe23896ac08a0c27d6ed73df32953b1a9b15349f0b7bd",
"edges": 24,
"faces": 10,
"shapeType": "Compound",
"solids": 1,
"valid": true,
"vertices": 16,
"volume": 810.4374375507407
}
},
"brepStable": false,
"edited": {
"parameterSnapshot": {
"unit": "Unit: mm (1,0,0,0,0,0,0,0) [Length]",
"value": 8
},
"shape": {
"area": 741.80522810493,
"bounds": {
"max": [
5,
5,
5
],
"min": [
-5,
-5,
-5
]
},
"brepSha256": "20aedff38ad1468a1eb669a71e9ad4ab45f1b211bfc81a41caf50b4cd39a03b3",
"edges": 24,
"faces": 11,
"shapeType": "Compound",
"solids": 1,
"valid": true,
"vertices": 16,
"volume": 853.2880812300241
}
},
"familyId": "PartDesign::Pocket",
"featureName": "Pocket",
"parameterChanged": true,
"propertyPath": "Length",
"restored": {
"parameterSnapshot": {
"unit": "Unit: mm (1,0,0,0,0,0,0,0) [Length]",
"value": 10
},
"shape": {
"area": 735.999242011454,
"bounds": {
"max": [
5,
5,
5
],
"min": [
-5,
-5,
-5
]
},
"brepSha256": "56193a107c590c262642369e26467a690c0267174d47e2905f590280bf91d523",
"edges": 24,
"faces": 10,
"shapeType": "Compound",
"solids": 1,
"valid": true,
"vertices": 16,
"volume": 810.4374375507407
}
},
"restoredExactly": true,
"restoredGeometrically": true,
"schemaVersion": 1,
"shapeChanged": true,
"status": "pass"
},
"passed": true,
"solids": 1,
"status": "Valid",

View File

@@ -5,6 +5,105 @@
"edges": 15,
"faces": 7,
"id": "fillet-selected-edge",
"mutation": {
"before": {
"parameterSnapshot": {
"unit": "Unit: mm (1,0,0,0,0,0,0,0) [Length]",
"value": 1
},
"shape": {
"area": 595.2787595947437,
"bounds": {
"max": [
10,
10,
10
],
"min": [
-2.220446049250313e-16,
-2.220446049250313e-16,
0
]
},
"brepSha256": "98c5a880b0bea84194e75f61c08114d8e8885fec88ffa3effc6f3da5063d7421",
"edges": 15,
"faces": 7,
"shapeType": "Compound",
"solids": 1,
"valid": true,
"vertices": 10,
"volume": 997.8539816339743
}
},
"brepStable": true,
"edited": {
"parameterSnapshot": {
"unit": "Unit: mm (1,0,0,0,0,0,0,0) [Length]",
"value": 0.5
},
"shape": {
"area": 597.746680715673,
"bounds": {
"max": [
10,
10,
10
],
"min": [
-1.1102230246251565e-16,
-1.1102230246251565e-16,
0
]
},
"brepSha256": "03ec60b398de6e54bb2198d3a81b27abf5968b4479b66a794c18047aeea72946",
"edges": 15,
"faces": 7,
"shapeType": "Compound",
"solids": 1,
"valid": true,
"vertices": 10,
"volume": 999.4634954084936
}
},
"familyId": "PartDesign::Fillet",
"featureName": "Fillet",
"parameterChanged": true,
"propertyPath": "Radius",
"restored": {
"parameterSnapshot": {
"unit": "Unit: mm (1,0,0,0,0,0,0,0) [Length]",
"value": 1
},
"shape": {
"area": 595.2787595947437,
"bounds": {
"max": [
10,
10,
10
],
"min": [
-2.220446049250313e-16,
-2.220446049250313e-16,
0
]
},
"brepSha256": "98c5a880b0bea84194e75f61c08114d8e8885fec88ffa3effc6f3da5063d7421",
"edges": 15,
"faces": 7,
"shapeType": "Compound",
"solids": 1,
"valid": true,
"vertices": 10,
"volume": 997.8539816339743
}
},
"restoredExactly": true,
"restoredGeometrically": true,
"schemaVersion": 1,
"shapeChanged": true,
"status": "pass"
},
"passed": true,
"selection": [
"Edge1"
@@ -18,6 +117,105 @@
"edges": 15,
"faces": 7,
"id": "chamfer-selected-edge",
"mutation": {
"before": {
"parameterSnapshot": {
"unit": "Unit: mm (1,0,0,0,0,0,0,0) [Length]",
"value": 1
},
"shape": {
"area": 593.1421356237308,
"bounds": {
"max": [
10,
10,
10
],
"min": [
-1.6653345369377348e-16,
-1.6653345369377348e-16,
0
]
},
"brepSha256": "d67242a11006664458599a9b2e13b2f9f4857699041bfe30bf33c2c2f774403a",
"edges": 15,
"faces": 7,
"shapeType": "Compound",
"solids": 1,
"valid": true,
"vertices": 10,
"volume": 994.9999999999998
}
},
"brepStable": true,
"edited": {
"parameterSnapshot": {
"unit": "Unit: mm (1,0,0,0,0,0,0,0) [Length]",
"value": 0.5
},
"shape": {
"area": 596.8210678118654,
"bounds": {
"max": [
10,
10,
10
],
"min": [
-8.326672684688674e-17,
-8.326672684688674e-17,
0
]
},
"brepSha256": "51fb428868d98f40f7acbf91f018323d500315c167b8b8195a07f17c5b681258",
"edges": 15,
"faces": 7,
"shapeType": "Compound",
"solids": 1,
"valid": true,
"vertices": 10,
"volume": 998.75
}
},
"familyId": "PartDesign::Chamfer",
"featureName": "Chamfer",
"parameterChanged": true,
"propertyPath": "Size",
"restored": {
"parameterSnapshot": {
"unit": "Unit: mm (1,0,0,0,0,0,0,0) [Length]",
"value": 1
},
"shape": {
"area": 593.1421356237308,
"bounds": {
"max": [
10,
10,
10
],
"min": [
-1.6653345369377348e-16,
-1.6653345369377348e-16,
0
]
},
"brepSha256": "d67242a11006664458599a9b2e13b2f9f4857699041bfe30bf33c2c2f774403a",
"edges": 15,
"faces": 7,
"shapeType": "Compound",
"solids": 1,
"valid": true,
"vertices": 10,
"volume": 994.9999999999998
}
},
"restoredExactly": true,
"restoredGeometrically": true,
"schemaVersion": 1,
"shapeChanged": true,
"status": "pass"
},
"passed": true,
"selection": [
"Edge1"
@@ -31,6 +229,105 @@
"edges": 12,
"faces": 6,
"id": "draft-selected-face",
"mutation": {
"before": {
"parameterSnapshot": {
"unit": "Unit: deg (0,0,0,0,0,0,0,1) [Angle]",
"value": 45
},
"shape": {
"area": 841.4213562373093,
"bounds": {
"max": [
10.000000000000002,
10,
20
],
"min": [
0,
0,
0
]
},
"brepSha256": "fdc7c4775ef559c6309bbb2d1a31065a49e6d70455372f8fda595568fe46dfa4",
"edges": 12,
"faces": 6,
"shapeType": "Solid",
"solids": 1,
"valid": true,
"vertices": 8,
"volume": 1499.9999999999998
}
},
"brepStable": true,
"edited": {
"parameterSnapshot": {
"unit": "Unit: deg (0,0,0,0,0,0,0,1) [Angle]",
"value": 30
},
"shape": {
"area": 730.9401076758501,
"bounds": {
"max": [
10,
10,
15.773502691896255
],
"min": [
0,
0,
0
]
},
"brepSha256": "be5a1c93837a915d46279a1c5e40fbf46c0f921db4064f97ef568fbae9d3408e",
"edges": 12,
"faces": 6,
"shapeType": "Solid",
"solids": 1,
"valid": true,
"vertices": 8,
"volume": 1288.6751345948126
}
},
"familyId": "PartDesign::Draft",
"featureName": "Draft",
"parameterChanged": true,
"propertyPath": "Angle",
"restored": {
"parameterSnapshot": {
"unit": "Unit: deg (0,0,0,0,0,0,0,1) [Angle]",
"value": 45
},
"shape": {
"area": 841.4213562373093,
"bounds": {
"max": [
10.000000000000002,
10,
20
],
"min": [
0,
0,
0
]
},
"brepSha256": "fdc7c4775ef559c6309bbb2d1a31065a49e6d70455372f8fda595568fe46dfa4",
"edges": 12,
"faces": 6,
"shapeType": "Solid",
"solids": 1,
"valid": true,
"vertices": 8,
"volume": 1499.9999999999998
}
},
"restoredExactly": true,
"restoredGeometrically": true,
"schemaVersion": 1,
"shapeChanged": true,
"status": "pass"
},
"passed": true,
"reversed": true,
"selection": [
@@ -46,6 +343,105 @@
"elementMapSize": 51,
"faces": 11,
"id": "thickness-selected-face",
"mutation": {
"before": {
"parameterSnapshot": {
"unit": "Unit: mm (1,0,0,0,0,0,0,0) [Length]",
"value": 1
},
"shape": {
"area": 887.9999999999999,
"bounds": {
"max": [
10,
10,
10
],
"min": [
0,
0,
0
]
},
"brepSha256": "747d92b1cf08109f59d9a972e6e14be9f09691263866f7eafbbdcee940390c4e",
"edges": 24,
"faces": 11,
"shapeType": "Solid",
"solids": 1,
"valid": true,
"vertices": 16,
"volume": 423.99999999999983
}
},
"brepStable": true,
"edited": {
"parameterSnapshot": {
"unit": "Unit: mm (1,0,0,0,0,0,0,0) [Length]",
"value": 0.8
},
"shape": {
"area": 909.1199999999998,
"bounds": {
"max": [
10,
10,
10
],
"min": [
0,
0,
0
]
},
"brepSha256": "31e712785de8577559f0ce4584ced599fc69b3cbf9a508ab3eec24f2ab324952",
"edges": 24,
"faces": 11,
"shapeType": "Solid",
"solids": 1,
"valid": true,
"vertices": 16,
"volume": 350.8479999999998
}
},
"familyId": "PartDesign::Thickness",
"featureName": "Thickness",
"parameterChanged": true,
"propertyPath": "Value",
"restored": {
"parameterSnapshot": {
"unit": "Unit: mm (1,0,0,0,0,0,0,0) [Length]",
"value": 1
},
"shape": {
"area": 887.9999999999999,
"bounds": {
"max": [
10,
10,
10
],
"min": [
0,
0,
0
]
},
"brepSha256": "747d92b1cf08109f59d9a972e6e14be9f09691263866f7eafbbdcee940390c4e",
"edges": 24,
"faces": 11,
"shapeType": "Solid",
"solids": 1,
"valid": true,
"vertices": 16,
"volume": 423.99999999999983
}
},
"restoredExactly": true,
"restoredGeometrically": true,
"schemaVersion": 1,
"shapeChanged": true,
"status": "pass"
},
"passed": true,
"reversed": true,
"selection": [

View File

@@ -4,6 +4,96 @@
{
"faces": 6,
"id": "additive-loft",
"mutation": {
"before": {
"parameterSnapshot": false,
"shape": {
"area": 7.23606797749979,
"bounds": {
"max": [
1,
1,
2
],
"min": [
0,
0,
0
]
},
"brepSha256": "0ab177609a66575afff2f36237fdf271e5a95e8fb738c91101648533e01c6642",
"edges": 12,
"faces": 6,
"shapeType": "Solid",
"solids": 1,
"valid": true,
"vertices": 8,
"volume": 1
}
},
"brepStable": false,
"edited": {
"parameterSnapshot": true,
"shape": {
"area": 7.23606797749979,
"bounds": {
"max": [
1,
1,
2
],
"min": [
0,
0,
0
]
},
"brepSha256": "8a243d5c346dcb96da932fea88d54513c36e697b99cd36a90c892100e1f7b337",
"edges": 12,
"faces": 6,
"shapeType": "Solid",
"solids": 1,
"valid": true,
"vertices": 8,
"volume": 1
}
},
"familyId": "PartDesign::AdditiveLoft",
"featureName": "AdditiveLoft",
"parameterChanged": true,
"propertyPath": "Ruled",
"restored": {
"parameterSnapshot": false,
"shape": {
"area": 7.23606797749979,
"bounds": {
"max": [
1,
1,
2
],
"min": [
0,
0,
0
]
},
"brepSha256": "9cf30242b4b3776be5256d587155eb9781d7cc7534bbb60f125830fde83686c6",
"edges": 12,
"faces": 6,
"shapeType": "Solid",
"solids": 1,
"valid": true,
"vertices": 8,
"volume": 1
}
},
"restoredExactly": true,
"restoredGeometrically": true,
"schemaVersion": 1,
"shapeChanged": true,
"status": "pass"
},
"passed": true,
"solids": 1,
"status": "Valid",
@@ -13,6 +103,126 @@
{
"faces": 5,
"id": "subtractive-loft",
"mutation": {
"before": {
"parameterSnapshot": [
[
{
"name": "Section",
"typeId": "Sketcher::SketchObject"
},
[
""
]
]
],
"shape": {
"area": 7.236067977499789,
"bounds": {
"max": [
1,
1,
2
],
"min": [
0,
0,
0
]
},
"brepSha256": "c90d78028b450759ca50298c18e98d5cfee774d1e453d6c133f5b748fa01c78a",
"edges": 9,
"faces": 5,
"shapeType": "Compound",
"solids": 1,
"valid": true,
"vertices": 6,
"volume": 0.9999999999999994
}
},
"brepStable": true,
"edited": {
"parameterSnapshot": [
[
{
"name": "EditedSection",
"typeId": "Sketcher::SketchObject"
},
[
""
]
]
],
"shape": {
"area": 9.348113056667211,
"bounds": {
"max": [
1,
1,
2
],
"min": [
0,
0,
0
]
},
"brepSha256": "21e5dda76ba93b30769b6f0b5d01006f43f92bb1012559f7a6ffdf5b25b8dc44",
"edges": 15,
"faces": 7,
"shapeType": "Compound",
"solids": 1,
"valid": true,
"vertices": 10,
"volume": 1.2135416666666667
}
},
"familyId": "PartDesign::SubtractiveLoft",
"featureName": "SubtractiveLoft",
"parameterChanged": true,
"propertyPath": "Sections",
"restored": {
"parameterSnapshot": [
[
{
"name": "Section",
"typeId": "Sketcher::SketchObject"
},
[
""
]
]
],
"shape": {
"area": 7.236067977499789,
"bounds": {
"max": [
1,
1,
2
],
"min": [
0,
0,
0
]
},
"brepSha256": "c90d78028b450759ca50298c18e98d5cfee774d1e453d6c133f5b748fa01c78a",
"edges": 9,
"faces": 5,
"shapeType": "Compound",
"solids": 1,
"valid": true,
"vertices": 6,
"volume": 0.9999999999999994
}
},
"restoredExactly": true,
"restoredGeometrically": true,
"schemaVersion": 1,
"shapeChanged": true,
"status": "pass"
},
"passed": true,
"solids": 1,
"status": "Valid",
@@ -22,6 +232,114 @@
{
"faces": 3,
"id": "additive-pipe",
"mutation": {
"before": {
"parameterSnapshot": [
{
"name": "Profile",
"typeId": "Sketcher::SketchObject"
},
[]
],
"shape": {
"area": 12.566370614359169,
"bounds": {
"max": [
1,
1.0000000000000002,
1.0000000000000002
],
"min": [
-1,
-1,
-2.220446049250313e-16
]
},
"brepSha256": "82aa44aafac3cd8d51197e46391c039ae2a26b90e99df2f805e453de776dfcd8",
"edges": 3,
"faces": 3,
"shapeType": "Solid",
"solids": 1,
"valid": true,
"vertices": 2,
"volume": 3.1415926535897927
}
},
"brepStable": true,
"edited": {
"parameterSnapshot": [
{
"name": "EditedProfile",
"typeId": "Sketcher::SketchObject"
},
[]
],
"shape": {
"area": 8.246680715673207,
"bounds": {
"max": [
0.75,
0.7500000000000002,
1.0000000000000002
],
"min": [
-0.75,
-0.75,
-1.6653345369377348e-16
]
},
"brepSha256": "452964b54d47c78e21e540fbd17b33e1a449fefd3607583204dd840d0761ca1f",
"edges": 3,
"faces": 3,
"shapeType": "Solid",
"solids": 1,
"valid": true,
"vertices": 2,
"volume": 1.7671458676442584
}
},
"familyId": "PartDesign::AdditivePipe",
"featureName": "AdditivePipe",
"parameterChanged": true,
"propertyPath": "Profile",
"restored": {
"parameterSnapshot": [
{
"name": "Profile",
"typeId": "Sketcher::SketchObject"
},
[]
],
"shape": {
"area": 12.566370614359169,
"bounds": {
"max": [
1,
1.0000000000000002,
1.0000000000000002
],
"min": [
-1,
-1,
-2.220446049250313e-16
]
},
"brepSha256": "82aa44aafac3cd8d51197e46391c039ae2a26b90e99df2f805e453de776dfcd8",
"edges": 3,
"faces": 3,
"shapeType": "Solid",
"solids": 1,
"valid": true,
"vertices": 2,
"volume": 3.1415926535897927
}
},
"restoredExactly": true,
"restoredGeometrically": true,
"schemaVersion": 1,
"shapeChanged": true,
"status": "pass"
},
"passed": true,
"solids": 1,
"status": "Valid",
@@ -32,6 +350,114 @@
{
"faces": 7,
"id": "subtractive-pipe",
"mutation": {
"before": {
"parameterSnapshot": [
{
"name": "Profile",
"typeId": "Sketcher::SketchObject"
},
[]
],
"shape": {
"area": 239.99999999999997,
"bounds": {
"max": [
5,
5,
1.0000000000000002
],
"min": [
-5,
-5,
-2.220446049250313e-16
]
},
"brepSha256": "85644672cbbe548cbc5c063dc5e63feda7f149eb6a9b1446cba89f456945180b",
"edges": 15,
"faces": 7,
"shapeType": "Compound",
"solids": 1,
"valid": true,
"vertices": 10,
"volume": 96.8584073464102
}
},
"brepStable": true,
"edited": {
"parameterSnapshot": [
{
"name": "EditedProfile",
"typeId": "Sketcher::SketchObject"
},
[]
],
"shape": {
"area": 241.17809724509615,
"bounds": {
"max": [
5,
5,
1.0000000000000002
],
"min": [
-5,
-5,
-1.6653345369377348e-16
]
},
"brepSha256": "1bca636a2f0deffa3ba317f7000dc245a9eaaa3d79bd800d1cbe80b6d3bb6b16",
"edges": 15,
"faces": 7,
"shapeType": "Compound",
"solids": 1,
"valid": true,
"vertices": 10,
"volume": 98.23285413235574
}
},
"familyId": "PartDesign::SubtractivePipe",
"featureName": "SubtractivePipe",
"parameterChanged": true,
"propertyPath": "Profile",
"restored": {
"parameterSnapshot": [
{
"name": "Profile",
"typeId": "Sketcher::SketchObject"
},
[]
],
"shape": {
"area": 239.99999999999997,
"bounds": {
"max": [
5,
5,
1.0000000000000002
],
"min": [
-5,
-5,
-2.220446049250313e-16
]
},
"brepSha256": "85644672cbbe548cbc5c063dc5e63feda7f149eb6a9b1446cba89f456945180b",
"edges": 15,
"faces": 7,
"shapeType": "Compound",
"solids": 1,
"valid": true,
"vertices": 10,
"volume": 96.8584073464102
}
},
"restoredExactly": true,
"restoredGeometrically": true,
"schemaVersion": 1,
"shapeChanged": true,
"status": "pass"
},
"passed": true,
"solids": 1,
"status": "Valid",

View File

@@ -4,6 +4,105 @@
{
"faces": 4,
"id": "partdesign-revolution",
"mutation": {
"before": {
"parameterSnapshot": {
"unit": "Unit: deg (0,0,0,0,0,0,0,1) [Angle]",
"value": 360
},
"shape": {
"area": 150.79644737231007,
"bounds": {
"max": [
1,
4,
4
],
"min": [
-1,
-4,
-4
]
},
"brepSha256": "4e10234851bc71948ff0e12cfe337f7cf1f9f177d80991186faccb42bb09f84d",
"edges": 6,
"faces": 4,
"shapeType": "Solid",
"solids": 1,
"valid": true,
"vertices": 4,
"volume": 75.39822368615502
}
},
"brepStable": false,
"edited": {
"parameterSnapshot": {
"unit": "Unit: deg (0,0,0,0,0,0,0,1) [Angle]",
"value": 270
},
"shape": {
"area": 121.09733552923255,
"bounds": {
"max": [
1,
4,
4
],
"min": [
-1,
-4,
-4
]
},
"brepSha256": "99a870ec07e78b9c0903bee67373a8f4051c5651629db1149aeab3bc3be9d3d7",
"edges": 12,
"faces": 6,
"shapeType": "Solid",
"solids": 1,
"valid": true,
"vertices": 8,
"volume": 56.54866776461628
}
},
"familyId": "PartDesign::Revolution",
"featureName": "Revolution",
"parameterChanged": true,
"propertyPath": "Angle",
"restored": {
"parameterSnapshot": {
"unit": "Unit: deg (0,0,0,0,0,0,0,1) [Angle]",
"value": 360
},
"shape": {
"area": 150.79644737231007,
"bounds": {
"max": [
1,
4,
4
],
"min": [
-1,
-4,
-4
]
},
"brepSha256": "1fe389e236a01afd10442aacb43772d81f3910bde25b215d191d62d69eaa8c64",
"edges": 6,
"faces": 4,
"shapeType": "Solid",
"solids": 1,
"valid": true,
"vertices": 4,
"volume": 75.39822368615502
}
},
"restoredExactly": true,
"restoredGeometrically": true,
"schemaVersion": 1,
"shapeChanged": true,
"status": "pass"
},
"operation": "revolution",
"passed": true,
"shapeNull": false,
@@ -16,6 +115,105 @@
{
"faces": 10,
"id": "partdesign-groove",
"mutation": {
"before": {
"parameterSnapshot": {
"unit": "Unit: deg (0,0,0,0,0,0,0,1) [Angle]",
"value": 180
},
"shape": {
"area": 610.137166941154,
"bounds": {
"max": [
10,
10,
10
],
"min": [
0,
0,
0
]
},
"brepSha256": "a71b46178c908477d71f6d08b4c922184abcc8426114c3e4315c50fbd8b17b87",
"edges": 24,
"faces": 10,
"shapeType": "Compound",
"solids": 1,
"valid": true,
"vertices": 16,
"volume": 995.2876110196153
}
},
"brepStable": false,
"edited": {
"parameterSnapshot": {
"unit": "Unit: deg (0,0,0,0,0,0,0,1) [Angle]",
"value": 120
},
"shape": {
"area": 610.137166941154,
"bounds": {
"max": [
10,
10,
10
],
"min": [
0,
0,
0
]
},
"brepSha256": "7d3dfb277849d5bdd4eed46a50b16c88c84830727893b452ec327c016aa93de1",
"edges": 24,
"faces": 10,
"shapeType": "Compound",
"solids": 1,
"valid": true,
"vertices": 16,
"volume": 995.2876110196153
}
},
"familyId": "PartDesign::Groove",
"featureName": "Groove",
"parameterChanged": true,
"propertyPath": "Angle",
"restored": {
"parameterSnapshot": {
"unit": "Unit: deg (0,0,0,0,0,0,0,1) [Angle]",
"value": 180
},
"shape": {
"area": 610.137166941154,
"bounds": {
"max": [
10,
10,
10
],
"min": [
0,
0,
0
]
},
"brepSha256": "6795afbb4bb89669697e47396335aa79cb12cb2aa14f1cade543a63894d6287f",
"edges": 24,
"faces": 10,
"shapeType": "Compound",
"solids": 1,
"valid": true,
"vertices": 16,
"volume": 995.2876110196153
}
},
"restoredExactly": true,
"restoredGeometrically": true,
"schemaVersion": 1,
"shapeChanged": true,
"status": "pass"
},
"operation": "groove",
"passed": true,
"shapeNull": false,

View File

@@ -7,6 +7,96 @@
"faces": 21,
"id": "linear-feature-list",
"length": 12,
"mutation": {
"before": {
"parameterSnapshot": 3,
"shape": {
"area": 568,
"bounds": {
"max": [
20,
10,
4
],
"min": [
0,
0,
0
]
},
"brepSha256": "f5b90a00cb51e89b5d6cf1457a8b877ba0609d9053a31fb478070765f3ffc446",
"edges": 48,
"faces": 21,
"shapeType": "Compound",
"solids": 1,
"valid": true,
"vertices": 32,
"volume": 423.99999999999994
}
},
"brepStable": true,
"edited": {
"parameterSnapshot": 4,
"shape": {
"area": 584,
"bounds": {
"max": [
20,
10,
4
],
"min": [
0,
0,
0
]
},
"brepSha256": "44b0867df8d01e7725a337741c5fabab336a9928cc4ddcd5674b386e14ddfb99",
"edges": 60,
"faces": 26,
"shapeType": "Compound",
"solids": 1,
"valid": true,
"vertices": 40,
"volume": 431.99999999999983
}
},
"familyId": "PartDesign::LinearPattern",
"featureName": "LinearPattern",
"parameterChanged": true,
"propertyPath": "Occurrences",
"restored": {
"parameterSnapshot": 3,
"shape": {
"area": 568,
"bounds": {
"max": [
20,
10,
4
],
"min": [
0,
0,
0
]
},
"brepSha256": "f5b90a00cb51e89b5d6cf1457a8b877ba0609d9053a31fb478070765f3ffc446",
"edges": 48,
"faces": 21,
"shapeType": "Compound",
"solids": 1,
"valid": true,
"vertices": 32,
"volume": 423.99999999999994
}
},
"restoredExactly": true,
"restoredGeometrically": true,
"schemaVersion": 1,
"shapeChanged": true,
"status": "pass"
},
"occurrences": 3,
"originals": [
"Boss"
@@ -22,6 +112,96 @@
"edges": 28,
"faces": 12,
"id": "mirrored-feature-list",
"mutation": {
"before": {
"parameterSnapshot": true,
"shape": {
"area": 552,
"bounds": {
"max": [
20,
10,
4
],
"min": [
-2,
0,
0
]
},
"brepSha256": "f09f9f5ab8be73c2eb76c3410c969e93044fb6beb01feec52d2d239da62d3c2e",
"edges": 28,
"faces": 12,
"shapeType": "Compound",
"solids": 1,
"valid": true,
"vertices": 18,
"volume": 416.00000000000006
}
},
"brepStable": true,
"edited": {
"parameterSnapshot": false,
"shape": {
"area": 552,
"bounds": {
"max": [
20,
10,
4
],
"min": [
-2,
0,
0
]
},
"brepSha256": "b978620d2a6f99e90e96dbc7f20b19169bea51ce2f4d22bfc620e55d62ccdeaa",
"edges": 33,
"faces": 15,
"shapeType": "Compound",
"solids": 1,
"valid": true,
"vertices": 20,
"volume": 415.99999999999983
}
},
"familyId": "PartDesign::Mirrored",
"featureName": "Mirrored",
"parameterChanged": true,
"propertyPath": "Refine",
"restored": {
"parameterSnapshot": true,
"shape": {
"area": 552,
"bounds": {
"max": [
20,
10,
4
],
"min": [
-2,
0,
0
]
},
"brepSha256": "f09f9f5ab8be73c2eb76c3410c969e93044fb6beb01feec52d2d239da62d3c2e",
"edges": 28,
"faces": 12,
"shapeType": "Compound",
"solids": 1,
"valid": true,
"vertices": 18,
"volume": 416.00000000000006
}
},
"restoredExactly": true,
"restoredGeometrically": true,
"schemaVersion": 1,
"shapeChanged": true,
"status": "pass"
},
"originals": [
"Boss"
],
@@ -39,6 +219,96 @@
"edges": 12,
"faces": 6,
"id": "polar-feature-list",
"mutation": {
"before": {
"parameterSnapshot": 4,
"shape": {
"area": 1599.9999999999998,
"bounds": {
"max": [
10,
10,
10.000000000000002
],
"min": [
0,
-10.000000000000002,
-10.000000000000002
]
},
"brepSha256": "4dd67348ece295122be98bed65a93e8362e46d5d9dd5b6a88589a388537b73d7",
"edges": 12,
"faces": 6,
"shapeType": "Compound",
"solids": 1,
"valid": true,
"vertices": 8,
"volume": 3999.999999999999
}
},
"brepStable": true,
"edited": {
"parameterSnapshot": 3,
"shape": {
"area": 1799.9999999999998,
"bounds": {
"max": [
10,
10,
10
],
"min": [
0,
-13.660254037844387,
-13.660254037844389
]
},
"brepSha256": "5127ab274986196eb89f32f2c697f83dbac753c05519b484449305370496c8c5",
"edges": 34,
"faces": 18,
"shapeType": "Compound",
"solids": 3,
"valid": true,
"vertices": 20,
"volume": 2999.9999999999995
}
},
"familyId": "PartDesign::PolarPattern",
"featureName": "PolarPattern",
"parameterChanged": true,
"propertyPath": "Occurrences",
"restored": {
"parameterSnapshot": 4,
"shape": {
"area": 1599.9999999999998,
"bounds": {
"max": [
10,
10,
10.000000000000002
],
"min": [
0,
-10.000000000000002,
-10.000000000000002
]
},
"brepSha256": "4dd67348ece295122be98bed65a93e8362e46d5d9dd5b6a88589a388537b73d7",
"edges": 12,
"faces": 6,
"shapeType": "Compound",
"solids": 1,
"valid": true,
"vertices": 8,
"volume": 3999.999999999999
}
},
"restoredExactly": true,
"restoredGeometrically": true,
"schemaVersion": 1,
"shapeChanged": true,
"status": "pass"
},
"occurrences": 4,
"originals": [
"Box"
@@ -54,6 +324,105 @@
"edges": 36,
"faces": 14,
"id": "multi-transform-feature-list",
"mutation": {
"before": {
"parameterSnapshot": {
"unit": "Unit: mm (1,0,0,0,0,0,0,0) [Length]",
"value": 20
},
"shape": {
"area": 6400,
"bounds": {
"max": [
30,
30,
10
],
"min": [
-30,
-30.000000000000004,
0
]
},
"brepSha256": "3e82460ae12922bd68d58ca6c48ad7ba2f034c4157e8f2da8a2bd9683ed83697",
"edges": 36,
"faces": 14,
"shapeType": "Compound",
"solids": 1,
"valid": true,
"vertices": 24,
"volume": 19999.999999999996
}
},
"brepStable": false,
"edited": {
"parameterSnapshot": {
"unit": "Unit: mm (1,0,0,0,0,0,0,0) [Length]",
"value": 15
},
"shape": {
"area": 5200,
"bounds": {
"max": [
25,
25,
10
],
"min": [
-25,
-25.000000000000004,
0
]
},
"brepSha256": "c1e5e2ac391062149b8da2328ecb93a5bc71f166e1edea8157a30a51d53375dd",
"edges": 36,
"faces": 14,
"shapeType": "Compound",
"solids": 1,
"valid": true,
"vertices": 24,
"volume": 15999.999999999998
}
},
"familyId": "PartDesign::MultiTransform",
"featureName": "MultiTransform",
"parameterChanged": true,
"propertyPath": "Transformations[1].Length",
"restored": {
"parameterSnapshot": {
"unit": "Unit: mm (1,0,0,0,0,0,0,0) [Length]",
"value": 20
},
"shape": {
"area": 6400,
"bounds": {
"max": [
30,
30,
10
],
"min": [
-30,
-30.000000000000004,
0
]
},
"brepSha256": "2a2bfeadec439a2a70d2a49da618de7c63d202f7b70a0adb8ad5d0a161bc7fae",
"edges": 36,
"faces": 14,
"shapeType": "Compound",
"solids": 1,
"valid": true,
"vertices": 24,
"volume": 19999.999999999996
}
},
"restoredExactly": true,
"restoredGeometrically": true,
"schemaVersion": 1,
"shapeChanged": true,
"status": "pass"
},
"originals": [
"Pad"
],
@@ -75,6 +444,105 @@
"faces": 8,
"id": "iso-m6-tap-drill",
"modeled": false,
"mutation": {
"before": {
"parameterSnapshot": {
"unit": "Unit: mm (1,0,0,0,0,0,0,0) [Length]",
"value": 5
},
"shape": {
"area": 1725.6637061435915,
"bounds": {
"max": [
20,
20,
10
],
"min": [
0,
0,
0
]
},
"brepSha256": "6157506ee1ceae966d58b98f729adbd4dffb585f1e9e52547e30d442af73efd3",
"edges": 15,
"faces": 8,
"shapeType": "Compound",
"solids": 1,
"valid": true,
"vertices": 10,
"volume": 3842.92036732051
}
},
"brepStable": true,
"edited": {
"parameterSnapshot": {
"unit": "Unit: mm (1,0,0,0,0,0,0,0) [Length]",
"value": 6.5
},
"shape": {
"area": 1763.362817986669,
"bounds": {
"max": [
20,
20,
10
],
"min": [
0,
0,
0
]
},
"brepSha256": "a8ad05315c3d555a9ad9b764e243b4001b56401e9fab846aeb145ceb0fea42f6",
"edges": 15,
"faces": 8,
"shapeType": "Compound",
"solids": 1,
"valid": true,
"vertices": 10,
"volume": 3734.5354207716614
}
},
"familyId": "PartDesign::Hole",
"featureName": "Hole",
"parameterChanged": true,
"propertyPath": "Diameter",
"restored": {
"parameterSnapshot": {
"unit": "Unit: mm (1,0,0,0,0,0,0,0) [Length]",
"value": 5
},
"shape": {
"area": 1725.6637061435915,
"bounds": {
"max": [
20,
20,
10
],
"min": [
0,
0,
0
]
},
"brepSha256": "6157506ee1ceae966d58b98f729adbd4dffb585f1e9e52547e30d442af73efd3",
"edges": 15,
"faces": 8,
"shapeType": "Compound",
"solids": 1,
"valid": true,
"vertices": 10,
"volume": 3842.92036732051
}
},
"restoredExactly": true,
"restoredGeometrically": true,
"schemaVersion": 1,
"shapeChanged": true,
"status": "pass"
},
"passed": true,
"properties": [
"AddSubShape",
@@ -148,6 +616,105 @@
"faces": 36,
"id": "iso-m6-modeled-thread",
"modeled": true,
"mutation": {
"before": {
"parameterSnapshot": {
"unit": "Unit: mm (1,0,0,0,0,0,0,0) [Length]",
"value": 5.026
},
"shape": {
"area": 1791.0956620316247,
"bounds": {
"max": [
20,
20,
10.5625
],
"min": [
0,
0,
0
]
},
"brepSha256": "6affadc3a81dcbbe31ed1dc1e3539abd7b2fd3b280773d2f4445076ff5732fce",
"edges": 75,
"faces": 36,
"shapeType": "Compound",
"solids": 1,
"valid": true,
"vertices": 42,
"volume": 3820.1907618181585
}
},
"brepStable": true,
"edited": {
"parameterSnapshot": {
"unit": "Unit: mm (1,0,0,0,0,0,0,0) [Length]",
"value": 6.5
},
"shape": {
"area": 1763.362817986669,
"bounds": {
"max": [
20,
20,
10
],
"min": [
0,
0,
0
]
},
"brepSha256": "a8ad05315c3d555a9ad9b764e243b4001b56401e9fab846aeb145ceb0fea42f6",
"edges": 15,
"faces": 8,
"shapeType": "Compound",
"solids": 1,
"valid": true,
"vertices": 10,
"volume": 3734.5354207716614
}
},
"familyId": "PartDesign::Hole",
"featureName": "Hole",
"parameterChanged": true,
"propertyPath": "Diameter",
"restored": {
"parameterSnapshot": {
"unit": "Unit: mm (1,0,0,0,0,0,0,0) [Length]",
"value": 5.026
},
"shape": {
"area": 1791.0956620316247,
"bounds": {
"max": [
20,
20,
10.5625
],
"min": [
0,
0,
0
]
},
"brepSha256": "6affadc3a81dcbbe31ed1dc1e3539abd7b2fd3b280773d2f4445076ff5732fce",
"edges": 75,
"faces": 36,
"shapeType": "Compound",
"solids": 1,
"valid": true,
"vertices": 42,
"volume": 3820.1907618181585
}
},
"restoredExactly": true,
"restoredGeometrically": true,
"schemaVersion": 1,
"shapeChanged": true,
"status": "pass"
},
"passed": true,
"properties": [
"AddSubShape",

View File

@@ -31,7 +31,7 @@
"tasks": [
{ "id": "EX-KER-01", "title": "Match OCCT construction, validation, tolerances and failure diagnostics", "priority": "P0", "status": "in_progress", "dependencies": ["EX-ORA-02"], "deliverables": ["Per-operation native differential", "Tolerance and placement contract", "Failure-code map"], "acceptance": ["Shape validity, topology, mass properties and diagnostics match locked FreeCAD fixtures", "Worker ownership returns to zero after every case"], "evidence": ["check:browser-occt", "check:chrome-geometry-features"], "exactBlockedBy": ["Not all FreeCAD builder flags and failure branches are represented"] },
{ "id": "EX-TSN-00", "title": "Fail closed when native naming or builder evidence is absent", "priority": "P0", "status": "completed", "dependencies": [], "deliverables": ["Runtime naming evidence contract", "final-shape-only and ambiguous persistence", "ElementMap2 writer evidence guard"], "acceptance": ["Final geometry cannot mint a private FreeCAD token", "Unproven stage relations and isomorphic sources cannot become stable"], "evidence": ["check:freecad-native-naming-evidence", "check:freecad-exact-history-elementmap-gate"], "exactBlockedBy": [] },
{ "id": "EX-TSN-01", "title": "Capture native stage Shape and Generated/Modified/Deleted for every builder", "priority": "P0", "status": "in_progress", "dependencies": ["EX-KER-01", "EX-TSN-00"], "deliverables": ["All builder-stage captures", "Multi-input and one-to-many lineage", "Local feature recompute history"], "acceptance": ["Every feature result relation has a producing native stage", "No final-result index is applied to an intermediate Shape"], "evidence": ["check:freecad-composite-history-elementmap", "check:chrome-native-history"], "exactBlockedBy": ["Some providers still return only a final Shape"] },
{ "id": "EX-TSN-01", "title": "Capture native stage Shape and Generated/Modified/Deleted for every builder", "priority": "P0", "status": "completed", "dependencies": ["EX-KER-01", "EX-TSN-00"], "deliverables": ["All builder-stage captures", "Multi-input and one-to-many lineage", "Local feature recompute history"], "acceptance": ["Every feature result relation has a producing native stage", "No final-result index is applied to an intermediate Shape"], "evidence": ["check:freecad-composite-history-elementmap", "check:freecad-tsn-stage-evidence"], "exactBlockedBy": [] },
{ "id": "EX-TSN-02", "title": "Expose native MappedNameRef and StringHasher decisions for every feature", "priority": "P0", "status": "pending", "dependencies": ["EX-TSN-01"], "deliverables": ["Native naming callback ABI", "Per-stage StringHasher evidence", "Lossless ElementMap2 token generation"], "acceptance": ["All new tokens originate in native evidence", "FreeCAD round-trip names remain byte and semantic stable"], "evidence": ["check:freecad-native-naming-evidence"], "exactBlockedBy": ["FreeCAD private naming callbacks are not exposed for every builder"] },
{ "id": "EX-TSN-03", "title": "Resolve isomorphic topology only from unique native provenance", "priority": "P0", "status": "in_progress", "dependencies": ["EX-TSN-01", "EX-TSN-02"], "deliverables": ["Symmetric Boolean corpus", "Candidate provenance graph", "Ambiguity repair lifecycle"], "acceptance": ["Unique native sources resolve deterministically", "Non-unique sources remain ambiguous across save, undo and recompute"], "evidence": ["test:topology-replay", "check:freecad-exact-history-elementmap-gate"], "exactBlockedBy": ["Symmetric cases without unique native provenance remain intentionally ambiguous"] },
{ "id": "EX-TSN-04", "title": "Close topology naming across all feature edits and FCStd round-trips", "priority": "P0", "status": "pending", "dependencies": ["EX-TSN-02", "EX-TSN-03"], "deliverables": ["Cross-feature mutation matrix", "ElementMap2 history migration", "Long-chain LinkSub stability report"], "acceptance": ["Wrong bindings, unexplained relations and name drift are zero for the exhaustive corpus"], "evidence": ["check:freecad-fcstd-roundtrip", "check:freecad-exact-history-elementmap-gate"], "exactBlockedBy": ["Exhaustive cross-feature naming corpus is incomplete"] }