Cutbreps 单平面分割多重曲面 · SplitBrepByPlane

用单个平面分割多重曲面,分别输出平面上方和下方部分
📂 LK → Brep 📄 CutBrepsByPlane.cs 🔪 平面分割 secondary

📖 功能概述

这是一个单平面分割组件,用一个切割平面将多重曲面一分为二,并分别输出平面两侧的部分。类似于在 Rhino 中使用 Split 命令后用 Trim 保留两侧的效果。

多重曲面
输入模型
上方
下方
一分为二

📥 输入参数

名称类型必填说明
多重曲面 (B) Brep 必需 需要被分割的多重曲面(单个)
平面 (P) Plane 必需 切割平面。平面法向量指向的方向(Z 轴正方向)将判定为"上方"
加盖 (C) Boolean 可选 是否对切割后的开放边缘加盖(默认 true)。开启后切割结果会被补成封闭实体
精度 (T) Number 可选 切割精度容差,默认使用 Rhino 文档的模型绝对容差

📤 输出参数

名称类型说明
上方结果 (A) Brep 平面上方一侧的部分(列表)。平面法向量指向的方向
下方结果 (B) Brep 平面下方一侧的部分(列表)。与法向量相反的方向

🧠 核心流程

1
输入Brep + 平面
2
正切:上方Trim
3
加盖 + Flip修正
4
反切:下方Trim
5
加盖 + Flip修正
6
输出两侧结果
🔧 如何区分上下:组件通过创建翻转平面(交换 X/Y 轴)来实现两侧切割。原始平面法向量方向为"上方",翻转后的平面法向量方向为"下方"。两次 Brep.Trim() 分别得到两侧物体。

🔄 加盖与法向修正

加盖选项开启时,组件对每个切割后的 Brep 执行:

  1. CapPlanarHoles() — 将所有平面孔洞补面,将曲面封闭为实体
  2. 法向检查 — 检查封闭后实体的朝向(SolidOrientation
  3. Flip — 若法向朝内(Inward),执行翻转使其朝外
💡 实用建议:大多数情况下建议开启加盖,这样输出的实体可以直接用于后续的布尔运算。如果不加盖,输出的是开放曲面(multi-face Brep),适合展平或曲面分析场景。

🧪 典型使用场景

⚠️ 注意事项

📋 组件信息

名称单平面分割多重曲面
英文名SplitBrepByPlane (SBP)
分类LK → Brep
Exposuresecondary(二级标签页可见)
基类GH_Component
GUIDC8BFC937-9F3E-44D9-BE29-01B6A13A5354