Files
reducers/backend/skill/references/reducer-generation-flow.md
T

2.7 KiB

Reducer Generation Flow

1. 确认项目根目录

工作目录必须是项目根目录,并且至少包含:

pyproject.toml
src/
input/
output/

如果这些目录不存在,不要猜测路径,也不要在其他目录生成文件。先报告 project_root_not_found。

2. 选择输入

普通减速器 requirement 必须来自:

input/requirements/reducers/

关节模组 requirement 必须来自:

input/requirements/joint_modules/

自动关节设计使用的电机 STEP 和外壳 Python 必须来自:

input/assets/

不要读取旧 output/runs 的结果作为本次设计依据。旧输出只能用于用户明确要求“查看历史结果”时读取,不能作为验证通过依据。

3. 执行 reducer run

优先使用一条 run 命令完成求解、CAD 生成、读回和验证:

PYTHONPATH=/Users/lk/Projects/cadSet/SimpleCADAPI/src:. \
/Users/lk/miniconda3/bin/python -m src.cli run \
  --input input/requirements/reducers/simple_2k_h/simple_2kh_industrial_ratio_7p5_spur.json \
  --output output/runs/industrial_ratio_7p5_spur

只有调试单阶段问题时才拆开执行 solve、generate、validate。

4. 执行 joint-run

关节模组使用:

PYTHONPATH=/Users/lk/Projects/cadSet/SimpleCADAPI/src:. \
/Users/lk/miniconda3/bin/python -m src.cli joint-run \
  --input input/requirements/joint_modules/3500_motor_housing.json \
  --output output/runs/joint_3500_motor_housing

执行后必须读取:

output/runs/<run>/joint_module_validation_report.json
output/runs/<run>/joint_module_manifest.json

5. 执行 auto-joint-run

自动关节设计使用:

PYTHONPATH=/Users/lk/Projects/cadSet/SimpleCADAPI/src:. \
/Users/lk/miniconda3/bin/python -m src.cli auto-joint-run \
  --motor-step input/assets/motors/3500_motor_part2.step \
  --housing-python input/assets/housings/gear_housing.py \
  --output output/runs/auto_joint_3500

如果外壳包络不足、轴线识别失败或几何干涉失败,必须报告失败,不能调整报告为通过。

6. 判断结果

Reducer run 成功标准:

validation/validation_report.json overall_passed == true
cad/reducer.step exists and non-empty
placement/placement_plan.json exists

Joint run 成功标准:

joint_module_validation_report.json overall_passed == true
joint_module.step exists and non-empty
reducer/validation/validation_report.json exists

7. 返回给用户

必须返回 Markdown 文件链接,例如:

[reducer.step](</absolute/path/output/runs/name/cad/reducer.step>)
[validation_report.json](</absolute/path/output/runs/name/validation/validation_report.json>)

不要只返回纯路径。