布尔交集 布尔交集 · BooleanIntersection

计算一个目标曲面与多个切割体的重叠交集部分
📂 LK → Brep 📄 SolidIntersection.cs ⚡ 多线程 secondary

📖 功能概述

计算一个基础曲面多个其他曲面之间的布尔交集,返回所有重叠部分的几何体。核心特性:

💡 与布尔差集的对比:差集是从目标中减去切割体,交集是提取目标与切割体重叠的部分。两者互为补充,对应 Rhino 布尔运算的两种基本操作。

📥 输入参数

名称类型必填说明
目标曲面 (B) Brep 必需 作为基础的目标 Brep(单个)。交集运算以此为基础,与其他曲面求共同部分。
交集对象 (O) Brep 必需 与目标求交集的曲面列表。每个曲面会独立与目标进行布尔交集运算。

📤 输出参数

名称类型说明
交集结果 (R) Brep 交集运算结果(列表)。每个交集对象与目标的重叠部分单独输出。

🧠 核心逻辑

1
输入
目标 + 对象列表
2
MultiThreaded
BooleanIntersection
3
并行计算
所有交集
4
输出
交集结果列表

⚙️ 运算流程

  1. 接收单个目标曲面和多个交集对象的 Brep 列表
  2. 实例化 MultiThreadedBooleanIntersection 计算器
  3. 调用 ComputeIntersections() 方法,内部对每个交集对象与目标执行布尔交集运算
  4. 通过 Results 属性获取所有成功交集的结果列表
✅ 多线程并行:当输入多个交集对象时,MultiThreadedBooleanIntersection 会利用多核 CPU 并行运,显著提升批量处理速度。

🧪 典型使用场景

场景说明
提取重叠部分 多个物体与一个目标物体有交集时,批量提取它们重叠部分的几何体。例如找出所有建筑体块与地形重叠的区域。
碰撞检测 逐物体检查其与目标有没有交集,输出的结果可以辅助判断碰撞位置和范围。
区域划分 利用一个大的基础区域与多个子区域求交集,快速得到每个子区域在基础范围内占据的部分。
空间分析 计算多个物体在某个特定空间范围内的分布情况——交集结果即为它们与目标空间重叠的部分。

⚠️ 注意事项

📋 组件信息

名称布尔交集
英文名BooleanIntersection
分类LK → Brep
Exposuresecondary(次级标签页可见)
基类GH_Component
GUIDC8F225B0-AF19-4822-87BA-7E3B25E7A1F2