该组件以"特征签名分组"为核心策略,对输入的型材树形数据逐分支进行智能分类。 其核心思想是:将每个型材的所有可识别特征(尺寸、模号、物料编码、各类开孔位置、内部切割体、镜像方向等) 编码为一个唯一的特征字符串,然后将特征字符串完全一致的型材归入同一分组。
由于采用了多核并行的处理架构,即使面对大量型材数据也能高效完成分类运算。 适用于工厂BOM分类、加工批次管理、单元体构件分组等场景。
| 名称 | 类型 | 必填 | 说明 |
|---|---|---|---|
| 型材 | Brep | 必填 树形 | 需要分组的型材模型。必须以树形结构输入,每个分支独立分类。每个型材必须是LK系统创建的、包含标准UserDictionary属性的模型。 |
| 名称 | 类型 | 说明 |
|---|---|---|
| 型材 | Brep | 分组后的型材模型,输出路径为 原始路径 → 分组子路径,同一分组内的型材在同一个子路径下 树形 |
| 序号 | Number | 分组后每个型材在原始输入列表中的索引序号,可用于追溯原始顺序 树形 |
| 数据 | Text | 每个型材对应的完整特征签名数据(包含模号、长度、面积、镜像方向、孔位信息等),用于验证分类依据 树形 |
该组件不依赖传统几何比对(如布尔运算、曲率匹配),而是通过以下8个维度为每个型材生成一组唯一的特征签名,精确度足以区分毫米级差异的型材配置。
模号 字段。这是分组的首要维度,不同模号的型材必然分为不同组。AreaMassProperties 计算型材总表面积,除以10000后保留2位有效数字。区分相同长度但截面复杂度不同的型材。BrepPlaneSplitAnalyzer 分析截面被分割后的两部分。根据比较结果输出 "正" 或 "反"。这是区分左右对称但方向不同的型材的关键维度。物料编码 和 工程属性 字段作为附加分组的依据。CylinderAnalyzer 提取圆心坐标和半径;圆孔-12|34|56|80。MultiThreadedBooleanIntersection 计算切割体与重建实体的交集;切割体-3|12|34|56(3表示该型材有3个内部切割体);以上所有维度的签名按固定顺序拼接成一个完整的特征字符串:
模号 + 长度 + 面积 + 镜像方向 + 物料编码 + 工程属性 + [排序后的孔位签名] + [排序后的角点签名] + [排序后的沉头孔签名] + [排序后的机丝孔签名] + [排序后的切割体签名]
然后使用 ObjectGrouper 以该特征字符串作为分组键(Key),将键完全相同的型材归入同一分组。
组件内部采用 Parallel.For 对输入每个分支内的型材进行并行特征提取。
在处理大量型材时,多核CPU的不同核心同时处理不同的型材,大幅缩短总处理时间。
但注意:特征提取过程中的错误会在并行上下文中被捕获并通过同步锁安全输出为运行时提示,不会导致整个求解崩溃。
ObjectGrouper 将特征字符串相同的型材归入同一分组。{原始路径} → {原始路径} + {分组索引}| 场景 | 详细说明 |
|---|---|
| 型材批量分拣 | 工厂收到一批加工完成的型材,输入该组件后自动按模号+孔位配置+镜像方向分类,每类输出到一个子数据分支,方便后续逐类统计和打包。 |
| 开孔差异检测 | 同模号同长度的型材,如果圆孔或沉头孔的配置不同,特征签名将不同。通过该组件可以自动发现哪些型材的孔位配置是一样的,哪些是独特的。 |
| 镜像配对管理 | 通过镜像方向维度(正/反),自动识别互为镜像的型材。在装配工序中,正反成对使用的型材可以通过该组件自动匹配分组。 |
| 大规模型材数据预处理 | 项目包含数百根型材时,树形结构输入 + 并行处理确保分类效率。可以在Grasshopper中配合批量生成逻辑使用。 |
输出的"数据"参数包含完整的特征签名,其格式如下:
模号,长度,面积,镜像方向,物料编码,工程属性,圆孔-X1|Y1|Z1|R1,圆孔-X2|Y2|Z2|R2,…,角点-X|Y|Z,…,沉头孔…,机丝孔…,切割体-Count|X|Y|Z,…
可以看到每个维度的信息以逗号分隔,各类孔位的签名已按字母序排列。
A8012,1200.0,456.78,正,MC-001,普通,圆孔-10|20|30|40,圆孔-15|25|35|40,角点-0|0|0,角点-1200|0|0,沉头孔-50|0|0|80GH_ParamAccess.tree,每个分支独立执行分组逻辑。如果只需要单一分组,请确保输入为单路径树形数据。{原始分支路径}/{分组索引}。例如输入路径 {0;0} 有3个分组的输出路径分别为 {0;0;0}、{0;0;1}、{0;0;2}。| 名称 | 型材分类 |
| 英文名 | 型材分类 |
| 分类 | LK → Util |
| Exposure | secondary |
| 基类 | GH_Component |
| GUID | {629D3262-58B0-4586-BD6C-F819AF848003} |