03 Assembly:实例、定位与区域组织
Part 定义一个部件,Assembly 将部件的实例放到全局坐标中。分析对象是装配中的实例:即使已经画好部件,也需要创建实例才能参与当前装配分析。
前置:02 Property。示例来自 悬臂梁完整案例。
1. Part、Instance、Assembly 的关系
Part:Beam
├─ Instance:Beam-1
└─ Instance:Beam-2(如果需要第二根梁)
↓
Root Assembly同一个 Part 可以创建多个实例,每个实例可以有自己的空间位置。Dependent 实例共享源部件的几何与网格;实例平移并不是修改部件的草图尺寸。
部件、实例和装配是不同层级,同名集合也可能处于不同层级。脚本和后处理应同时明确对象层级及名称。Assembly Definition
2. Dependent 与 Independent
| 实例方式 | 网格操作思路 | 典型用途 |
|---|---|---|
| Dependent | 在源 Part 上生成网格,实例共享部件网格 | 重复部件、统一网格策略 |
| Independent | 在装配中的实例上进行网格操作 | 不同实例需要各自的网格 |
Independent 实例保存原部件的几何副本,可分别划网格、分区或创建虚拟拓扑;它仍是装配实例,并不会在 Parts 中自动生成一个新的部件条目。同一源部件不能同时创建 Dependent 与 Independent 两种实例。Dependent and independent part instances
本例选 Dependent,网格在 Beam 部件上生成。
3. 装配的一般步骤
- Create Instance:选择源部件,确认实例类型。
- 用 Translate、Rotate 或定位约束安排位置;旋转时明确轴和角度。
- 查询接触面间的距离、间隙、是否重叠及坐标方向。
- 创建后续会反复使用的 Set、Surface、Reference Point。
- 在修改几何或网格后重新检查区域选择。
装配中的定位约束用于确定实例的位置,不等同于求解时的接触或力学连接。两个面在画面中贴合,也不意味着它们已经绑定。
4. Set、Surface 与 Reference Point
| 对象 | 表达什么 | 常见用途 |
|---|---|---|
| Set | 一组几何实体、节点或单元 | 约束、材料区域、输出区域 |
| Surface | 带表面信息的区域 | 面力、接触、耦合 |
| Reference Point(RP) | 参考位置与相关自由度 | 刚体控制、耦合加载 |
命名优先用 FixedEnd、TipSurface,而不是无法反映用途的 Set-17。RP 创建后不会自动把附近节点连起来,需要后续建立刚体或耦合等关系。
5. 悬臂梁中的区域
创建 Beam-1,不平移、不旋转。建立:
FixedEnd:X=0 的整个端面,用于固定约束。TipSurface:X=100 的整个端面,用于 −Y 面力。FixedNodes:固定端节点,用于求支反力之和。TipNodes:自由端节点,用于平均 U2。
前两个区域可以按几何创建;后两个必须等待网格生成。本例网格为 2 mm,每个端面有 6×6=36 个节点。
# 片段:model 与已划分网格的 part 已存在
from abaqusConstants import CARTESIAN, ON
a = model.rootAssembly
a.DatumCsysByDefault(CARTESIAN)
inst = a.Instance(name='Beam-1', part=part, dependent=ON)
fixed = inst.faces.findAt(((0.0, 0.0, 5.0),))
a.Set(name='FixedEnd', faces=fixed)findAt 的点应落在目标面的内部,避免恰好选到多个面共享的边。批量模型可使用带容差的坐标范围选取,但应检查选中对象数量,不能假定选择永远有效。
6. 常见错误
| 现象 | 检查方向 |
|---|---|
| 部件存在但装配为空 | 是否创建实例,实例是否被 suppress |
| 零件一起掉落或穿过 | 尚未定义力学连接,或连接区域不正确 |
| 施力方向不符 | 旋转后的实例与全局/局部坐标混淆 |
| 集合为空 | 网格尚未生成、坐标容差不合适或拓扑已变 |
| 两个相邻体不传力 | 几何接触不等于共享节点或接触定义 |
完成标准:实例数量与位置正确;需要传力的位置明确;关键 Set 和 Surface 非空且可复查。
继续操作前先完成 Step 设置,再阅读 04 Interaction 判断连接方式。