ProfileBox 型材包围盒 · PB

基于型材截面外轮廓矩形框沿路径生成包围盒实体,支持端部切平/端部铣切两种模式
📂 LK → Util 📄 ProfileBox.cs 📦 包围盒 🔪 端部处理 🔄 右键切换

📖 功能概述

该组件根据LK系统型材的截面信息,沿截面外轮廓的包围矩形框生成纯净的包围盒实体(忽略内部一切开孔和切割特征)。

它的核心作用是从型材的异构截面中提取"最小外接矩形",然后将这个矩形沿型材路径拉伸或扫掠,从而得到一个不含内部细节的纯净外轮廓实体。这在计算型材的净尺寸、包裹体积、加工余量等场景中非常有用。

该组件使用 ButtonComponent(双状态按钮),通过右键菜单可在两种端部处理模式间切换:

📥 输入参数

名称类型必填说明
型材 Brep 必填 需要生成包围盒的LK系统型材模型。必须包含标准UserDictionary属性:拉伸-路径、拉伸-截面、拉伸-截面pln、起端切面、终端切面。

📤 输出参数

名称类型说明
包围盒 Brep 根据截面外包围矩形框生成的型材包围盒实体。注意:输出为树形,因为弯曲型材可能产生多段结果。树形

🧠 核心算法详解

一、截面外矩形提取

1 从型材属性中读取 拉伸-截面(Brep)和 拉伸-截面pln(Plane)
2 使用 BoundingBoxCalculator 以截面平面为参考坐标系,计算截面的包围矩形
  → 得到的是截面形状的最小外接矩形(没有内部孔洞的信息)
3 将外接矩形转为Nurbs曲线(ToNurbsCurve()
4 通过 Brep.CreatePlanarBreps() 将矩形曲线转为平面Brep
  → 这是一个扁平的矩形面片,代表了型材的外轮廓边界

二、沿路径扫掠

1 从型材属性中读取 拉伸-路径(Curve)
2 将矩形面片包装为 IGH_GeometricGoo
3 使用 SuperExtrude 将矩形面片沿路径进行扫掠
  → 生成一个跟随路径的管状实体(SuperExtrude自动处理路径的弯曲变化)
4 得到的是纯净的"矩形截面沿路径扫掠"实体——没有任何开孔或内部切割

三、端部处理(双模式)

这是组件的核心差异化功能,通过右键菜单按钮切换两种模式:

模式一:端部切平(btnState1 = true)

此模式追求端面与路径垂直的整齐切平效果:
1 读取起端切面和终端切面(Brep)
2 使用 BrepLength.BrepIntersectionAnalyzer(与BrepLength组件共享同一个内部类)分析扫掠体与两个切面的相交关系:
  • 计算扫掠体与切面的相交曲线
  • 从相交曲线中提取角点并投影到路径上
  • 在路径的起点投影点和终点投影点处创建垂直平面(PerpendicularFrame)
3 使用 ParallelBrepBooleanDifference 用两个垂直平面对扫掠体进行平面切割
4 结果是端面平整垂直于路径方向的包围盒实体

模式二:端部铣切(btnState1 = false)

此模式保留端部铣切造型
1 读取起端切面和终端切面(Brep),直接使用这两个Brep作为切割工具
2 使用 ParallelBrepBooleanDifference 用这两个切面Brep对扫掠体进行布尔差运算
3 结果是带有端部铣切原始造型的包围盒实体(端面形状与实际切割一致)

两种模式的选择依据:
 • "端部切平"更适合需要规整外轮廓的场合(如计算包裹体积、模具设计)
 • "端部铣切"更适合需要保留端部切割特征的场合(如验证铣切效果、CNC加工预览)

⚙️ 完整执行流程

1. 获取输入:从DA读取型材Brep。如果为空则退出。

2. 属性提取:通过ReferenceID定位Rhino场景物件,读取四个关键属性:
 • 拉伸-路径(Curve)
 • 拉伸-截面(Brep)
 • 拉伸-截面pln(Plane)
 • 起端切面、终端切面(Brep)

3. 截面外矩形计算:BoundingBoxCalculator → ToBoundingRectangle → ToNurbsCurve → CreatePlanarBreps

4. SuperExtrude扫掠:矩形面沿路径扫掠生成实体

5. 端部处理(根据按钮状态):
 • btnState1 = true → 端部切平模式(BrepIntersectionAnalyzer → 垂直平面 → BooleanDifference)
 • btnState1 = false → 端部铣切模式(直接起端/终端切面 → BooleanDifference)

6. 结果输出:切割后的包围盒Brep到输出参数。

🧪 典型使用场景

场景详细说明
型材净体积提取 从型材中去除所有开孔和内部切割特征,仅保留外轮廓包围盒,用于计算型材的最小包裹体积(如包装设计、运输体积估算)。
弯曲型材包裹 对于弧形型材,SuperExtrude自动沿弯曲路径扫掠,生成的包围盒准确跟随路径的弯曲变化。这是纯边界框计算(BoundingBox)无法做到的。
端部处理验证 切换右键菜单中的"端部切平"和"端部铣切"模式,对比两种端部处理方式的视觉效果,确认型材端部的切割方案。
CNC加工参考 端部切平模式下生成的平整端面包围盒可作为CNC加工路径的参考边界,辅助计算加工余量和刀具路径。

⚠️ 注意事项

📋 组件信息

名称型材包围盒
英文名PB
分类LK → Util
Exposurequinary(五级)
按钮模式1端部切平
按钮模式2端部铣切
基类ButtonComponent(双状态按钮)
文件ProfileBox.cs
GUID{57877129-1C48-4CD6-BBD7-E6C821CF739A}