Cutbrepsplanes 多平面分割曲面 · CutBreps

用多个平面依次分割多重曲面,输出所有分割后的碎片
📂 LK → Brep 📄 CutBrepsByPlanes.cs ✂️ 多平面切割 secondary

📖 功能概述

这是 CutBrepsByPlane多平面版本。它接收一个平面列表,按顺序用每个平面对模型进行依次切割,每一步切割都将已有碎片再次分割,最终输出所有切割碎片。

🧊 🔪 🧩🧩🧩
一个多重曲面 + N个切割平面 → N+1个碎片

📥 输入参数

名称类型必填说明
多重曲面 (B) Brep 必需 需要被分割的多重曲面(单个)
平面 (P) Plane 必需 切割平面列表。按顺序依次对模型进行切割
加盖 (C) Boolean 必需
(参数顺序原因)
是否对切割碎片加盖(默认 true)。
注意:这个参数在输入列表中排在第三位,先于"精度"
精度 (T) Number 可选 切割容差,默认使用 Rhino 文档的页面绝对容差
(注意:与 CutBrepsByPlane 的默认值来源不同)
⚠️ 参数顺序提示:该组件的加盖 (C) 是第三个参数(索引2),排在"精度"之前。连接时请注意顺序:B → P → C → T。

📤 输出参数

名称类型说明
分割后结果 (B) Brep 所有切割完成后产生的 Brep 碎片(列表)。数量 = 平面数 + 1(当所有平面都不重叠时)

🧠 核心流程

1
输入Brep + 平面列表
2
对每个平面
迭代切割
3
输出所有碎片

🔁 迭代逻辑详解

组件维护一个 currentBreps 列表,初始包含输入的单个 Brep。然后对每个切割平面

  1. 遍历 currentBreps 中的每个 Brep
  2. 对每个 Brep,用当前平面执行正向切割(Trim),获取一侧碎片
  3. 再用翻转平面执行反向切割,获取另一侧碎片
  4. 所有碎片(已加盖)加入 newBreps
  5. 处理完当前平面上所有 Brep 后,newBreps 成为新的 currentBreps
  6. 进入下一个平面的迭代
💡 迭代效果:3个平面 + 1个 Brep,会在第1个平面后切成2片,第2个平面后切成3片,第3个平面后切成4片。但注意,如果平面之间有重叠或平行,结果数量可能少于 N+1。

🔍 与"单平面分割"的对比

特性单平面分割 (SBP)多平面分割 (CB)
输入平面单个平面平面列表
输出端口2个(上方 / 下方)1个(所有碎片)
切割逻辑一次正切+一次反切逐平面迭代,累积切割
加盖默认值true(可选参数)true(必需参数,位于第三位)
精度默认值ModelAbsoluteTolerancePageAbsoluteTolerance
最佳用途仅需一分为二需要切成多段

🧪 典型使用场景

⚠️ 注意事项

📋 组件信息

名称多平面分割曲面
英文名CutBreps (CB)
分类LK → Brep
Exposuresecondary(二级标签页可见)
基类GH_Component
GUID3363C596-9658-46D4-A4AF-C5203BB9CF5E