Assembly API
Assembly 领域把可复用 Item 定义与已放置实例分开。Part 持有 Body Geometry 与 Part 元数据;Component 把 Part 或子 Assembly 放置在父 Assembly 中。
产品结构
| 类型 | 身份与作用 |
|---|---|
Part | part_id、Body、可选 Name、Material 与 Connector |
Assembly | assembly_id、Component、Assembly Connector、Constraint 与 Grounded ID |
Component | 唯一实例 ID、引用的 Item 与 Placement |
Placement | 刚性右手变换 |
Material | 显式工程属性与外观元数据 |
body = cad.make_box_rsolid(60.0, 40.0, 4.0)
part = cad.make_part_rpart("base", body, name="Base plate")
assembly = cad.make_assembly_rassembly("fixture")
assembly = cad.add_component_rassembly(
assembly,
part,
component_id="base-1",
placement=cad.make_placement_rplacement((0.0, 0.0, 0.0)),
)
ID 必须非空且在所属 Scope 中唯一。更新辅助函数返回新产品值。
Placement
Placement 包含 Origin 和正交归一轴。公共辅助函数可创建 Identity、平移与 Z 旋转 Placement,组合与求逆 Transform,并计算相对 Placement。组合顺序有明确含义:Placement 从根 Assembly 传播到每个实例。
Connector
Connector 通过显式 Placement 或 Face、Edge、Vertex Geometry Reference 表达稳定装配意图。ConnectorRef 标识 Constraint 使用的 Component 与 Connector。
Connector Resolution 会验证 Component Path 和底层引用。Forwarded Connector 可在父 Assembly 边界暴露子 Item 接口,无需展平层级。
Constraint
| 约束 | 运动意图 |
|---|---|
| Fixed | 消除相对刚体运动 |
| Revolute | 只允许绕一个轴旋转 |
| Prismatic | 只允许沿一个轴平移 |
| Gear | 按 Ratio 耦合角运动 |
| Belt | 通过节圆关系耦合 Pulley 运动 |
| Rack-pinion | 耦合旋转与线性位移 |
至少 Ground 一个合适的 Component,或以其他方式提供稳定参考。solve_assembly_constraints_rassembly(..., strict=False) 返回更新后的 Placement;inspect_assembly_constraints_rconstraintreport(...) 提供残差与诊断;发布边界使用严格求解。
输出与相邻领域
make_compound_from_assembly_rcompound 把已放置实例下沉为组合几何。运动学约束只描述允许的运动,不描述刚度、摩擦、预紧或分布式表面接触;这些声明分别属于物理连接与仿真交接。
全部符号见 51 个 Assembly API。