Files
reducers/backend/skill/references/topology-json-authoring-guide.md
T

2.6 KiB
Raw Blame History

Topology JSON Authoring Guide

这份说明给只负责创建构型 JSON 的机械工程师使用。构型 JSON 只描述机械构件和关系,不填写齿数、模数、目标速比、三维坐标或输出文件。

文件位置

src/configurations/<family_name>/topology.template.json

family_name 必须和 JSON 顶层 family 一致。

顶层字段

{
  "template_id": "<family>_v0_1",
  "family": "<family>",
  "description": "one sentence",
  "nodes": [],
  "relations": []
}

node 字段

每个 node 表示一个构件或参考对象:

{
  "id": "sun",
  "kind": "gear",
  "role": "sun",
  "gear_type": "external",
  "repeat": "single",
  "formula_ref": "nodes.sun",
  "stage_id": null,
  "local_role": "sun"
}

填写规则:

  • kind: gear、carrier、housing、axis
  • gear_type: 外齿轮填 external,内齿圈填 internal,非齿轮填 null
  • repeat: 单个构件填 single,按行星数量重复的行星轮填 planet_count
  • stage_id/local_role: 多级构型用于表达级内角色;单级可以省略或填 null

不要在模板里手写 planet_1..planet_n。只写一个 planet,并设置 repeat = planet_count。

relation 字段

每个 relation 表示构件之间的机械关系:

{
  "id": "sun_planet_external_mesh",
  "source": "sun",
  "target": "planet",
  "relation_type": "external_mesh",
  "carrier_ref": "carrier",
  "mesh_id": "sun_planet",
  "formula_ref": "relations.sun_planet_external_mesh",
  "stage_id": null
}

允许的 relation_type:

external_mesh
internal_mesh
revolute_joint
coaxial
fixed
rigid

常用关系:

  • sun --external_mesh--> planet,carrier_ref = carrier
  • ring --internal_mesh--> planet,carrier_ref = carrier
  • planet --revolute_joint--> carrier
  • sun/ring/carrier --coaxial--> main_axis
  • ring --fixed--> housing
  • s1_output --rigid--> s2_input

不要填写的内容

不要在 topology JSON 中填写:

  • 目标速比
  • 齿数
  • 模数
  • 行星数量候选
  • 坐标和轴线
  • STEP 路径
  • 材料和颜色
  • 验证结果

这些内容分别属于 requirement、参数求解、PlacementPlan、CAD 输出和 validation report。

提交前检查

  • template_id 唯一。
  • family 和目录名一致。
  • 所有 relation 的 source/target/carrier_ref 都能在 nodes 中找到。
  • 齿轮 gear_type 正确。
  • 行星轮使用 repeat = planet_count。
  • 行星啮合填写了 carrier_ref。
  • 所有主运动构件都有 coaxial 到 main_axis。
  • 固定关系用 fixed,刚性连接用 rigid。
  • 没有使用未注册 relation type。