139 lines
3.9 KiB
JSON
139 lines
3.9 KiB
JSON
{
|
|
"patch_version": "1.0",
|
|
"target_model": "lcd25_harmonic_reducer",
|
|
"intent": "Add a coaxial keyed output shaft without authoring a placement transform.",
|
|
"operations": [
|
|
{
|
|
"op": "add_parameter",
|
|
"id": "output_shaft_diameter",
|
|
"value": {
|
|
"kind": "length",
|
|
"value": 14.0,
|
|
"unit": "mm",
|
|
"editable": true,
|
|
"bounds": [10.0, 20.0],
|
|
"status": "specified",
|
|
"description": "Output shaft journal diameter."
|
|
}
|
|
},
|
|
{
|
|
"op": "add_parameter",
|
|
"id": "output_shaft_length",
|
|
"value": {
|
|
"kind": "length",
|
|
"value": 45.0,
|
|
"unit": "mm",
|
|
"editable": true,
|
|
"bounds": [25.0, 80.0],
|
|
"status": "specified",
|
|
"description": "Usable shaft extension measured from the output mounting face."
|
|
}
|
|
},
|
|
{
|
|
"op": "add_component",
|
|
"value": {
|
|
"id": "output_shaft",
|
|
"role": "external_torque_shaft",
|
|
"archetype": "stepped_keyed_shaft",
|
|
"lifecycle": "optional",
|
|
"generation": {
|
|
"strategy": "semantic_feature_program",
|
|
"family": "stepped_output_shaft",
|
|
"parameter_bindings": {
|
|
"journal_diameter": "output_shaft_diameter",
|
|
"extension_length": "output_shaft_length",
|
|
"mating_bore": "output_bore_diameter"
|
|
}
|
|
},
|
|
"interfaces": [
|
|
{
|
|
"id": "shaft_axis",
|
|
"type": "axis",
|
|
"construction": "primary_axis"
|
|
},
|
|
{
|
|
"id": "mounting_shoulder",
|
|
"type": "plane",
|
|
"construction": "rear_axial_face"
|
|
},
|
|
{
|
|
"id": "flange_fit",
|
|
"type": "shaft_seat",
|
|
"construction": "outer_cylindrical_surface",
|
|
"parameter_refs": ["output_shaft_diameter"]
|
|
},
|
|
{
|
|
"id": "torque_drive",
|
|
"type": "torque_interface",
|
|
"construction": "generated_feature",
|
|
"qualifiers": ["key_or_spline_selected_by_load"]
|
|
},
|
|
{
|
|
"id": "external_shaft_end",
|
|
"type": "plane",
|
|
"construction": "front_axial_face"
|
|
}
|
|
],
|
|
"material_class": "alloy_steel",
|
|
"tags": ["rotating", "output", "public_interface"]
|
|
}
|
|
},
|
|
{
|
|
"op": "add_relation",
|
|
"value": {
|
|
"id": "output_shaft_centering",
|
|
"type": "coaxial",
|
|
"a": "output_flange.rotation_axis",
|
|
"b": "output_shaft.shaft_axis",
|
|
"intent": "Center the new shaft on the solved output axis.",
|
|
"mobility": "fixed"
|
|
}
|
|
},
|
|
{
|
|
"op": "add_relation",
|
|
"value": {
|
|
"id": "output_shaft_seating",
|
|
"type": "face_mate",
|
|
"a": "output_flange.external_mount_face",
|
|
"b": "output_shaft.mounting_shoulder",
|
|
"intent": "Locate the shaft shoulder from the output flange mounting face.",
|
|
"value": 0.0,
|
|
"tolerance": 0.01,
|
|
"mobility": "fixed"
|
|
}
|
|
},
|
|
{
|
|
"op": "add_relation",
|
|
"value": {
|
|
"id": "output_shaft_fit",
|
|
"type": "insert",
|
|
"a": "output_flange.output_bore",
|
|
"b": "output_shaft.flange_fit",
|
|
"intent": "Fit the shaft journal into the output flange bore.",
|
|
"tolerance": 0.01,
|
|
"mobility": "fixed"
|
|
}
|
|
},
|
|
{
|
|
"op": "add_relation",
|
|
"value": {
|
|
"id": "output_shaft_torque_lock",
|
|
"type": "torque_lock",
|
|
"a": "output_flange.output_bore",
|
|
"b": "output_shaft.torque_drive",
|
|
"intent": "Transfer output torque through a keyed or splined interface.",
|
|
"mobility": "fixed"
|
|
}
|
|
},
|
|
{
|
|
"op": "add_rigid_group_member",
|
|
"group": "output_group",
|
|
"component": "output_shaft"
|
|
},
|
|
{
|
|
"op": "add_preserved_interface",
|
|
"value": "output_shaft.external_shaft_end"
|
|
}
|
|
]
|
|
}
|