📖 功能概述
这是 LK 工具集中用于在型材路径上按指定参考点创建剖面的组件。适用于 LK 系统创建的型材模型,能够自动提取型材的路径、截面形状及相关几何元素(内部切割体、圆孔、沉头孔、机丝孔等),在用户指定的位置生成完整的剖面数据。
- 输入型材模型和参考点,自动在路径上计算垂直平面并生成剖面
- 提取型材对象的全部几何元数据(路径、截面、端部切面、内部切割体、各类孔)
- 智能碰撞检测,将偏移的孔几何体移动至剖面位置
- 输出结构化
TrimResults 数据,可与 TrimresultCom / TrimresultTS 配合使用
📥 输入参数
| 名称 | 类型 | 必填 | 说明 |
| 型材 (B) |
Brep |
必需 |
LK 系统创建的型材模型(单个 Brep)。必须包含存储在 Rhino 对象属性中的型材几何体元数据(路径、截面、切割体等) |
| 指定点 (P) |
Point |
必需 |
剖面位置参考点(列表)。每个点将在型材路径上映射到最近的截面位置 |
📤 输出参数
| 名称 | 类型 | 说明 |
| 剖面结果 (S) |
Generic |
结构化剖面数据(TrimResults),包含剖面平面、截面形状、内部铣切曲面、圆孔/沉头孔/机丝孔的切割结果 |
🧠 核心流程
🔍 步骤 2 详细:几何元数据提取
组件通过 Rhino 的 ObjectAttributes 从型材模型中读取存储的 ArchivableDictionary 数据,提取以下几何元素:
- 拉伸路径 (Rail) — 型材的放样/拉伸路径曲线
- 截面形状 (Shape) — 型材的截面轮廓 Brep
- 截面平面 (SectionPlane) — 截面所在的平面
- 起端切面 / 终端切面 — 两端的切割面
- 内部切割体 (Cuts) — 型材内部的铣切区域
- 圆孔 (Hos) — 圆形通孔
- 沉头孔 (Cts) — 沉头孔区域
- 机丝孔 (Jss) — 机丝孔(螺纹孔)区域
🔧 步骤 3-4 详细:剖面计算
- 计算垂直平面:使用
CurveFrameCalculator 计算每个参考点在路径上的最近点,生成垂直于路径的平面
- 平面对齐:使用
PlaneAligner 将对齐平面旋转到与截面平面一致的朝向
- 截面变换:将截面形状从原始位置变换到目标剖面位置
- 布尔切割:使用
BooleanTrimCalculator 计算内部切割体、圆孔、沉头孔、机丝孔与截面的交集区域(即剖面中被切掉的部分)
- 对各类孔几何体执行碰撞检测,当孔体与截面不相交时,自动将其平移至剖面平面再进行切割
📦 输出数据结构
组件输出的是 TrimResults 结构化数据,包含以下字段:
| 字段 | 类型 | 说明 |
| Pln | Plane | 剖面所在的平面位置 |
| Shap | Brep | 剖面位置的截面形状 |
| Incuts | Brep[] | 内部铣切区域(在剖面中移除的部分) |
| Hocuts | Brep[] | 圆孔切割区域 |
| Ctcuts | Brep[] | 沉头孔切割区域 |
| Jscuts | Brep[] | 机丝孔切割区域 |
💡 配合组件:输出数据可与 剖面结果分解 (TrimresultCom / DT) 或 剖面数据变换 (TrimresultTS / DTS) 配合使用,进行后续处理。
🧪 典型使用场景
- 型材任意位置截面查看 — 在 LK 系统创建的型材上指定任意点,快速生成该位置的详细截面图
- 批量生成施工图剖面 — 在型材路径上布置多个参考点,一次性生成所有位置的剖面数据
- 配合 TrimresultCom 进行剖面分解 — 将结构化的剖面数据分解为几何层次(截面轮廓、内部切割、各类孔),用于标注或出图
⚠️ 注意事项
- 型材模型必须由 LK 系统创建,因为组件依赖存储在 Rhino 对象属性中的几何体元数据(ArchivableDictionary)
- 如果组件提示"无法找到对应的 Rhino 对象",请确保输入的是烘焙到 Rhino 文档中的型材,而非纯计算几何体
- 型材路径曲线将用于计算垂直平面,因此路径必须足够平滑,避免急转弯导致剖面平面异常
- 孔几何体(圆孔、沉头孔、机丝孔)的碰撞检测采用边界盒检测,性能较高
📋 组件信息
| 名称 | 指定点创建剖面 |
| 英文名 | BrepSection (BS) |
| 分类 | LK → Brep |
| Exposure | tertiary(三级标签页可见) |
| 基类 | GH_Component |
| GUID | A4332207-C6A9-4898-9206-61F0B6E86BD5 |