📖 功能概述
这是一个单平面分割组件,用一个切割平面将多重曲面一分为二,并分别输出平面两侧的部分。类似于在 Rhino 中使用 Split 命令后用 Trim 保留两侧的效果。
- 输入的平面决定了切割方向和位置,平面上方和下方区域分别输出到两个端口
- 支持对切割后的开放边缘自动加盖(CapPlanarHoles),将曲面补成封闭实体
- 加盖后若实体法向翻转(向内),自动执行
Flip 修正
- 可自定义切割精度容差,适应不同精度的模型
📥 输入参数
| 名称 | 类型 | 必填 | 说明 |
| 多重曲面 (B) |
Brep |
必需 |
需要被分割的多重曲面(单个) |
| 平面 (P) |
Plane |
必需 |
切割平面。平面法向量指向的方向(Z 轴正方向)将判定为"上方" |
| 加盖 (C) |
Boolean |
可选 |
是否对切割后的开放边缘加盖(默认 true)。开启后切割结果会被补成封闭实体 |
| 精度 (T) |
Number |
可选 |
切割精度容差,默认使用 Rhino 文档的模型绝对容差 |
📤 输出参数
| 名称 | 类型 | 说明 |
| 上方结果 (A) |
Brep |
平面上方一侧的部分(列表)。平面法向量指向的方向 |
| 下方结果 (B) |
Brep |
平面下方一侧的部分(列表)。与法向量相反的方向 |
🧠 核心流程
🔧 如何区分上下:组件通过创建翻转平面(交换 X/Y 轴)来实现两侧切割。原始平面法向量方向为"上方",翻转后的平面法向量方向为"下方"。两次 Brep.Trim() 分别得到两侧物体。
🔄 加盖与法向修正
当加盖选项开启时,组件对每个切割后的 Brep 执行:
- CapPlanarHoles() — 将所有平面孔洞补面,将曲面封闭为实体
- 法向检查 — 检查封闭后实体的朝向(
SolidOrientation)
- Flip — 若法向朝内(Inward),执行翻转使其朝外
💡 实用建议:大多数情况下建议开启加盖,这样输出的实体可以直接用于后续的布尔运算。如果不加盖,输出的是开放曲面(multi-face Brep),适合展平或曲面分析场景。
🧪 典型使用场景
- 切割建筑体块 — 用水平面切割建筑模型,分别输出地上和地下部分
- 截面分析 — 沿指定平面切开模型,分别查看两侧的内部结构
- 模型分件 — 用平面分割大模型为两个部件,单独进行后续处理
- 水面上下分割 — 用水平面分割船体或水工结构,分别处理水上/水下部分
⚠️ 注意事项
- 如果分割失败(Brep.Trim 返回 null),组件会跳过该部分输出空列表
- 加盖仅对平面孔洞有效,曲面孔洞无法自动补面
- 对于拓扑复杂的模型,建议逐步提高精度容差来获得更稳定的分割结果
- 精度的默认值来自
RhinoDoc.ActiveDoc.ModelAbsoluteTolerance,建议保持默认
📋 组件信息
| 名称 | 单平面分割多重曲面 |
| 英文名 | SplitBrepByPlane (SBP) |
| 分类 | LK → Brep |
| Exposure | secondary(二级标签页可见) |
| 基类 | GH_Component |
| GUID | C8BFC937-9F3E-44D9-BE29-01B6A13A5354 |