{ "schema_version": "assembly-1.0", "designir_kind": "coordinate_free_semantic_assembly", "model_id": "lcd25_harmonic_reducer", "family": "harmonic_reducer_module", "units": "mm", "design_intent": "A compact coaxial harmonic reducer whose geometry, assembly and motion are regenerated from functional interfaces rather than stored placements.", "parameters": { "nominal_size": { "kind": "length", "value": 25.0, "unit": "mm", "editable": true, "bounds": [20.0, 40.0], "status": "inferred", "description": "Nominal transmission size controlling the scalable component family." }, "reduction_ratio": { "kind": "ratio", "value": 100.0, "editable": true, "bounds": [50.0, 160.0], "status": "inferred", "description": "Input rotations per output rotation." }, "outer_envelope_diameter": { "kind": "length", "value": 110.0, "unit": "mm", "editable": true, "bounds": [90.0, 140.0], "status": "specified", "description": "Maximum housing envelope." }, "axial_envelope": { "kind": "length", "value": 32.0, "unit": "mm", "editable": true, "bounds": [25.0, 50.0], "status": "specified", "description": "Maximum reducer axial package length." }, "output_bore_diameter": { "kind": "length", "value": 14.0, "unit": "mm", "editable": true, "bounds": [8.0, 25.0], "status": "estimated", "description": "Central output interface bore." }, "housing_wall": { "kind": "length", "value": 3.0, "unit": "mm", "editable": true, "bounds": [2.0, 6.0], "status": "estimated", "description": "Minimum structural housing wall." }, "output_bolt_count": { "kind": "count", "value": 4, "editable": true, "bounds": [3, 8], "status": "inferred", "description": "Output flange fastener pattern count." }, "housing_bolt_count": { "kind": "count", "value": 10, "editable": true, "bounds": [6, 16], "status": "inferred", "description": "Housing closure fastener count." }, "output_torque_limit": { "kind": "torque", "value": 25.0, "unit": "N*m", "editable": true, "bounds": [5.0, 60.0], "status": "estimated", "description": "Initial simulation effort limit." }, "output_speed_limit": { "kind": "speed", "value": 2.5, "unit": "rad/s", "editable": true, "bounds": [0.5, 5.0], "status": "estimated", "description": "Initial simulation output speed limit." } }, "expressions": { "flexspline_tooth_count": "2 * round(reduction_ratio / 2)", "circular_spline_tooth_count": "flexspline_tooth_count + 2", "bearing_nominal_diameter": "0.72 * outer_envelope_diameter", "output_flange_diameter": "0.48 * outer_envelope_diameter", "housing_fastener_pitch_diameter": "0.82 * outer_envelope_diameter" }, "modules": [ { "id": "structure_module", "purpose": "Carry external loads and provide all mounting seats.", "members": ["housing", "rear_cover", "front_cover"], "replaceable_as_unit": true }, { "id": "harmonic_stage", "purpose": "Generate the harmonic reduction between input and output.", "members": ["circular_spline", "flexspline", "wave_generator"], "replaceable_as_unit": true }, { "id": "output_support_module", "purpose": "Support and locate the rotating output.", "members": ["output_bearing", "output_flange"], "replaceable_as_unit": true }, { "id": "retention_module", "purpose": "Close and fasten structural interfaces.", "members": ["housing_fasteners", "output_fasteners"], "replaceable_as_unit": false } ], "components": [ { "id": "housing", "role": "fixed_structure", "archetype": "coaxial_reducer_housing", "lifecycle": "required", "generation": { "strategy": "semantic_feature_program", "family": "annular_housing_with_mounting_flange", "parameter_bindings": { "outer_diameter": "outer_envelope_diameter", "axial_length": "axial_envelope", "minimum_wall": "housing_wall" } }, "interfaces": [ { "id": "main_axis", "type": "axis", "construction": "primary_axis" }, { "id": "front_closure_seat", "type": "plane", "construction": "front_axial_face" }, { "id": "rear_closure_seat", "type": "plane", "construction": "rear_axial_face" }, { "id": "circular_spline_seat", "type": "cylinder", "construction": "inner_cylindrical_surface", "qualifiers": ["largest_internal_transmission_seat"] }, { "id": "output_bearing_seat", "type": "bearing_seat", "construction": "inner_cylindrical_surface", "qualifiers": ["frontmost_bearing_seat"] }, { "id": "closure_pattern", "type": "hole_pattern", "construction": "pitch_circle_pattern", "parameter_refs": ["housing_bolt_count"] } ], "material_class": "aluminum_alloy", "tags": ["fixed", "structural", "thermal_path"] }, { "id": "circular_spline", "role": "fixed_tooth_member", "archetype": "internal_spline_ring", "lifecycle": "replaceable", "generation": { "strategy": "standard_library", "family": "harmonic_circular_spline", "parameter_bindings": { "nominal_size": "nominal_size", "tooth_count": "circular_spline_tooth_count" } }, "interfaces": [ { "id": "tooth_axis", "type": "axis", "construction": "primary_axis" }, { "id": "housing_fit", "type": "cylinder", "construction": "outer_cylindrical_surface" }, { "id": "anti_rotation", "type": "torque_interface", "construction": "generated_feature" } ], "material_class": "hardened_steel", "tags": ["fixed", "transmission"] }, { "id": "flexspline", "role": "compliant_tooth_member", "archetype": "cup_flexspline", "lifecycle": "replaceable", "generation": { "strategy": "standard_library", "family": "harmonic_flexspline", "parameter_bindings": { "nominal_size": "nominal_size", "tooth_count": "flexspline_tooth_count", "output_bore": "output_bore_diameter" } }, "interfaces": [ { "id": "tooth_axis", "type": "axis", "construction": "primary_axis" }, { "id": "wave_generator_seat", "type": "bearing_seat", "construction": "inner_cylindrical_surface" }, { "id": "output_face", "type": "plane", "construction": "front_axial_face" }, { "id": "output_torque_interface", "type": "torque_interface", "construction": "generated_feature" } ], "material_class": "spring_steel", "tags": ["rotating", "compliant", "transmission"] }, { "id": "wave_generator", "role": "input_deformation_member", "archetype": "elliptical_wave_generator", "lifecycle": "replaceable", "generation": { "strategy": "subassembly_template", "family": "elliptical_cam_with_flexible_bearing", "parameter_bindings": { "nominal_size": "nominal_size" } }, "interfaces": [ { "id": "rotation_axis", "type": "axis", "construction": "primary_axis" }, { "id": "input_torque_interface", "type": "torque_interface", "construction": "inner_cylindrical_surface" }, { "id": "flexspline_contact", "type": "contact_envelope", "construction": "outer_cylindrical_surface", "qualifiers": ["elliptical_compliant_contact"] } ], "material_class": "bearing_steel", "tags": ["rotating", "input", "transmission"] }, { "id": "output_bearing", "role": "combined_load_support", "archetype": "cross_roller_bearing", "lifecycle": "replaceable", "generation": { "strategy": "standard_library", "family": "cross_roller_bearing", "parameter_bindings": { "nominal_diameter": "bearing_nominal_diameter" } }, "interfaces": [ { "id": "bearing_axis", "type": "axis", "construction": "primary_axis" }, { "id": "outer_ring_seat", "type": "bearing_seat", "construction": "outer_cylindrical_surface" }, { "id": "inner_ring_seat", "type": "bearing_seat", "construction": "inner_cylindrical_surface" }, { "id": "axial_reference", "type": "plane", "construction": "center_plane" } ], "material_class": "bearing_steel", "tags": ["support", "split_kinematic_membership"] }, { "id": "output_flange", "role": "external_output_interface", "archetype": "bolted_output_flange", "lifecycle": "replaceable", "generation": { "strategy": "semantic_feature_program", "family": "annular_output_flange", "parameter_bindings": { "diameter": "output_flange_diameter", "bore_diameter": "output_bore_diameter", "bolt_count": "output_bolt_count" } }, "interfaces": [ { "id": "rotation_axis", "type": "axis", "construction": "primary_axis" }, { "id": "flexspline_mate", "type": "plane", "construction": "rear_axial_face" }, { "id": "bearing_fit", "type": "bearing_seat", "construction": "outer_cylindrical_surface" }, { "id": "external_mount_face", "type": "plane", "construction": "front_axial_face" }, { "id": "external_bolt_pattern", "type": "hole_pattern", "construction": "pitch_circle_pattern", "parameter_refs": ["output_bolt_count"] }, { "id": "output_bore", "type": "shaft_seat", "construction": "inner_cylindrical_surface", "parameter_refs": ["output_bore_diameter"] } ], "material_class": "alloy_steel", "tags": ["rotating", "output", "public_interface"] }, { "id": "front_cover", "role": "front_axial_retainer", "archetype": "annular_cover", "lifecycle": "required", "generation": { "strategy": "semantic_feature_program", "family": "bolted_annular_cover", "parameter_bindings": { "outer_diameter": "outer_envelope_diameter", "bolt_count": "housing_bolt_count" } }, "interfaces": [ { "id": "housing_mate", "type": "plane", "construction": "rear_axial_face" }, { "id": "main_axis", "type": "axis", "construction": "primary_axis" }, { "id": "fastener_pattern", "type": "hole_pattern", "construction": "pitch_circle_pattern", "parameter_refs": ["housing_bolt_count"] } ], "material_class": "aluminum_alloy", "tags": ["fixed", "structural"] }, { "id": "rear_cover", "role": "rear_axial_retainer", "archetype": "annular_cover", "lifecycle": "required", "generation": { "strategy": "semantic_feature_program", "family": "bolted_annular_cover", "parameter_bindings": { "outer_diameter": "outer_envelope_diameter" } }, "interfaces": [ { "id": "housing_mate", "type": "plane", "construction": "front_axial_face" }, { "id": "main_axis", "type": "axis", "construction": "primary_axis" } ], "material_class": "aluminum_alloy", "tags": ["fixed", "structural"] }, { "id": "housing_fasteners", "role": "housing_closure_fasteners", "archetype": "socket_head_screw_pattern", "lifecycle": "generated_pattern", "quantity": "housing_bolt_count", "generation": { "strategy": "standard_library", "family": "metric_socket_head_screw", "parameter_bindings": { "nominal_thread": "M5", "count": "housing_bolt_count" } }, "interfaces": [ { "id": "fastener_axes", "type": "hole_pattern", "construction": "pitch_circle_pattern", "parameter_refs": ["housing_bolt_count"] }, { "id": "head_seats", "type": "fastener_seat", "construction": "generated_feature" } ], "material_class": "steel", "tags": ["fixed", "fastener_pattern"] }, { "id": "output_fasteners", "role": "output_interface_fasteners", "archetype": "countersunk_screw_pattern", "lifecycle": "generated_pattern", "quantity": "output_bolt_count", "generation": { "strategy": "standard_library", "family": "metric_countersunk_screw", "parameter_bindings": { "nominal_thread": "M2_5", "count": "output_bolt_count" } }, "interfaces": [ { "id": "fastener_axes", "type": "hole_pattern", "construction": "pitch_circle_pattern", "parameter_refs": ["output_bolt_count"] }, { "id": "head_seats", "type": "fastener_seat", "construction": "generated_feature" } ], "material_class": "steel", "tags": ["rotating", "fastener_pattern"] } ], "relations": [ { "id": "circular_spline_centering", "type": "coaxial", "a": "housing.main_axis", "b": "circular_spline.tooth_axis", "intent": "Center the fixed tooth member in the housing.", "mobility": "fixed" }, { "id": "circular_spline_fixing", "type": "torque_lock", "a": "housing.circular_spline_seat", "b": "circular_spline.anti_rotation", "intent": "Prevent rotation of the circular spline relative to the housing.", "mobility": "fixed" }, { "id": "flexspline_centering", "type": "coaxial", "a": "circular_spline.tooth_axis", "b": "flexspline.tooth_axis", "intent": "Keep both spline members on the reducer axis.", "mobility": "allow_rotation" }, { "id": "wave_generator_centering", "type": "coaxial", "a": "flexspline.tooth_axis", "b": "wave_generator.rotation_axis", "intent": "Place the wave generator on the transmission axis.", "mobility": "allow_rotation" }, { "id": "wave_generator_contact", "type": "bearing_support", "a": "flexspline.wave_generator_seat", "b": "wave_generator.flexspline_contact", "intent": "Transfer the elliptical deformation while allowing relative rotation.", "mobility": "allow_rotation", "confidence": 0.82, "evidence": ["harmonic_stage_topology", "nested_flexible_bearing"] }, { "id": "output_bearing_housing_fit", "type": "bearing_support", "a": "housing.output_bearing_seat", "b": "output_bearing.outer_ring_seat", "intent": "Fix and support the bearing outer ring in the housing.", "mobility": "fixed" }, { "id": "output_bearing_flange_fit", "type": "bearing_support", "a": "output_flange.bearing_fit", "b": "output_bearing.inner_ring_seat", "intent": "Support output flange rotation through the bearing inner ring.", "mobility": "allow_rotation" }, { "id": "flexspline_output_face", "type": "face_mate", "a": "flexspline.output_face", "b": "output_flange.flexspline_mate", "intent": "Locate the flexspline axially against the output flange.", "value": 0.0, "tolerance": 0.01, "mobility": "fixed" }, { "id": "flexspline_output_torque", "type": "torque_lock", "a": "flexspline.output_torque_interface", "b": "output_flange.external_bolt_pattern", "intent": "Transmit flexspline torque to the output flange.", "mobility": "fixed" }, { "id": "front_cover_centering", "type": "coaxial", "a": "housing.main_axis", "b": "front_cover.main_axis", "intent": "Center the front closure.", "mobility": "fixed" }, { "id": "front_cover_seating", "type": "face_mate", "a": "housing.front_closure_seat", "b": "front_cover.housing_mate", "intent": "Close the front housing interface.", "value": 0.0, "tolerance": 0.02, "mobility": "fixed" }, { "id": "rear_cover_centering", "type": "coaxial", "a": "housing.main_axis", "b": "rear_cover.main_axis", "intent": "Center the rear closure.", "mobility": "fixed" }, { "id": "rear_cover_seating", "type": "face_mate", "a": "housing.rear_closure_seat", "b": "rear_cover.housing_mate", "intent": "Close the rear housing interface.", "value": 0.0, "tolerance": 0.02, "mobility": "fixed" }, { "id": "housing_fastener_alignment", "type": "fasten_pattern", "a": "housing.closure_pattern", "b": "housing_fasteners.fastener_axes", "intent": "Instantiate and align the housing closure screws.", "mobility": "fixed" }, { "id": "output_fastener_alignment", "type": "fasten_pattern", "a": "output_flange.external_bolt_pattern", "b": "output_fasteners.fastener_axes", "intent": "Instantiate and align output flange screws.", "mobility": "fixed" } ], "kinematics": { "anchor_component": "housing", "rigid_groups": [ { "id": "fixed_group", "members": ["housing", "circular_spline", "front_cover", "rear_cover", "housing_fasteners"] }, { "id": "output_group", "members": ["flexspline", "output_flange", "output_fasteners"] }, { "id": "input_group", "members": ["wave_generator"] } ], "joints": [ { "id": "input_joint", "type": "continuous", "parent_group": "fixed_group", "child_group": "input_group", "axis_ref": "wave_generator.rotation_axis", "station_ref": "flexspline.wave_generator_seat", "dynamics": { "damping": 0.002, "friction": 0.003, "parameter_status": "estimated" } }, { "id": "output_joint", "type": "continuous", "parent_group": "fixed_group", "child_group": "output_group", "axis_ref": "output_flange.rotation_axis", "station_ref": "output_bearing.axial_reference", "dynamics": { "damping": 0.08, "friction": 0.12, "effort_limit": "output_torque_limit", "velocity_limit": "output_speed_limit", "parameter_status": "estimated" } } ], "transmissions": [ { "id": "harmonic_stage_transmission", "type": "harmonic", "input_joint": "input_joint", "output_joint": "output_joint", "ratio_expression": "output_angle = -input_angle / reduction_ratio", "fixed_member": "circular_spline", "compliance_model": "reduced_order_torsional_compliance" } ] }, "edit_interface": { "editable_parameters": [ "nominal_size", "reduction_ratio", "outer_envelope_diameter", "axial_envelope", "output_bore_diameter", "housing_wall", "output_bolt_count", "housing_bolt_count", "output_torque_limit", "output_speed_limit" ], "structural_operations": [ "add_component", "remove_component", "replace_component", "change_relation", "change_transmission", "add_module" ], "preserved_interfaces": [ "housing.main_axis", "housing.front_closure_seat", "output_flange.external_mount_face", "output_flange.external_bolt_pattern", "output_flange.output_bore" ] }, "validation_contract": { "coordinate_free_source": true, "required_checks": [ "schema_valid", "reference_integrity", "constraint_graph_connected", "assembly_solvable_from_scrambled_state", "no_overconstraint", "interface_compatibility", "clearance", "interference", "joint_mobility", "parameter_perturbation", "preserved_interface", "urdf_load", "mjcf_load" ], "acceptance_rules": [ "No component placement may be authored as a coordinate or transform.", "The solver must recover a unique assembly from semantic interfaces and relations.", "Changing an editable parameter must rebuild affected components and re-solve all relations.", "Structural edits must preserve declared public interfaces unless the patch explicitly changes the contract." ] } }