feat: strengthen CAD experience distillation and routing
@@ -0,0 +1,149 @@
|
||||
{
|
||||
"schema_version": "1.0",
|
||||
"request": "把明确提供的 015240.step 转换成可修改的 model-spec.json,并保留原始几何作为精确基体",
|
||||
"route": {
|
||||
"selected_backend": "build123d",
|
||||
"runner_skill": "cad",
|
||||
"project": "text-to-cad",
|
||||
"fallback_order": [
|
||||
"simplecadapi",
|
||||
"cadam"
|
||||
],
|
||||
"workflow_profiles": [],
|
||||
"operation": "modify",
|
||||
"source_mode": "exact_step_base",
|
||||
"modification_mode": "model_spec_parameter_edit"
|
||||
},
|
||||
"source": {
|
||||
"path": "source.step",
|
||||
"format": "step",
|
||||
"backend": "build123d",
|
||||
"sha256": "55aee6a0ad74435503a1e7f108b32c9f403ae9838933e2be6728fb5b2f5cfbd4",
|
||||
"immutable_exact_base": true
|
||||
},
|
||||
"artifacts": [
|
||||
{
|
||||
"path": "model-spec.json",
|
||||
"role": "editable_geometry_contract"
|
||||
},
|
||||
{
|
||||
"path": "imported_015240.step",
|
||||
"role": "primary"
|
||||
},
|
||||
{
|
||||
"path": "imported_015240.stl",
|
||||
"role": "secondary"
|
||||
},
|
||||
{
|
||||
"path": "source.step",
|
||||
"role": "immutable_exact_base"
|
||||
}
|
||||
],
|
||||
"parameters": {},
|
||||
"experience": {
|
||||
"library": "../../../../cad-experience-library/library.json",
|
||||
"context_kind": "generalized_cad_experience_query",
|
||||
"methods_applied": []
|
||||
},
|
||||
"assumptions": [
|
||||
"单位按 STEP 几何和导入工具约定记录为 mm。",
|
||||
"原 STEP 不包含可可靠恢复的原生草图、约束或特征历史;后续修改通过 model-spec.json 的命名参数和修改特征表达。",
|
||||
"“选中面厚度增加”按直接建模语义解释为源面 #f22 沿其 +Z 法向外移 1.0 mm。",
|
||||
"“红圈内的孔缩小”按目标水平板通孔从约 Ø4.8 mm 缩小到 Ø3.6 mm 处理。"
|
||||
],
|
||||
"validation": [
|
||||
{
|
||||
"check": "exact_base_sha256",
|
||||
"passed": true,
|
||||
"value": "55aee6a0ad74435503a1e7f108b32c9f403ae9838933e2be6728fb5b2f5cfbd4"
|
||||
},
|
||||
{
|
||||
"check": "exact_base_geometry_signature",
|
||||
"passed": true,
|
||||
"scope": "immutable_source.step",
|
||||
"size_mm": [
|
||||
26.200001497,
|
||||
18.906424738,
|
||||
28.2
|
||||
],
|
||||
"center_mm": [
|
||||
13.100000748,
|
||||
7.453212369,
|
||||
0.0
|
||||
],
|
||||
"solid_count": 1,
|
||||
"face_count": 31,
|
||||
"edge_count": 87,
|
||||
"volume_mm3": 2400.466496
|
||||
},
|
||||
{
|
||||
"check": "model_spec_parameterized_rebuild",
|
||||
"passed": true,
|
||||
"modified_size_mm": [
|
||||
26.200001497,
|
||||
18.906424738,
|
||||
29.2
|
||||
],
|
||||
"modified_center_mm": [
|
||||
13.100000748,
|
||||
7.453212369,
|
||||
0.5
|
||||
],
|
||||
"solid_count": 1,
|
||||
"volume_mm3": 2476.533646
|
||||
},
|
||||
{
|
||||
"check": "selected_face_f22_extension",
|
||||
"passed": true,
|
||||
"source_plane_z_mm": 14.1,
|
||||
"result_plane_z_mm": 15.1,
|
||||
"extension_mm": 1.0,
|
||||
"result_face": "#f27"
|
||||
},
|
||||
{
|
||||
"check": "circled_hole_resize",
|
||||
"passed": true,
|
||||
"center_mm": [
|
||||
5.9,
|
||||
11.006425,
|
||||
0.0
|
||||
],
|
||||
"axis": "Z",
|
||||
"source_diameter_mm": 4.799996,
|
||||
"result_diameter_mm": 3.6,
|
||||
"result_face": "#f22"
|
||||
},
|
||||
{
|
||||
"check": "source_to_modified_cad_diff",
|
||||
"passed": true,
|
||||
"geometry_changed": true,
|
||||
"size_delta_mm": [
|
||||
0.0,
|
||||
0.0,
|
||||
1.0
|
||||
],
|
||||
"center_delta_mm": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"check": "cad_inspect_refs_facts_planes_positioning",
|
||||
"passed": true
|
||||
},
|
||||
{
|
||||
"check": "snapshot_review",
|
||||
"passed": true,
|
||||
"views": [
|
||||
"snapshots/iso_20260723T085707Z.png",
|
||||
"snapshots/iso_opposite_20260723T085707Z.png",
|
||||
"snapshots/top_ortho_20260723T085707Z.png",
|
||||
"snapshots/front_ortho_20260723T085707Z.png"
|
||||
]
|
||||
}
|
||||
],
|
||||
"viewer_links": [
|
||||
"http://127.0.0.1:4179/?dir=%2FUsers%2Fjerry%2Flinkhand%2FCadSet%2Ftext-to-cad%2Fmodels%2Fcad-router-v1%2Fimported_015240&file=imported_015240.step"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,110 @@
|
||||
{
|
||||
"schema_version": "1.0",
|
||||
"model_spec_kind": "parametric_cad_model",
|
||||
"model_id": "imported_015240",
|
||||
"units": "mm",
|
||||
"reconstruction": {
|
||||
"mode": "exact_step_base",
|
||||
"source": {
|
||||
"path": "source.step",
|
||||
"sha256": "55aee6a0ad74435503a1e7f108b32c9f403ae9838933e2be6728fb5b2f5cfbd4",
|
||||
"geometry_signature": {
|
||||
"size_mm": [
|
||||
26.200001497,
|
||||
18.906424738,
|
||||
28.2
|
||||
],
|
||||
"center_mm": [
|
||||
13.100000748,
|
||||
7.453212369,
|
||||
-0.0
|
||||
],
|
||||
"solid_count": 1,
|
||||
"face_count": 31,
|
||||
"edge_count": 87,
|
||||
"volume_mm3": 2400.466496
|
||||
}
|
||||
},
|
||||
"history_recovery": {
|
||||
"status": "not_present_in_step",
|
||||
"contract": "Preserve the imported B-Rep exactly as the immutable base; represent later edits as named parametric modifications."
|
||||
}
|
||||
},
|
||||
"parameters": {
|
||||
"selected_face_extension": {
|
||||
"value": 1.0,
|
||||
"unit": "mm",
|
||||
"role": "outward_offset_of_source_face_f22",
|
||||
"source_face": "#f22",
|
||||
"direction": "+Z"
|
||||
},
|
||||
"target_hole_diameter": {
|
||||
"value": 3.6,
|
||||
"unit": "mm",
|
||||
"role": "diameter_of_circled_horizontal_plate_hole",
|
||||
"source_diameter_mm": 4.799996,
|
||||
"axis": "Z"
|
||||
}
|
||||
},
|
||||
"modifications": [
|
||||
{
|
||||
"id": "extend_selected_face_f22",
|
||||
"operation": "add_box",
|
||||
"source_face": "#f22",
|
||||
"direction": "+Z",
|
||||
"center": [
|
||||
13.1,
|
||||
-1.0,
|
||||
{
|
||||
"parameter": "selected_face_extension",
|
||||
"scale": 0.5,
|
||||
"offset": 14.1
|
||||
}
|
||||
],
|
||||
"size": [
|
||||
22.2,
|
||||
2.0,
|
||||
{
|
||||
"parameter": "selected_face_extension"
|
||||
}
|
||||
],
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"id": "fill_original_circled_hole",
|
||||
"operation": "add_cylinder",
|
||||
"axis": "z",
|
||||
"center": [
|
||||
5.9,
|
||||
11.006425,
|
||||
0.0
|
||||
],
|
||||
"diameter": 4.799996,
|
||||
"length": 4.0,
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"id": "cut_resized_circled_hole",
|
||||
"operation": "cut_cylinder",
|
||||
"axis": "z",
|
||||
"center": [
|
||||
5.9,
|
||||
11.006425,
|
||||
0.0
|
||||
],
|
||||
"diameter": {
|
||||
"parameter": "target_hole_diameter"
|
||||
},
|
||||
"length": 6.0,
|
||||
"enabled": true
|
||||
}
|
||||
],
|
||||
"outputs": {
|
||||
"step": "imported_015240.step",
|
||||
"stl": "imported_015240.stl"
|
||||
},
|
||||
"validation": {
|
||||
"exact_base_required": true,
|
||||
"geometry_signature_tolerance_mm": 1e-07
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"input": "imported_015240.step",
|
||||
"mode": "view",
|
||||
"outputs": [
|
||||
{
|
||||
"path": "snapshots/iso.png",
|
||||
"camera": "iso"
|
||||
},
|
||||
{
|
||||
"path": "snapshots/iso_opposite.png",
|
||||
"camera": {
|
||||
"direction": [-1, 1, -0.8]
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "snapshots/top_ortho.png",
|
||||
"camera": "top"
|
||||
},
|
||||
{
|
||||
"path": "snapshots/front_ortho.png",
|
||||
"camera": "front"
|
||||
}
|
||||
],
|
||||
"render": {
|
||||
"viewLabels": true,
|
||||
"padding": 0.12,
|
||||
"sizeProfile": "diagnostic"
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 72 KiB |
|
After Width: | Height: | Size: 70 KiB |
|
After Width: | Height: | Size: 299 KiB |
|
After Width: | Height: | Size: 290 KiB |
|
After Width: | Height: | Size: 329 KiB |
|
After Width: | Height: | Size: 328 KiB |
|
After Width: | Height: | Size: 71 KiB |
|
After Width: | Height: | Size: 69 KiB |
@@ -0,0 +1,372 @@
|
||||
{
|
||||
"ok": true,
|
||||
"tokens": [
|
||||
{
|
||||
"line": 1,
|
||||
"token": "#",
|
||||
"cadPath": "targeted_015133",
|
||||
"stepPath": "targeted_015133.step",
|
||||
"stepHash": "97f9763fe46700d0a23fa052b08c119e7352275b4e850cb8ed8c77f85e29f4c3",
|
||||
"summary": {
|
||||
"kind": "part",
|
||||
"occurrenceCount": 1,
|
||||
"leafOccurrenceCount": 1,
|
||||
"shapeCount": 1,
|
||||
"faceCount": 199,
|
||||
"edgeCount": 508,
|
||||
"vertexCount": 0,
|
||||
"bounds": {
|
||||
"min": [
|
||||
-106.75,
|
||||
-0.0,
|
||||
-38.0
|
||||
],
|
||||
"max": [
|
||||
106.75,
|
||||
78.5,
|
||||
38.0
|
||||
]
|
||||
}
|
||||
},
|
||||
"selections": [],
|
||||
"warnings": [],
|
||||
"entryFacts": {
|
||||
"size": [
|
||||
213.5,
|
||||
78.5,
|
||||
76.0
|
||||
],
|
||||
"extentAxis": "x",
|
||||
"center": [
|
||||
0.0,
|
||||
39.25,
|
||||
0.0
|
||||
],
|
||||
"diag": 239.8343178112757,
|
||||
"kind": "part"
|
||||
},
|
||||
"planes": [
|
||||
{
|
||||
"axis": "y",
|
||||
"coordinate": 0.0,
|
||||
"normalSign": -1,
|
||||
"faceCount": 1,
|
||||
"totalArea": 12646.876863,
|
||||
"bbox": {
|
||||
"min": [
|
||||
-86.75,
|
||||
-0.0,
|
||||
-38.0
|
||||
],
|
||||
"max": [
|
||||
86.75,
|
||||
0.0,
|
||||
38.0
|
||||
]
|
||||
},
|
||||
"selectors": [
|
||||
"f85"
|
||||
]
|
||||
},
|
||||
{
|
||||
"axis": "y",
|
||||
"coordinate": 76.0,
|
||||
"normalSign": 1,
|
||||
"faceCount": 1,
|
||||
"totalArea": 12168.786533,
|
||||
"bbox": {
|
||||
"min": [
|
||||
-86.75,
|
||||
76.0,
|
||||
-38.0
|
||||
],
|
||||
"max": [
|
||||
86.75,
|
||||
76.0,
|
||||
38.0
|
||||
]
|
||||
},
|
||||
"selectors": [
|
||||
"f59"
|
||||
]
|
||||
},
|
||||
{
|
||||
"axis": "z",
|
||||
"coordinate": -38.00000000000001,
|
||||
"normalSign": -1,
|
||||
"faceCount": 3,
|
||||
"totalArea": 11242.8,
|
||||
"bbox": {
|
||||
"min": [
|
||||
-86.75,
|
||||
0.0,
|
||||
-38.0
|
||||
],
|
||||
"max": [
|
||||
86.75,
|
||||
76.0,
|
||||
-38.0
|
||||
]
|
||||
},
|
||||
"selectors": [
|
||||
"f110",
|
||||
"f86",
|
||||
"f98"
|
||||
]
|
||||
},
|
||||
{
|
||||
"axis": "z",
|
||||
"coordinate": 38.00000000000001,
|
||||
"normalSign": 1,
|
||||
"faceCount": 3,
|
||||
"totalArea": 11242.8,
|
||||
"bbox": {
|
||||
"min": [
|
||||
-86.75,
|
||||
0.0,
|
||||
38.0
|
||||
],
|
||||
"max": [
|
||||
86.75,
|
||||
76.0,
|
||||
38.0
|
||||
]
|
||||
},
|
||||
"selectors": [
|
||||
"f60",
|
||||
"f72",
|
||||
"f84"
|
||||
]
|
||||
},
|
||||
{
|
||||
"axis": "x",
|
||||
"coordinate": -106.75000000000001,
|
||||
"normalSign": -1,
|
||||
"faceCount": 5,
|
||||
"totalArea": 5013.75858,
|
||||
"bbox": {
|
||||
"min": [
|
||||
-106.75,
|
||||
0.35,
|
||||
-37.65
|
||||
],
|
||||
"max": [
|
||||
-106.75,
|
||||
75.65,
|
||||
37.65
|
||||
]
|
||||
},
|
||||
"selectors": [
|
||||
"f140",
|
||||
"f166",
|
||||
"f168",
|
||||
"f170",
|
||||
"f172"
|
||||
]
|
||||
},
|
||||
{
|
||||
"axis": "x",
|
||||
"coordinate": 106.75000000000001,
|
||||
"normalSign": 1,
|
||||
"faceCount": 5,
|
||||
"totalArea": 5013.75858,
|
||||
"bbox": {
|
||||
"min": [
|
||||
106.75,
|
||||
0.35,
|
||||
-37.65
|
||||
],
|
||||
"max": [
|
||||
106.75,
|
||||
75.65,
|
||||
37.65
|
||||
]
|
||||
},
|
||||
"selectors": [
|
||||
"f158",
|
||||
"f160",
|
||||
"f162",
|
||||
"f164",
|
||||
"f55"
|
||||
]
|
||||
}
|
||||
],
|
||||
"entryPositioning": {
|
||||
"kind": "part",
|
||||
"bbox": {
|
||||
"min": [
|
||||
-106.75,
|
||||
-0.0,
|
||||
-38.0
|
||||
],
|
||||
"max": [
|
||||
106.75,
|
||||
78.5,
|
||||
38.0
|
||||
]
|
||||
},
|
||||
"bboxFacts": {
|
||||
"size": [
|
||||
213.5,
|
||||
78.5,
|
||||
76.0
|
||||
],
|
||||
"extentAxis": "x",
|
||||
"center": [
|
||||
0.0,
|
||||
39.25,
|
||||
0.0
|
||||
],
|
||||
"diag": 239.8343178112757
|
||||
},
|
||||
"majorPlanes": [
|
||||
{
|
||||
"axis": "y",
|
||||
"coordinate": 0.0,
|
||||
"normalSign": -1,
|
||||
"faceCount": 1,
|
||||
"totalArea": 12646.876863,
|
||||
"bbox": {
|
||||
"min": [
|
||||
-86.75,
|
||||
-0.0,
|
||||
-38.0
|
||||
],
|
||||
"max": [
|
||||
86.75,
|
||||
0.0,
|
||||
38.0
|
||||
]
|
||||
},
|
||||
"selectors": [
|
||||
"f85"
|
||||
]
|
||||
},
|
||||
{
|
||||
"axis": "y",
|
||||
"coordinate": 76.0,
|
||||
"normalSign": 1,
|
||||
"faceCount": 1,
|
||||
"totalArea": 12168.786533,
|
||||
"bbox": {
|
||||
"min": [
|
||||
-86.75,
|
||||
76.0,
|
||||
-38.0
|
||||
],
|
||||
"max": [
|
||||
86.75,
|
||||
76.0,
|
||||
38.0
|
||||
]
|
||||
},
|
||||
"selectors": [
|
||||
"f59"
|
||||
]
|
||||
},
|
||||
{
|
||||
"axis": "z",
|
||||
"coordinate": -38.00000000000001,
|
||||
"normalSign": -1,
|
||||
"faceCount": 3,
|
||||
"totalArea": 11242.8,
|
||||
"bbox": {
|
||||
"min": [
|
||||
-86.75,
|
||||
0.0,
|
||||
-38.0
|
||||
],
|
||||
"max": [
|
||||
86.75,
|
||||
76.0,
|
||||
-38.0
|
||||
]
|
||||
},
|
||||
"selectors": [
|
||||
"f110",
|
||||
"f86",
|
||||
"f98"
|
||||
]
|
||||
},
|
||||
{
|
||||
"axis": "z",
|
||||
"coordinate": 38.00000000000001,
|
||||
"normalSign": 1,
|
||||
"faceCount": 3,
|
||||
"totalArea": 11242.8,
|
||||
"bbox": {
|
||||
"min": [
|
||||
-86.75,
|
||||
0.0,
|
||||
38.0
|
||||
],
|
||||
"max": [
|
||||
86.75,
|
||||
76.0,
|
||||
38.0
|
||||
]
|
||||
},
|
||||
"selectors": [
|
||||
"f60",
|
||||
"f72",
|
||||
"f84"
|
||||
]
|
||||
},
|
||||
{
|
||||
"axis": "x",
|
||||
"coordinate": -106.75000000000001,
|
||||
"normalSign": -1,
|
||||
"faceCount": 5,
|
||||
"totalArea": 5013.75858,
|
||||
"bbox": {
|
||||
"min": [
|
||||
-106.75,
|
||||
0.35,
|
||||
-37.65
|
||||
],
|
||||
"max": [
|
||||
-106.75,
|
||||
75.65,
|
||||
37.65
|
||||
]
|
||||
},
|
||||
"selectors": [
|
||||
"f140",
|
||||
"f166",
|
||||
"f168",
|
||||
"f170",
|
||||
"f172"
|
||||
]
|
||||
},
|
||||
{
|
||||
"axis": "x",
|
||||
"coordinate": 106.75000000000001,
|
||||
"normalSign": 1,
|
||||
"faceCount": 5,
|
||||
"totalArea": 5013.75858,
|
||||
"bbox": {
|
||||
"min": [
|
||||
106.75,
|
||||
0.35,
|
||||
-37.65
|
||||
],
|
||||
"max": [
|
||||
106.75,
|
||||
75.65,
|
||||
37.65
|
||||
]
|
||||
},
|
||||
"selectors": [
|
||||
"f158",
|
||||
"f160",
|
||||
"f162",
|
||||
"f164",
|
||||
"f55"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"errors": []
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"schema_version": "1.0",
|
||||
"model_spec_kind": "parametric_cad_model",
|
||||
"model_id": "targeted_015133",
|
||||
"units": "mm",
|
||||
"reconstruction": {
|
||||
"mode": "exact_step_base",
|
||||
"source": {
|
||||
"path": "source.step",
|
||||
"sha256": "97f9763fe46700d0a23fa052b08c119e7352275b4e850cb8ed8c77f85e29f4c3",
|
||||
"geometry_signature": {
|
||||
"size_mm": [
|
||||
213.5,
|
||||
78.5,
|
||||
76.0
|
||||
],
|
||||
"center_mm": [
|
||||
0.0,
|
||||
39.25,
|
||||
0.0
|
||||
],
|
||||
"solid_count": 1,
|
||||
"face_count": 199,
|
||||
"edge_count": 488,
|
||||
"volume_mm3": 1174741.621833
|
||||
}
|
||||
},
|
||||
"history_recovery": {
|
||||
"status": "not_present_in_step",
|
||||
"contract": "Preserve the imported B-Rep exactly as the immutable base; represent later edits as named parametric modifications."
|
||||
}
|
||||
},
|
||||
"parameters": {},
|
||||
"modifications": [],
|
||||
"outputs": {
|
||||
"step": "targeted_015133.step",
|
||||
"stl": "targeted_015133.stl"
|
||||
},
|
||||
"validation": {
|
||||
"exact_base_required": true,
|
||||
"geometry_signature_tolerance_mm": 1e-07
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"input": "targeted_015133.step",
|
||||
"mode": "view",
|
||||
"outputs": [
|
||||
{
|
||||
"path": "snapshot_iso.png",
|
||||
"camera": "iso"
|
||||
},
|
||||
{
|
||||
"path": "snapshot_iso_opposite.png",
|
||||
"camera": {
|
||||
"direction": [-1, 1, -0.8]
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "snapshot_top.png",
|
||||
"camera": "top"
|
||||
},
|
||||
{
|
||||
"path": "snapshot_front.png",
|
||||
"camera": "front"
|
||||
}
|
||||
],
|
||||
"render": {
|
||||
"viewLabels": true,
|
||||
"padding": 0.12,
|
||||
"sizeProfile": "diagnostic"
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 76 KiB |
|
After Width: | Height: | Size: 316 KiB |
|
After Width: | Height: | Size: 475 KiB |
|
After Width: | Height: | Size: 78 KiB |