{ "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" } ] }