Files
FreeCADWasmDev/docs/p6/part-python-method-runtime.json
wangdequan 9a7c4f0335 Save FreeCAD Web workspace sources and user validation evidence
IFC native binding remains incomplete; preserve accurate test results.
2026-09-15 22:01:58 +08:00

1723 lines
52 KiB
JSON

{
"schema": "freecad-web-p6-part-python-method-runtime/v1",
"taskId": "FW-P6-FPA-Y",
"module": "Part",
"tier": "tier-2-pure",
"apiId": "py:Part:function:addTube",
"status": "pass",
"methods": [
{
"apiId": "py:Part:function:addTube",
"sourceEntry": "src/Mod/Part/BasicShapes/Shapes.py",
"request": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "request",
"requestId": "part-add-success",
"command": "part.pythonMethod",
"documentId": "part-method-document",
"payload": {
"schema": "freecad-web-part/python-method/v1",
"module": "Part",
"tier": "tier-2-pure",
"apiId": "py:Part:function:addTube",
"name": "addTube",
"family": "pure-function",
"args": {
"name": "TubeNative"
}
}
},
"requestSha256": "cdd09d090c87bf4e9112c5e2035b640e324e835e7bceb14f8446390abab7a2fe",
"resultSha256": "f907c53332e2b1947650e66f0b497bdf33544ac2e796a1d1eac6a0233733a361",
"trace": {
"success": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "result",
"requestId": "part-add-success",
"result": {
"apiId": "py:Part:function:addTube",
"family": "pure-function",
"module": "Part",
"name": "addTube",
"native": true,
"ok": true,
"parameterSchema": {
"name": "string"
},
"resourcesReleased": true,
"result": {
"documentObjects": 1,
"height": 10,
"innerRadius": 2,
"name": "TubeNative",
"objectType": "Part::FeaturePython",
"outerRadius": 5,
"resourcesReleased": true,
"solid": true,
"volume": 659.7344572538565
},
"returnSchema": {
"fields": {
"documentObjects": "integer",
"height": "number",
"innerRadius": "number",
"name": "string",
"objectType": "string",
"outerRadius": "number",
"resourcesReleased": "boolean",
"solid": "boolean",
"volume": "number"
},
"type": "Part::FeaturePython"
},
"schema": "freecad-web-part/python-method/v1",
"source": "freecad-source",
"sourceEntry": "src/Mod/Part/BasicShapes/Shapes.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "exposed",
"tier": "tier-2-pure"
}
},
"repeat": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "result",
"requestId": "part-add-repeat",
"result": {
"apiId": "py:Part:function:addTube",
"family": "pure-function",
"module": "Part",
"name": "addTube",
"native": true,
"ok": true,
"parameterSchema": {
"name": "string"
},
"resourcesReleased": true,
"result": {
"documentObjects": 1,
"height": 10,
"innerRadius": 2,
"name": "TubeNative",
"objectType": "Part::FeaturePython",
"outerRadius": 5,
"resourcesReleased": true,
"solid": true,
"volume": 659.7344572538565
},
"returnSchema": {
"fields": {
"documentObjects": "integer",
"height": "number",
"innerRadius": "number",
"name": "string",
"objectType": "string",
"outerRadius": "number",
"resourcesReleased": "boolean",
"solid": "boolean",
"volume": "number"
},
"type": "Part::FeaturePython"
},
"schema": "freecad-web-part/python-method/v1",
"source": "freecad-source",
"sourceEntry": "src/Mod/Part/BasicShapes/Shapes.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "exposed",
"tier": "tier-2-pure"
}
},
"invalid": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "error",
"requestId": "part-add-invalid",
"error": {
"code": "invalid_arguments",
"message": "Part.addTube name must be a non-empty ASCII identifier up to 64 characters",
"diagnostic": {
"args": {
"name": "bad-name"
}
}
}
},
"cancelled": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "error",
"requestId": "part-add-cancel",
"error": {
"code": "cancelled",
"message": "request was cancelled"
}
},
"direct": {
"apiId": "py:Part:function:addTube",
"family": "pure-function",
"module": "Part",
"name": "addTube",
"native": true,
"ok": true,
"parameterSchema": {
"name": "string"
},
"resourcesReleased": true,
"result": {
"documentObjects": 1,
"height": 10,
"innerRadius": 2,
"name": "TubeNative",
"objectType": "Part::FeaturePython",
"outerRadius": 5,
"resourcesReleased": true,
"solid": true,
"volume": 659.7344572538565
},
"returnSchema": {
"fields": {
"documentObjects": "integer",
"height": "number",
"innerRadius": "number",
"name": "string",
"objectType": "string",
"outerRadius": "number",
"resourcesReleased": "boolean",
"solid": "boolean",
"volume": "number"
},
"type": "Part::FeaturePython"
},
"schema": "freecad-web-part/python-method/v1",
"source": "freecad-source",
"sourceEntry": "src/Mod/Part/BasicShapes/Shapes.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "exposed",
"tier": "tier-2-pure"
}
},
"replay": {
"equal": true
},
"resources": {
"resourcesReleased": true,
"documentMutation": true
}
},
{
"apiId": "py:Part:function:dimensionOfShapes",
"sourceEntry": "src/Mod/Part/BOPTools/ShapeMerge.py",
"request": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "request",
"requestId": "part-dimension-success",
"command": "part.pythonMethod",
"documentId": "part-method-document",
"payload": {
"schema": "freecad-web-part/python-method/v1",
"module": "Part",
"tier": "tier-2-pure",
"apiId": "py:Part:function:dimensionOfShapes",
"name": "dimensionOfShapes",
"family": "geometry-value",
"args": {
"shapeTypes": [
"Solid",
"Solid"
]
}
}
},
"requestSha256": "844d725d0644986d14eda6eec8bb8986814803c7a5aef4d97f5ae9d2be16171f",
"resultSha256": "aa3f34e1510ee05b4bc7580e3e77c32c02b4fca91aba452e972133dad275b8b7",
"trace": {
"success": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "result",
"requestId": "part-dimension-success",
"result": {
"apiId": "py:Part:function:dimensionOfShapes",
"family": "geometry-value",
"module": "Part",
"name": "dimensionOfShapes",
"native": true,
"ok": true,
"parameterSchema": {
"shapeTypes": "string[]"
},
"resourcesReleased": true,
"result": {
"dimension": 3,
"shapeCount": 2,
"shapeTypes": [
"Solid",
"Solid"
]
},
"returnSchema": {
"fields": {
"dimension": "integer",
"shapeCount": "integer",
"shapeTypes": "string[]"
},
"type": "int"
},
"schema": "freecad-web-part/python-method/v1",
"source": "freecad-source",
"sourceEntry": "src/Mod/Part/BOPTools/ShapeMerge.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "exposed",
"tier": "tier-2-pure"
}
},
"repeat": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "result",
"requestId": "part-dimension-repeat",
"result": {
"apiId": "py:Part:function:dimensionOfShapes",
"family": "geometry-value",
"module": "Part",
"name": "dimensionOfShapes",
"native": true,
"ok": true,
"parameterSchema": {
"shapeTypes": "string[]"
},
"resourcesReleased": true,
"result": {
"dimension": 3,
"shapeCount": 2,
"shapeTypes": [
"Solid",
"Solid"
]
},
"returnSchema": {
"fields": {
"dimension": "integer",
"shapeCount": "integer",
"shapeTypes": "string[]"
},
"type": "int"
},
"schema": "freecad-web-part/python-method/v1",
"source": "freecad-source",
"sourceEntry": "src/Mod/Part/BOPTools/ShapeMerge.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "exposed",
"tier": "tier-2-pure"
}
},
"invalid": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "error",
"requestId": "part-dimension-invalid",
"error": {
"code": "invalid_arguments",
"message": "Part.dimensionOfShapes shapeTypes must be Solid, Face, Edge or Vertex",
"diagnostic": {
"args": {
"shapeTypes": [
"Solid",
"Unknown"
]
}
}
}
},
"mixed": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "error",
"requestId": "part-dimension-mixed",
"error": {
"code": "source_error",
"message": "TypeError: Shapes are of different dimensions (Solid and Edge), and cannot be merged or compared."
}
},
"cancelled": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "error",
"requestId": "part-dimension-cancel",
"error": {
"code": "cancelled",
"message": "request was cancelled"
}
},
"direct": {
"apiId": "py:Part:function:dimensionOfShapes",
"family": "geometry-value",
"module": "Part",
"name": "dimensionOfShapes",
"native": true,
"ok": true,
"parameterSchema": {
"shapeTypes": "string[]"
},
"resourcesReleased": true,
"result": {
"dimension": 3,
"shapeCount": 2,
"shapeTypes": [
"Solid",
"Solid"
]
},
"returnSchema": {
"fields": {
"dimension": "integer",
"shapeCount": "integer",
"shapeTypes": "string[]"
},
"type": "int"
},
"schema": "freecad-web-part/python-method/v1",
"source": "freecad-source",
"sourceEntry": "src/Mod/Part/BOPTools/ShapeMerge.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "exposed",
"tier": "tier-2-pure"
}
},
"replay": {
"equal": true
},
"resources": {
"resourcesReleased": true,
"documentMutation": false
}
},
{
"apiId": "py:Part:function:makeTube",
"sourceEntry": "src/Mod/Part/BasicShapes/Shapes.py",
"request": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "request",
"requestId": "part-method-success",
"command": "part.pythonMethod",
"documentId": "part-method-document",
"payload": {
"schema": "freecad-web-part/python-method/v1",
"module": "Part",
"tier": "tier-2-pure",
"apiId": "py:Part:function:makeTube",
"name": "makeTube",
"family": "pure-function",
"args": {
"outerRadius": 5,
"innerRadius": 2,
"height": 10
}
}
},
"requestSha256": "045000475b765bfc136999eee83760305b049e549b58bad82667ef7ede36c94a",
"resultSha256": "ba0949bf0240817f1a295dcd1cc0a9757710b8dd28801bb50db14c6cbb43de18",
"trace": {
"success": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "result",
"requestId": "part-method-success",
"result": {
"apiId": "py:Part:function:makeTube",
"family": "pure-function",
"module": "Part",
"name": "makeTube",
"native": true,
"ok": true,
"parameterSchema": {
"height": "number",
"innerRadius": "number",
"outerRadius": "number"
},
"resourcesReleased": true,
"result": {
"height": 10,
"innerRadius": 2,
"outerRadius": 5,
"solid": true,
"volume": 659.7344572538565
},
"returnSchema": {
"fields": {
"solid": "boolean",
"volume": "number"
},
"type": "Part.Shape"
},
"schema": "freecad-web-part/python-method/v1",
"source": "freecad-source",
"sourceEntry": "src/Mod/Part/BasicShapes/Shapes.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "exposed",
"tier": "tier-2-pure"
}
},
"repeat": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "result",
"requestId": "part-method-repeat",
"result": {
"apiId": "py:Part:function:makeTube",
"family": "pure-function",
"module": "Part",
"name": "makeTube",
"native": true,
"ok": true,
"parameterSchema": {
"height": "number",
"innerRadius": "number",
"outerRadius": "number"
},
"resourcesReleased": true,
"result": {
"height": 10,
"innerRadius": 2,
"outerRadius": 5,
"solid": true,
"volume": 659.7344572538565
},
"returnSchema": {
"fields": {
"solid": "boolean",
"volume": "number"
},
"type": "Part.Shape"
},
"schema": "freecad-web-part/python-method/v1",
"source": "freecad-source",
"sourceEntry": "src/Mod/Part/BasicShapes/Shapes.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "exposed",
"tier": "tier-2-pure"
}
},
"invalid": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "error",
"requestId": "part-method-invalid",
"error": {
"code": "invalid_arguments",
"message": "Part.makeTube requires outerRadius > innerRadius >= 0 and height > 0",
"diagnostic": {
"args": {
"outerRadius": 2,
"innerRadius": 2,
"height": 10
}
}
}
},
"cancelled": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "error",
"requestId": "part-method-cancel",
"error": {
"code": "cancelled",
"message": "request was cancelled"
}
},
"crossModule": {
"ok": false,
"code": "unmatched_source_record",
"error": "Part native method is not registered for this module/tier"
},
"unsupported": {
"ok": false,
"code": "unsupported_command",
"error": "Part native dispatch command is not registered"
}
},
"replay": {
"equal": true
},
"resources": {
"resourcesReleased": true,
"documentMutation": false
}
},
{
"apiId": "py:Part:function:roundVector",
"sourceEntry": "src/Mod/Part/BasicShapes/ShapeContent.py",
"request": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "request",
"requestId": "part-round-success",
"command": "part.pythonMethod",
"documentId": "part-method-document",
"payload": {
"schema": "freecad-web-part/python-method/v1",
"module": "Part",
"tier": "tier-2-pure",
"apiId": "py:Part:function:roundVector",
"name": "roundVector",
"family": "geometry-value",
"args": {
"vector": [
1.2345,
-2.3456,
3.4567
],
"decimals": 2
}
}
},
"requestSha256": "65155849271626bf892b55e707f3e40beaf2bd0bd48643573e2c336d6b1429b0",
"resultSha256": "2b848fe5177a04d9d75bbc087f78252519e5461258c397ccf66f0260c7ecbaa1",
"trace": {
"success": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "result",
"requestId": "part-round-success",
"result": {
"apiId": "py:Part:function:roundVector",
"family": "geometry-value",
"module": "Part",
"name": "roundVector",
"native": true,
"ok": true,
"parameterSchema": {
"decimals": "integer",
"vector": "number[3]"
},
"resourcesReleased": true,
"result": {
"decimals": 2,
"value": "[1.23, -2.35, 3.46]",
"vector": [
1.23,
-2.35,
3.46
]
},
"returnSchema": {
"fields": {
"value": "string",
"vector": "number[3]"
},
"type": "str"
},
"schema": "freecad-web-part/python-method/v1",
"source": "freecad-source",
"sourceEntry": "src/Mod/Part/BasicShapes/ShapeContent.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "exposed",
"tier": "tier-2-pure"
}
},
"repeat": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "result",
"requestId": "part-round-repeat",
"result": {
"apiId": "py:Part:function:roundVector",
"family": "geometry-value",
"module": "Part",
"name": "roundVector",
"native": true,
"ok": true,
"parameterSchema": {
"decimals": "integer",
"vector": "number[3]"
},
"resourcesReleased": true,
"result": {
"decimals": 2,
"value": "[1.23, -2.35, 3.46]",
"vector": [
1.23,
-2.35,
3.46
]
},
"returnSchema": {
"fields": {
"value": "string",
"vector": "number[3]"
},
"type": "str"
},
"schema": "freecad-web-part/python-method/v1",
"source": "freecad-source",
"sourceEntry": "src/Mod/Part/BasicShapes/ShapeContent.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "exposed",
"tier": "tier-2-pure"
}
},
"invalid": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "error",
"requestId": "part-round-invalid",
"error": {
"code": "invalid_arguments",
"message": "Part.roundVector decimals must be an integer between -12 and 12",
"diagnostic": {
"args": {
"vector": [
1,
2,
3
],
"decimals": 13
}
}
}
},
"cancelled": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "error",
"requestId": "part-round-cancel",
"error": {
"code": "cancelled",
"message": "request was cancelled"
}
},
"direct": {
"apiId": "py:Part:function:roundVector",
"family": "geometry-value",
"module": "Part",
"name": "roundVector",
"native": true,
"ok": true,
"parameterSchema": {
"decimals": "integer",
"vector": "number[3]"
},
"resourcesReleased": true,
"result": {
"decimals": 2,
"value": "[1.23, -2.35, 3.46]",
"vector": [
1.23,
-2.35,
3.46
]
},
"returnSchema": {
"fields": {
"value": "string",
"vector": "number[3]"
},
"type": "str"
},
"schema": "freecad-web-part/python-method/v1",
"source": "freecad-source",
"sourceEntry": "src/Mod/Part/BasicShapes/ShapeContent.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "exposed",
"tier": "tier-2-pure"
}
},
"replay": {
"equal": true
},
"resources": {
"resourcesReleased": true,
"documentMutation": false
}
},
{
"apiId": "py:Part:function:PlacementsFuzzyCompare",
"sourceEntry": "src/Mod/Part/AttachmentEditor/TaskAttachmentEditor.py",
"request": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "request",
"requestId": "part-placement-success",
"command": "part.pythonMethod",
"documentId": "part-method-document",
"payload": {
"schema": "freecad-web-part/python-method/v1",
"module": "Part",
"tier": "tier-2-pure",
"apiId": "py:Part:function:PlacementsFuzzyCompare",
"name": "PlacementsFuzzyCompare",
"family": "pure-function",
"args": {
"base1": [
0,
0,
0
],
"base2": [
0,
0,
0
],
"rotation1": [
0,
0,
0,
1
],
"rotation2": [
0,
0,
0,
1
]
}
}
},
"requestSha256": "8a8f35880d45f5f6f708c6844e75589dfd229d935f299dd2022a50fcfd5e1df1",
"resultSha256": "5ae64122899b95cd8c34be19acd9a648d8f39f57536f7c7a88a8942df6644bef",
"trace": {
"success": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "result",
"requestId": "part-placement-success",
"result": {
"apiId": "py:Part:function:PlacementsFuzzyCompare",
"family": "pure-function",
"module": "Part",
"name": "PlacementsFuzzyCompare",
"native": true,
"ok": true,
"parameterSchema": {
"base1": "number[3]",
"base2": "number[3]",
"rotation1": "number[4]",
"rotation2": "number[4]"
},
"resourcesReleased": true,
"result": {
"equal": true,
"positionEqual": true,
"positionTolerance": 1e-7,
"rotationEqual": true,
"rotationTolerance": 1e-12
},
"returnSchema": {
"fields": {
"equal": "boolean",
"positionEqual": "boolean",
"rotationEqual": "boolean"
},
"type": "bool"
},
"schema": "freecad-web-part/python-method/v1",
"source": "freecad-source",
"sourceEntry": "src/Mod/Part/AttachmentEditor/TaskAttachmentEditor.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "exposed",
"tier": "tier-2-pure"
}
},
"repeat": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "result",
"requestId": "part-placement-repeat",
"result": {
"apiId": "py:Part:function:PlacementsFuzzyCompare",
"family": "pure-function",
"module": "Part",
"name": "PlacementsFuzzyCompare",
"native": true,
"ok": true,
"parameterSchema": {
"base1": "number[3]",
"base2": "number[3]",
"rotation1": "number[4]",
"rotation2": "number[4]"
},
"resourcesReleased": true,
"result": {
"equal": true,
"positionEqual": true,
"positionTolerance": 1e-7,
"rotationEqual": true,
"rotationTolerance": 1e-12
},
"returnSchema": {
"fields": {
"equal": "boolean",
"positionEqual": "boolean",
"rotationEqual": "boolean"
},
"type": "bool"
},
"schema": "freecad-web-part/python-method/v1",
"source": "freecad-source",
"sourceEntry": "src/Mod/Part/AttachmentEditor/TaskAttachmentEditor.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "exposed",
"tier": "tier-2-pure"
}
},
"invalid": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "error",
"requestId": "invalid",
"error": {
"code": "invalid_request",
"message": "Part Python method envelope invalid"
}
},
"cancelled": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "error",
"requestId": "part-placement-cancel",
"error": {
"code": "cancelled",
"message": "request was cancelled"
}
},
"direct": {
"apiId": "py:Part:function:PlacementsFuzzyCompare",
"family": "pure-function",
"module": "Part",
"name": "PlacementsFuzzyCompare",
"native": true,
"ok": true,
"parameterSchema": {
"base1": "number[3]",
"base2": "number[3]",
"rotation1": "number[4]",
"rotation2": "number[4]"
},
"resourcesReleased": true,
"result": {
"equal": true,
"positionEqual": true,
"positionTolerance": 1e-7,
"rotationEqual": true,
"rotationTolerance": 1e-12
},
"returnSchema": {
"fields": {
"equal": "boolean",
"positionEqual": "boolean",
"rotationEqual": "boolean"
},
"type": "bool"
},
"schema": "freecad-web-part/python-method/v1",
"source": "freecad-source",
"sourceEntry": "src/Mod/Part/AttachmentEditor/TaskAttachmentEditor.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "exposed",
"tier": "tier-2-pure"
}
},
"replay": {
"equal": true
},
"resources": {
"resourcesReleased": true,
"documentMutation": false
}
}
],
"route": {
"command": "part.pythonMethod",
"worker": "web/src/part.worker.ts",
"facade": "web/src/part-python-method-facade.ts",
"native": "freecad-source/src/WebAssembly/FreeCADCoreProbe/PartBoxProbe.cpp:fc_web_dispatch_json"
},
"request": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "request",
"requestId": "part-dimension-success",
"command": "part.pythonMethod",
"documentId": "part-method-document",
"payload": {
"schema": "freecad-web-part/python-method/v1",
"module": "Part",
"tier": "tier-2-pure",
"apiId": "py:Part:function:dimensionOfShapes",
"name": "dimensionOfShapes",
"family": "geometry-value",
"args": {
"shapeTypes": [
"Solid",
"Solid"
]
}
}
},
"requestSha256": "844d725d0644986d14eda6eec8bb8986814803c7a5aef4d97f5ae9d2be16171f",
"trace": {
"ready": {
"kind": "ready",
"action": "part.pythonMethod"
},
"dimensionSuccess": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "result",
"requestId": "part-dimension-success",
"result": {
"apiId": "py:Part:function:dimensionOfShapes",
"family": "geometry-value",
"module": "Part",
"name": "dimensionOfShapes",
"native": true,
"ok": true,
"parameterSchema": {
"shapeTypes": "string[]"
},
"resourcesReleased": true,
"result": {
"dimension": 3,
"shapeCount": 2,
"shapeTypes": [
"Solid",
"Solid"
]
},
"returnSchema": {
"fields": {
"dimension": "integer",
"shapeCount": "integer",
"shapeTypes": "string[]"
},
"type": "int"
},
"schema": "freecad-web-part/python-method/v1",
"source": "freecad-source",
"sourceEntry": "src/Mod/Part/BOPTools/ShapeMerge.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "exposed",
"tier": "tier-2-pure"
}
},
"dimensionRepeat": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "result",
"requestId": "part-dimension-repeat",
"result": {
"apiId": "py:Part:function:dimensionOfShapes",
"family": "geometry-value",
"module": "Part",
"name": "dimensionOfShapes",
"native": true,
"ok": true,
"parameterSchema": {
"shapeTypes": "string[]"
},
"resourcesReleased": true,
"result": {
"dimension": 3,
"shapeCount": 2,
"shapeTypes": [
"Solid",
"Solid"
]
},
"returnSchema": {
"fields": {
"dimension": "integer",
"shapeCount": "integer",
"shapeTypes": "string[]"
},
"type": "int"
},
"schema": "freecad-web-part/python-method/v1",
"source": "freecad-source",
"sourceEntry": "src/Mod/Part/BOPTools/ShapeMerge.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "exposed",
"tier": "tier-2-pure"
}
},
"dimensionInvalid": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "error",
"requestId": "part-dimension-invalid",
"error": {
"code": "invalid_arguments",
"message": "Part.dimensionOfShapes shapeTypes must be Solid, Face, Edge or Vertex",
"diagnostic": {
"args": {
"shapeTypes": [
"Solid",
"Unknown"
]
}
}
}
},
"dimensionMixed": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "error",
"requestId": "part-dimension-mixed",
"error": {
"code": "source_error",
"message": "TypeError: Shapes are of different dimensions (Solid and Edge), and cannot be merged or compared."
}
},
"dimensionCancelled": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "error",
"requestId": "part-dimension-cancel",
"error": {
"code": "cancelled",
"message": "request was cancelled"
}
},
"addSuccess": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "result",
"requestId": "part-add-success",
"result": {
"apiId": "py:Part:function:addTube",
"family": "pure-function",
"module": "Part",
"name": "addTube",
"native": true,
"ok": true,
"parameterSchema": {
"name": "string"
},
"resourcesReleased": true,
"result": {
"documentObjects": 1,
"height": 10,
"innerRadius": 2,
"name": "TubeNative",
"objectType": "Part::FeaturePython",
"outerRadius": 5,
"resourcesReleased": true,
"solid": true,
"volume": 659.7344572538565
},
"returnSchema": {
"fields": {
"documentObjects": "integer",
"height": "number",
"innerRadius": "number",
"name": "string",
"objectType": "string",
"outerRadius": "number",
"resourcesReleased": "boolean",
"solid": "boolean",
"volume": "number"
},
"type": "Part::FeaturePython"
},
"schema": "freecad-web-part/python-method/v1",
"source": "freecad-source",
"sourceEntry": "src/Mod/Part/BasicShapes/Shapes.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "exposed",
"tier": "tier-2-pure"
}
},
"addRepeat": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "result",
"requestId": "part-add-repeat",
"result": {
"apiId": "py:Part:function:addTube",
"family": "pure-function",
"module": "Part",
"name": "addTube",
"native": true,
"ok": true,
"parameterSchema": {
"name": "string"
},
"resourcesReleased": true,
"result": {
"documentObjects": 1,
"height": 10,
"innerRadius": 2,
"name": "TubeNative",
"objectType": "Part::FeaturePython",
"outerRadius": 5,
"resourcesReleased": true,
"solid": true,
"volume": 659.7344572538565
},
"returnSchema": {
"fields": {
"documentObjects": "integer",
"height": "number",
"innerRadius": "number",
"name": "string",
"objectType": "string",
"outerRadius": "number",
"resourcesReleased": "boolean",
"solid": "boolean",
"volume": "number"
},
"type": "Part::FeaturePython"
},
"schema": "freecad-web-part/python-method/v1",
"source": "freecad-source",
"sourceEntry": "src/Mod/Part/BasicShapes/Shapes.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "exposed",
"tier": "tier-2-pure"
}
},
"addInvalid": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "error",
"requestId": "part-add-invalid",
"error": {
"code": "invalid_arguments",
"message": "Part.addTube name must be a non-empty ASCII identifier up to 64 characters",
"diagnostic": {
"args": {
"name": "bad-name"
}
}
}
},
"addCancelled": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "error",
"requestId": "part-add-cancel",
"error": {
"code": "cancelled",
"message": "request was cancelled"
}
},
"success": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "result",
"requestId": "part-method-success",
"result": {
"apiId": "py:Part:function:makeTube",
"family": "pure-function",
"module": "Part",
"name": "makeTube",
"native": true,
"ok": true,
"parameterSchema": {
"height": "number",
"innerRadius": "number",
"outerRadius": "number"
},
"resourcesReleased": true,
"result": {
"height": 10,
"innerRadius": 2,
"outerRadius": 5,
"solid": true,
"volume": 659.7344572538565
},
"returnSchema": {
"fields": {
"solid": "boolean",
"volume": "number"
},
"type": "Part.Shape"
},
"schema": "freecad-web-part/python-method/v1",
"source": "freecad-source",
"sourceEntry": "src/Mod/Part/BasicShapes/Shapes.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "exposed",
"tier": "tier-2-pure"
}
},
"repeat": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "result",
"requestId": "part-method-repeat",
"result": {
"apiId": "py:Part:function:makeTube",
"family": "pure-function",
"module": "Part",
"name": "makeTube",
"native": true,
"ok": true,
"parameterSchema": {
"height": "number",
"innerRadius": "number",
"outerRadius": "number"
},
"resourcesReleased": true,
"result": {
"height": 10,
"innerRadius": 2,
"outerRadius": 5,
"solid": true,
"volume": 659.7344572538565
},
"returnSchema": {
"fields": {
"solid": "boolean",
"volume": "number"
},
"type": "Part.Shape"
},
"schema": "freecad-web-part/python-method/v1",
"source": "freecad-source",
"sourceEntry": "src/Mod/Part/BasicShapes/Shapes.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "exposed",
"tier": "tier-2-pure"
}
},
"invalid": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "error",
"requestId": "part-method-invalid",
"error": {
"code": "invalid_arguments",
"message": "Part.makeTube requires outerRadius > innerRadius >= 0 and height > 0",
"diagnostic": {
"args": {
"outerRadius": 2,
"innerRadius": 2,
"height": 10
}
}
}
},
"cancelled": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "error",
"requestId": "part-method-cancel",
"error": {
"code": "cancelled",
"message": "request was cancelled"
}
},
"roundSuccess": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "result",
"requestId": "part-round-success",
"result": {
"apiId": "py:Part:function:roundVector",
"family": "geometry-value",
"module": "Part",
"name": "roundVector",
"native": true,
"ok": true,
"parameterSchema": {
"decimals": "integer",
"vector": "number[3]"
},
"resourcesReleased": true,
"result": {
"decimals": 2,
"value": "[1.23, -2.35, 3.46]",
"vector": [
1.23,
-2.35,
3.46
]
},
"returnSchema": {
"fields": {
"value": "string",
"vector": "number[3]"
},
"type": "str"
},
"schema": "freecad-web-part/python-method/v1",
"source": "freecad-source",
"sourceEntry": "src/Mod/Part/BasicShapes/ShapeContent.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "exposed",
"tier": "tier-2-pure"
}
},
"roundRepeat": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "result",
"requestId": "part-round-repeat",
"result": {
"apiId": "py:Part:function:roundVector",
"family": "geometry-value",
"module": "Part",
"name": "roundVector",
"native": true,
"ok": true,
"parameterSchema": {
"decimals": "integer",
"vector": "number[3]"
},
"resourcesReleased": true,
"result": {
"decimals": 2,
"value": "[1.23, -2.35, 3.46]",
"vector": [
1.23,
-2.35,
3.46
]
},
"returnSchema": {
"fields": {
"value": "string",
"vector": "number[3]"
},
"type": "str"
},
"schema": "freecad-web-part/python-method/v1",
"source": "freecad-source",
"sourceEntry": "src/Mod/Part/BasicShapes/ShapeContent.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "exposed",
"tier": "tier-2-pure"
}
},
"roundInvalid": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "error",
"requestId": "part-round-invalid",
"error": {
"code": "invalid_arguments",
"message": "Part.roundVector decimals must be an integer between -12 and 12",
"diagnostic": {
"args": {
"vector": [
1,
2,
3
],
"decimals": 13
}
}
}
},
"roundCancelled": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "error",
"requestId": "part-round-cancel",
"error": {
"code": "cancelled",
"message": "request was cancelled"
}
},
"placementSuccess": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "result",
"requestId": "part-placement-success",
"result": {
"apiId": "py:Part:function:PlacementsFuzzyCompare",
"family": "pure-function",
"module": "Part",
"name": "PlacementsFuzzyCompare",
"native": true,
"ok": true,
"parameterSchema": {
"base1": "number[3]",
"base2": "number[3]",
"rotation1": "number[4]",
"rotation2": "number[4]"
},
"resourcesReleased": true,
"result": {
"equal": true,
"positionEqual": true,
"positionTolerance": 1e-7,
"rotationEqual": true,
"rotationTolerance": 1e-12
},
"returnSchema": {
"fields": {
"equal": "boolean",
"positionEqual": "boolean",
"rotationEqual": "boolean"
},
"type": "bool"
},
"schema": "freecad-web-part/python-method/v1",
"source": "freecad-source",
"sourceEntry": "src/Mod/Part/AttachmentEditor/TaskAttachmentEditor.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "exposed",
"tier": "tier-2-pure"
}
},
"placementRepeat": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "result",
"requestId": "part-placement-repeat",
"result": {
"apiId": "py:Part:function:PlacementsFuzzyCompare",
"family": "pure-function",
"module": "Part",
"name": "PlacementsFuzzyCompare",
"native": true,
"ok": true,
"parameterSchema": {
"base1": "number[3]",
"base2": "number[3]",
"rotation1": "number[4]",
"rotation2": "number[4]"
},
"resourcesReleased": true,
"result": {
"equal": true,
"positionEqual": true,
"positionTolerance": 1e-7,
"rotationEqual": true,
"rotationTolerance": 1e-12
},
"returnSchema": {
"fields": {
"equal": "boolean",
"positionEqual": "boolean",
"rotationEqual": "boolean"
},
"type": "bool"
},
"schema": "freecad-web-part/python-method/v1",
"source": "freecad-source",
"sourceEntry": "src/Mod/Part/AttachmentEditor/TaskAttachmentEditor.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "exposed",
"tier": "tier-2-pure"
}
},
"placementInvalid": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "error",
"requestId": "invalid",
"error": {
"code": "invalid_request",
"message": "Part Python method envelope invalid"
}
},
"placementCancelled": {
"schema": "freecad-web-facade/v1",
"version": 1,
"kind": "error",
"requestId": "part-placement-cancel",
"error": {
"code": "cancelled",
"message": "request was cancelled"
}
},
"dimensionDirect": {
"apiId": "py:Part:function:dimensionOfShapes",
"family": "geometry-value",
"module": "Part",
"name": "dimensionOfShapes",
"native": true,
"ok": true,
"parameterSchema": {
"shapeTypes": "string[]"
},
"resourcesReleased": true,
"result": {
"dimension": 3,
"shapeCount": 2,
"shapeTypes": [
"Solid",
"Solid"
]
},
"returnSchema": {
"fields": {
"dimension": "integer",
"shapeCount": "integer",
"shapeTypes": "string[]"
},
"type": "int"
},
"schema": "freecad-web-part/python-method/v1",
"source": "freecad-source",
"sourceEntry": "src/Mod/Part/BOPTools/ShapeMerge.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "exposed",
"tier": "tier-2-pure"
},
"addDirect": {
"apiId": "py:Part:function:addTube",
"family": "pure-function",
"module": "Part",
"name": "addTube",
"native": true,
"ok": true,
"parameterSchema": {
"name": "string"
},
"resourcesReleased": true,
"result": {
"documentObjects": 1,
"height": 10,
"innerRadius": 2,
"name": "TubeNative",
"objectType": "Part::FeaturePython",
"outerRadius": 5,
"resourcesReleased": true,
"solid": true,
"volume": 659.7344572538565
},
"returnSchema": {
"fields": {
"documentObjects": "integer",
"height": "number",
"innerRadius": "number",
"name": "string",
"objectType": "string",
"outerRadius": "number",
"resourcesReleased": "boolean",
"solid": "boolean",
"volume": "number"
},
"type": "Part::FeaturePython"
},
"schema": "freecad-web-part/python-method/v1",
"source": "freecad-source",
"sourceEntry": "src/Mod/Part/BasicShapes/Shapes.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "exposed",
"tier": "tier-2-pure"
},
"crossModule": {
"ok": false,
"code": "unmatched_source_record",
"error": "Part native method is not registered for this module/tier"
},
"roundDirect": {
"apiId": "py:Part:function:roundVector",
"family": "geometry-value",
"module": "Part",
"name": "roundVector",
"native": true,
"ok": true,
"parameterSchema": {
"decimals": "integer",
"vector": "number[3]"
},
"resourcesReleased": true,
"result": {
"decimals": 2,
"value": "[1.23, -2.35, 3.46]",
"vector": [
1.23,
-2.35,
3.46
]
},
"returnSchema": {
"fields": {
"value": "string",
"vector": "number[3]"
},
"type": "str"
},
"schema": "freecad-web-part/python-method/v1",
"source": "freecad-source",
"sourceEntry": "src/Mod/Part/BasicShapes/ShapeContent.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "exposed",
"tier": "tier-2-pure"
},
"placementDirect": {
"apiId": "py:Part:function:PlacementsFuzzyCompare",
"family": "pure-function",
"module": "Part",
"name": "PlacementsFuzzyCompare",
"native": true,
"ok": true,
"parameterSchema": {
"base1": "number[3]",
"base2": "number[3]",
"rotation1": "number[4]",
"rotation2": "number[4]"
},
"resourcesReleased": true,
"result": {
"equal": true,
"positionEqual": true,
"positionTolerance": 1e-7,
"rotationEqual": true,
"rotationTolerance": 1e-12
},
"returnSchema": {
"fields": {
"equal": "boolean",
"positionEqual": "boolean",
"rotationEqual": "boolean"
},
"type": "bool"
},
"schema": "freecad-web-part/python-method/v1",
"source": "freecad-source",
"sourceEntry": "src/Mod/Part/AttachmentEditor/TaskAttachmentEditor.py",
"sourceRevision": "2778e3f9c215da48bf0cfd562478d45d624aaa47",
"status": "exposed",
"tier": "tier-2-pure"
},
"unsupported": {
"ok": false,
"code": "unsupported_command",
"error": "Part native dispatch command is not registered"
}
},
"resultSha256": "aa3f34e1510ee05b4bc7580e3e77c32c02b4fca91aba452e972133dad275b8b7",
"replay": {
"equal": true
},
"resources": {
"resourcesReleased": true,
"documentMutation": false
},
"artifacts": {
"wasm": {
"path": "web/public/kernel/FreeCADWebPartBoxProbe.wasm",
"sha256": "67ad25ffd9962e986c506944fc53cb0da59b07f7f6cf1b8cf942f8fd1b49442c"
},
"loader": {
"path": "web/public/kernel/FreeCADWebPartBoxProbe.js",
"sha256": "8af2d3ef31e9dc0749b65cd32f34258e0d7e9547df5238174466d9a83ecb93e0"
},
"source": {
"path": "freecad-source/src/WebAssembly/FreeCADCoreProbe/PartBoxProbe.cpp",
"officialPython": [
"freecad-source/src/Mod/Part/BasicShapes/Shapes.py",
"freecad-source/src/Mod/Part/BOPTools/ShapeMerge.py",
"freecad-source/src/Mod/Part/AttachmentEditor/TaskAttachmentEditor.py"
]
}
},
"boundaries": [
"Only the manifest-backed Part.addTube, Part.dimensionOfShapes, Part.makeTube, Part.roundVector and Part.PlacementsFuzzyCompare signatures are exposed; other Part APIs remain disposition-gated.",
"Part.addTube executes the official BasicShapes.Shapes source inside native Python and closes its temporary document before returning.",
"Part.dimensionOfShapes executes the official BOPTools.ShapeMerge source against native Part Shape fixtures; mixed dimensions remain a source_error boundary.",
"The native result is produced by FreeCAD source execution; no JavaScript geometry, placement comparison, or rounding substitute is used."
]
}