跳到主要内容

零件与装配

CadFlow 产品层将可复用零件几何与装配中的实例分开。Part 拥有 Body,并可附加连接器或材料;装配 Component 则通过 Component ID 和 Placement 引用零件或子装配。

该高层 API 属于内置兼容功能层,可从 cadflowcadflow.assembly 公共入口访问。

在多个位置复用同一零件

import cadflow as cad


bolt_body = cad.make_cylinder_rsolid(1.0, 2.0)
bolt_part = cad.make_part_rpart("bolt", bolt_body, name="M2 bolt")

assembly = cad.make_assembly_rassembly("fixture")
assembly = cad.add_component_rassembly(
assembly,
bolt_part,
component_id="bolt_left",
placement=cad.make_placement_rplacement(origin=(-5.0, 0.0, 0.0)),
)
assembly = cad.add_component_rassembly(
assembly,
bolt_part,
component_id="bolt_right",
placement=cad.make_placement_rplacement(origin=(5.0, 0.0, 0.0)),
)

compound = cad.make_compound_from_assembly_rcompound(assembly)

产品对象按函数式方式更新。应接收 add_component_rassembly 的返回值,而不是期待原地修改。

显式分配材料

Part 创建与材料分配是两个独立操作:

aluminum = cad.make_material_rmaterial(
"aluminum_6061",
name="Aluminum 6061",
density=2.7e-6,
density_unit="kg/mm^3",
color=(0.70, 0.70, 0.75),
)
plate = cad.make_part_rpart("base_plate", plate_body, name="Base plate")
plate = cad.assign_material_rpart(plate, aluminum)

单位和工程属性始终显式指定;CadFlow 不会根据材料名称推断数值。

使用连接器表达设计意图

连接器标识零件或装配上稳定的配合坐标系或拓扑。公共构造器支持 Placement、Face、Edge 和 Vertex Connector。约束通过 Component ID 与 Connector ID 引用接口,而不是依赖临时变换。

典型流程:

  1. 创建 Part Body。
  2. 给 Part 添加命名连接器。
  3. 把 Part 实例加入 Assembly。
  4. 固定一个 Component 或提供其他参考。
  5. 添加固定、旋转、移动、齿轮、带或齿条-齿轮约束。
  6. 求解并检查 ConstraintReport
solved = cad.solve_assembly_constraints_rassembly(assembly, strict=False)
report = cad.inspect_assembly_constraints_rconstraintreport(solved)
if not report.ok:
for residual in report.residuals:
print(residual)

发布流水线中若未求解或冲突约束必须立即失败,应使用 strict=True

运动学与物理连接

装配约束回答允许哪些相对运动cadflow.physical 描述零件在哪里连接,以及降阶接口如何承载载荷。真实 Face 之间的分布式接触属于 cadflow.simulation 与下游连续体求解器。

不要把刚度、摩擦、预紧力或强度编码成运动学约束。应选择拥有该物理主张的层。

嵌套装配

Assembly 可以包含 Part 或子 Assembly。Placement 从根节点组合至各叶节点。每一层都应使用稳定且唯一的 Component ID;转发连接器可以在不扁平化产品结构的前提下暴露子装配接口。