2.6 KiB
2.6 KiB
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、axisgear_type: 外齿轮填external,内齿圈填internal,非齿轮填nullrepeat: 单个构件填single,按行星数量重复的行星轮填planet_countstage_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 = carrierring --internal_mesh--> planet,carrier_ref = carrierplanet --revolute_joint--> carriersun/ring/carrier --coaxial--> main_axisring --fixed--> housings1_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。