Split project into frontend and backend

This commit is contained in:
2026-08-13 16:24:36 +08:00
commit f051146486
274 changed files with 953932 additions and 0 deletions
@@ -0,0 +1,17 @@
{
"module_type": "planetary_joint_module",
"motor_step": "../../assets/motors/3500_motor_part2.step",
"housing_step": "../../assets/housings/generated_housing_baseline.step",
"reducer_requirement": "../reducers/simple_2k_h/simple_2kh_industrial_ratio_7p5_spur.json",
"placement_policy": "infer_then_write_editable_json",
"motor_to_reducer_relation": "motor_output_to_sun_keyed_input",
"housing_relation": "ring_fixed_to_housing",
"joint_output": "carrier_output_shaft",
"output_extension_mm": 8.0,
"coupling_clearance_mm": 1.0,
"input_shaft_insertion_depth_mm": 4.0,
"motor_output_side": "axis_max",
"axis_angle_tolerance_deg": 0.5,
"axis_distance_tolerance_mm": 0.25,
"volume_tolerance_mm3": 0.000001
}
@@ -0,0 +1,17 @@
{
"module_type": "planetary_joint_module",
"motor_step": "../../assets/motors/3500_motor_part2.step",
"housing_step": "../../assets/housings/generated_housing_baseline.step",
"reducer_requirement": "../reducers/simple_2k_h_cascade/simple_2kh_cascade_ratio_9_spur.json",
"placement_policy": "infer_then_write_editable_json",
"motor_to_reducer_relation": "motor_output_to_s1_sun_input",
"housing_relation": "stage_rings_fixed_to_housing",
"joint_output": "s2_carrier_output",
"output_extension_mm": 2.0,
"coupling_clearance_mm": 0.5,
"input_shaft_insertion_depth_mm": 1.0,
"motor_output_side": "axis_max",
"axis_angle_tolerance_deg": 0.5,
"axis_distance_tolerance_mm": 0.25,
"volume_tolerance_mm3": 0.000001
}
@@ -0,0 +1,26 @@
{
"target_ratio": 531.25,
"ratio_tolerance": 0.001,
"topology_family": "ferguson_wolfrom",
"detail_level": "kinematic_demo",
"input": "planet1",
"fixed": "static_carrier",
"output": "output_carrier",
"tooth_form": "spur",
"planet_count_candidates": [3],
"module_candidates_mm": [0.25],
"pressure_angle_deg": 20.0,
"face_width_mm": 6.0,
"backlash_mm": 0.03,
"addendum_coeff": 1.0,
"clearance_coeff": 0.25,
"ring_rim_thickness_mm": 2.5,
"gear_tooth_counts": {
"ring1": 150,
"sun1": 102,
"planet1": 24,
"ring2": 144,
"sun2": 96,
"planet2": 24
}
}
@@ -0,0 +1,25 @@
{
"target_ratio": 1.5,
"ratio_tolerance": 0.000001,
"topology_family": "simple_2k_h",
"input": "ring",
"fixed": "sun",
"output": "carrier",
"tooth_form": "spur",
"planet_count_candidates": [3],
"module_candidates_mm": [0.5],
"pressure_angle_deg": 20.0,
"face_width_mm": 8.0,
"backlash_mm": 0.03,
"addendum_coeff": 1.0,
"clearance_coeff": 0.25,
"ring_rim_thickness_mm": 2.5,
"constraints": {
"max_outer_diameter_mm": 100.0,
"min_planet_neighbor_clearance_mm": 0.3,
"min_sun_teeth": 36,
"max_sun_teeth": 36,
"min_planet_teeth": 18,
"max_planet_teeth": 18
}
}
@@ -0,0 +1,25 @@
{
"target_ratio": 0.3333333333333333,
"ratio_tolerance": 0.000001,
"topology_family": "simple_2k_h",
"input": "carrier",
"fixed": "ring",
"output": "sun",
"tooth_form": "spur",
"planet_count_candidates": [3],
"module_candidates_mm": [0.5],
"pressure_angle_deg": 20.0,
"face_width_mm": 8.0,
"backlash_mm": 0.03,
"addendum_coeff": 1.0,
"clearance_coeff": 0.25,
"ring_rim_thickness_mm": 2.5,
"constraints": {
"max_outer_diameter_mm": 100.0,
"min_planet_neighbor_clearance_mm": 0.3,
"min_sun_teeth": 36,
"max_sun_teeth": 36,
"min_planet_teeth": 18,
"max_planet_teeth": 18
}
}
@@ -0,0 +1,27 @@
{
"target_ratio": 2.0,
"ratio_tolerance": 0.000001,
"topology_family": "simple_2k_h",
"input": "sun",
"fixed": "carrier",
"output": "ring",
"tooth_form": "helical",
"helix_angle_deg": 15.0,
"helix_hand": "right",
"planet_count_candidates": [3],
"module_candidates_mm": [0.5],
"pressure_angle_deg": 20.0,
"face_width_mm": 8.0,
"backlash_mm": 0.03,
"addendum_coeff": 1.0,
"clearance_coeff": 0.25,
"ring_rim_thickness_mm": 2.5,
"constraints": {
"max_outer_diameter_mm": 100.0,
"min_planet_neighbor_clearance_mm": 0.3,
"min_sun_teeth": 36,
"max_sun_teeth": 36,
"min_planet_teeth": 18,
"max_planet_teeth": 18
}
}
@@ -0,0 +1,25 @@
{
"target_ratio": 2.0,
"ratio_tolerance": 0.000001,
"topology_family": "simple_2k_h",
"input": "sun",
"fixed": "carrier",
"output": "ring",
"tooth_form": "spur",
"planet_count_candidates": [3],
"module_candidates_mm": [0.5],
"pressure_angle_deg": 20.0,
"face_width_mm": 8.0,
"backlash_mm": 0.03,
"addendum_coeff": 1.0,
"clearance_coeff": 0.25,
"ring_rim_thickness_mm": 2.5,
"constraints": {
"max_outer_diameter_mm": 100.0,
"min_planet_neighbor_clearance_mm": 0.3,
"min_sun_teeth": 36,
"max_sun_teeth": 36,
"min_planet_teeth": 18,
"max_planet_teeth": 18
}
}
@@ -0,0 +1,28 @@
{
"target_ratio": 7.5,
"ratio_tolerance": 0.01,
"topology_family": "simple_2k_h",
"detail_level": "industrial_core",
"input": "sun",
"fixed": "ring",
"output": "carrier",
"tooth_form": "helical",
"helix_angle_deg": 15.0,
"helix_hand": "right",
"planet_count_candidates": [3],
"module_candidates_mm": [0.5],
"pressure_angle_deg": 20.0,
"face_width_mm": 8.0,
"backlash_mm": 0.03,
"addendum_coeff": 1.0,
"clearance_coeff": 0.25,
"ring_rim_thickness_mm": 2.5,
"constraints": {
"max_outer_diameter_mm": 100.0,
"min_planet_neighbor_clearance_mm": 0.3,
"min_sun_teeth": 20,
"max_sun_teeth": 20,
"min_planet_teeth": 55,
"max_planet_teeth": 55
}
}
@@ -0,0 +1,26 @@
{
"target_ratio": 7.5,
"ratio_tolerance": 0.01,
"topology_family": "simple_2k_h",
"detail_level": "industrial_core",
"input": "sun",
"fixed": "ring",
"output": "carrier",
"tooth_form": "spur",
"planet_count_candidates": [3],
"module_candidates_mm": [0.5],
"pressure_angle_deg": 20.0,
"face_width_mm": 8.0,
"backlash_mm": 0.03,
"addendum_coeff": 1.0,
"clearance_coeff": 0.25,
"ring_rim_thickness_mm": 2.5,
"constraints": {
"max_outer_diameter_mm": 100.0,
"min_planet_neighbor_clearance_mm": 0.3,
"min_sun_teeth": 20,
"max_sun_teeth": 20,
"min_planet_teeth": 55,
"max_planet_teeth": 55
}
}
@@ -0,0 +1,25 @@
{
"target_ratio": 10.0,
"ratio_tolerance": 0.01,
"topology_family": "simple_2k_h",
"input": "sun",
"fixed": "ring",
"output": "carrier",
"tooth_form": "spur",
"planet_count_candidates": [3, 4, 5],
"module_candidates_mm": [0.5, 0.75, 1.0, 1.25, 1.5],
"pressure_angle_deg": 20.0,
"face_width_mm": 8.0,
"backlash_mm": 0.03,
"addendum_coeff": 1.0,
"clearance_coeff": 0.25,
"ring_rim_thickness_mm": 2.5,
"constraints": {
"max_outer_diameter_mm": 100.0,
"min_planet_neighbor_clearance_mm": 0.3,
"min_sun_teeth": 18,
"max_sun_teeth": 80,
"min_planet_teeth": 18,
"max_planet_teeth": 160
}
}
@@ -0,0 +1,25 @@
{
"target_ratio": 2.5,
"ratio_tolerance": 0.01,
"topology_family": "simple_2k_h",
"input": "sun",
"fixed": "ring",
"output": "carrier",
"tooth_form": "spur",
"planet_count_candidates": [3, 4, 5],
"module_candidates_mm": [0.5, 0.75, 1.0, 1.25, 1.5],
"pressure_angle_deg": 20.0,
"face_width_mm": 8.0,
"backlash_mm": 0.03,
"addendum_coeff": 1.0,
"clearance_coeff": 0.25,
"ring_rim_thickness_mm": 2.5,
"constraints": {
"max_outer_diameter_mm": 100.0,
"min_planet_neighbor_clearance_mm": 0.3,
"min_sun_teeth": 18,
"max_sun_teeth": 80,
"min_planet_teeth": 18,
"max_planet_teeth": 160
}
}
@@ -0,0 +1,25 @@
{
"target_ratio": 3.0,
"ratio_tolerance": 0.01,
"topology_family": "simple_2k_h",
"input": "sun",
"fixed": "ring",
"output": "carrier",
"tooth_form": "spur",
"planet_count_candidates": [3, 4, 5],
"module_candidates_mm": [0.5, 0.75, 1.0, 1.25, 1.5],
"pressure_angle_deg": 20.0,
"face_width_mm": 8.0,
"backlash_mm": 0.03,
"addendum_coeff": 1.0,
"clearance_coeff": 0.25,
"ring_rim_thickness_mm": 2.5,
"constraints": {
"max_outer_diameter_mm": 100.0,
"min_planet_neighbor_clearance_mm": 0.3,
"min_sun_teeth": 18,
"max_sun_teeth": 80,
"min_planet_teeth": 18,
"max_planet_teeth": 160
}
}
@@ -0,0 +1,27 @@
{
"target_ratio": 3.0,
"ratio_tolerance": 0.000001,
"topology_family": "simple_2k_h",
"input": "sun",
"fixed": "ring",
"output": "carrier",
"tooth_form": "helical",
"helix_angle_deg": 15.0,
"helix_hand": "right",
"planet_count_candidates": [3],
"module_candidates_mm": [0.5],
"pressure_angle_deg": 20.0,
"face_width_mm": 8.0,
"backlash_mm": 0.03,
"addendum_coeff": 1.0,
"clearance_coeff": 0.25,
"ring_rim_thickness_mm": 2.5,
"constraints": {
"max_outer_diameter_mm": 100.0,
"min_planet_neighbor_clearance_mm": 0.3,
"min_sun_teeth": 36,
"max_sun_teeth": 36,
"min_planet_teeth": 18,
"max_planet_teeth": 18
}
}
@@ -0,0 +1,25 @@
{
"target_ratio": 3.5,
"ratio_tolerance": 0.01,
"topology_family": "simple_2k_h",
"input": "sun",
"fixed": "ring",
"output": "carrier",
"tooth_form": "spur",
"planet_count_candidates": [3, 4, 5],
"module_candidates_mm": [0.5, 0.75, 1.0, 1.25, 1.5],
"pressure_angle_deg": 20.0,
"face_width_mm": 8.0,
"backlash_mm": 0.03,
"addendum_coeff": 1.0,
"clearance_coeff": 0.25,
"ring_rim_thickness_mm": 2.5,
"constraints": {
"max_outer_diameter_mm": 100.0,
"min_planet_neighbor_clearance_mm": 0.3,
"min_sun_teeth": 18,
"max_sun_teeth": 80,
"min_planet_teeth": 18,
"max_planet_teeth": 160
}
}
@@ -0,0 +1,25 @@
{
"target_ratio": 4.0,
"ratio_tolerance": 0.01,
"topology_family": "simple_2k_h",
"input": "sun",
"fixed": "ring",
"output": "carrier",
"tooth_form": "spur",
"planet_count_candidates": [3, 4, 5],
"module_candidates_mm": [0.5, 0.75, 1.0, 1.25, 1.5],
"pressure_angle_deg": 20.0,
"face_width_mm": 8.0,
"backlash_mm": 0.03,
"addendum_coeff": 1.0,
"clearance_coeff": 0.25,
"ring_rim_thickness_mm": 2.5,
"constraints": {
"max_outer_diameter_mm": 100.0,
"min_planet_neighbor_clearance_mm": 0.3,
"min_sun_teeth": 18,
"max_sun_teeth": 80,
"min_planet_teeth": 18,
"max_planet_teeth": 160
}
}
@@ -0,0 +1,25 @@
{
"target_ratio": 5.0,
"ratio_tolerance": 0.01,
"topology_family": "simple_2k_h",
"input": "sun",
"fixed": "ring",
"output": "carrier",
"tooth_form": "spur",
"planet_count_candidates": [3, 4, 5],
"module_candidates_mm": [0.5, 0.75, 1.0, 1.25, 1.5],
"pressure_angle_deg": 20.0,
"face_width_mm": 8.0,
"backlash_mm": 0.03,
"addendum_coeff": 1.0,
"clearance_coeff": 0.25,
"ring_rim_thickness_mm": 2.5,
"constraints": {
"max_outer_diameter_mm": 100.0,
"min_planet_neighbor_clearance_mm": 0.3,
"min_sun_teeth": 18,
"max_sun_teeth": 80,
"min_planet_teeth": 18,
"max_planet_teeth": 160
}
}
@@ -0,0 +1,25 @@
{
"target_ratio": 6.0,
"ratio_tolerance": 0.01,
"topology_family": "simple_2k_h",
"input": "sun",
"fixed": "ring",
"output": "carrier",
"tooth_form": "spur",
"planet_count_candidates": [3, 4, 5],
"module_candidates_mm": [0.5, 0.75, 1.0, 1.25, 1.5],
"pressure_angle_deg": 20.0,
"face_width_mm": 8.0,
"backlash_mm": 0.03,
"addendum_coeff": 1.0,
"clearance_coeff": 0.25,
"ring_rim_thickness_mm": 2.5,
"constraints": {
"max_outer_diameter_mm": 100.0,
"min_planet_neighbor_clearance_mm": 0.3,
"min_sun_teeth": 18,
"max_sun_teeth": 80,
"min_planet_teeth": 18,
"max_planet_teeth": 160
}
}
@@ -0,0 +1,25 @@
{
"target_ratio": 7.5,
"ratio_tolerance": 0.01,
"topology_family": "simple_2k_h",
"input": "sun",
"fixed": "ring",
"output": "carrier",
"tooth_form": "spur",
"planet_count_candidates": [3, 4, 5],
"module_candidates_mm": [0.5, 0.75, 1.0, 1.25, 1.5],
"pressure_angle_deg": 20.0,
"face_width_mm": 8.0,
"backlash_mm": 0.03,
"addendum_coeff": 1.0,
"clearance_coeff": 0.25,
"ring_rim_thickness_mm": 2.5,
"constraints": {
"max_outer_diameter_mm": 100.0,
"min_planet_neighbor_clearance_mm": 0.3,
"min_sun_teeth": 18,
"max_sun_teeth": 80,
"min_planet_teeth": 18,
"max_planet_teeth": 160
}
}
@@ -0,0 +1,25 @@
{
"target_ratio": 8.0,
"ratio_tolerance": 0.01,
"topology_family": "simple_2k_h",
"input": "sun",
"fixed": "ring",
"output": "carrier",
"tooth_form": "spur",
"planet_count_candidates": [3, 4, 5],
"module_candidates_mm": [0.5, 0.75, 1.0, 1.25, 1.5],
"pressure_angle_deg": 20.0,
"face_width_mm": 8.0,
"backlash_mm": 0.03,
"addendum_coeff": 1.0,
"clearance_coeff": 0.25,
"ring_rim_thickness_mm": 2.5,
"constraints": {
"max_outer_diameter_mm": 100.0,
"min_planet_neighbor_clearance_mm": 0.3,
"min_sun_teeth": 18,
"max_sun_teeth": 80,
"min_planet_teeth": 18,
"max_planet_teeth": 160
}
}
@@ -0,0 +1,44 @@
{
"target_ratio": 6.0,
"ratio_tolerance": 0.000001,
"topology_family": "simple_2k_h_cascade",
"tooth_form": "spur",
"planet_count_candidates": [3],
"module_candidates_mm": [0.5],
"pressure_angle_deg": 20.0,
"face_width_mm": 8.0,
"backlash_mm": 0.03,
"addendum_coeff": 1.0,
"clearance_coeff": 0.25,
"ring_rim_thickness_mm": 2.5,
"constraints": {
"max_outer_diameter_mm": 100.0,
"min_planet_neighbor_clearance_mm": 0.3,
"min_sun_teeth": 36,
"max_sun_teeth": 36,
"min_planet_teeth": 18,
"max_planet_teeth": 18
},
"stages": [
{
"stage_id": "s1",
"input": "sun",
"fixed": "ring",
"output": "carrier",
"planet_count_candidates": [3],
"module_candidates_mm": [0.5]
},
{
"stage_id": "s2",
"input": "sun",
"fixed": "carrier",
"output": "ring",
"planet_count_candidates": [3],
"module_candidates_mm": [0.5]
}
],
"cascade": {
"coupling_policy": "stage_output_to_next_stage_input",
"stage_gap_mm": 2.0
}
}
@@ -0,0 +1,46 @@
{
"target_ratio": 9.0,
"ratio_tolerance": 0.000001,
"topology_family": "simple_2k_h_cascade",
"tooth_form": "helical",
"helix_angle_deg": 15.0,
"helix_hand": "right",
"planet_count_candidates": [3],
"module_candidates_mm": [0.5],
"pressure_angle_deg": 20.0,
"face_width_mm": 8.0,
"backlash_mm": 0.03,
"addendum_coeff": 1.0,
"clearance_coeff": 0.25,
"ring_rim_thickness_mm": 2.5,
"constraints": {
"max_outer_diameter_mm": 100.0,
"min_planet_neighbor_clearance_mm": 0.3,
"min_sun_teeth": 36,
"max_sun_teeth": 36,
"min_planet_teeth": 18,
"max_planet_teeth": 18
},
"stages": [
{
"stage_id": "s1",
"input": "sun",
"fixed": "ring",
"output": "carrier",
"planet_count_candidates": [3],
"module_candidates_mm": [0.5]
},
{
"stage_id": "s2",
"input": "sun",
"fixed": "ring",
"output": "carrier",
"planet_count_candidates": [3],
"module_candidates_mm": [0.5]
}
],
"cascade": {
"coupling_policy": "stage_output_to_next_stage_input",
"stage_gap_mm": 2.0
}
}
@@ -0,0 +1,44 @@
{
"target_ratio": 9.0,
"ratio_tolerance": 0.000001,
"topology_family": "simple_2k_h_cascade",
"tooth_form": "spur",
"planet_count_candidates": [3],
"module_candidates_mm": [0.5],
"pressure_angle_deg": 20.0,
"face_width_mm": 8.0,
"backlash_mm": 0.03,
"addendum_coeff": 1.0,
"clearance_coeff": 0.25,
"ring_rim_thickness_mm": 2.5,
"constraints": {
"max_outer_diameter_mm": 100.0,
"min_planet_neighbor_clearance_mm": 0.3,
"min_sun_teeth": 36,
"max_sun_teeth": 36,
"min_planet_teeth": 18,
"max_planet_teeth": 18
},
"stages": [
{
"stage_id": "s1",
"input": "sun",
"fixed": "ring",
"output": "carrier",
"planet_count_candidates": [3],
"module_candidates_mm": [0.5]
},
{
"stage_id": "s2",
"input": "sun",
"fixed": "ring",
"output": "carrier",
"planet_count_candidates": [3],
"module_candidates_mm": [0.5]
}
],
"cascade": {
"coupling_policy": "stage_output_to_next_stage_input",
"stage_gap_mm": 2.0
}
}