U_?Panel 板材 · U_Pl

板材创建——关联单元表皮,自动提取单元号、批次,生成编号/加工图号/物料编码/工程属性
📂 LK → Util → US 📄 U_?Panel.cs 🧩 板材 🏷️ 编号生成 📋 信息列表

📖 功能概述

该组件创建的板材不仅携带几何信息和基本信息(名称、类型、规格),还通过关联的表皮(Panel)提取单元号和批次,并基于信息列表自动生成序号、编号、物料编码、工程属性、加工图号等完整的装配表信息。

重要提示:描述中明确指出"如果不与型材同一程序建模,序号设置需 > 10000"。这是为了避免与其他程序创建的构件的编号产生冲突。如果板材是在独立的Grasshopper程序中创建(与型材不同程序),请确保序号大于10000。

📥 输入参数

名称类型必填说明
板材 Generic 必填 板材几何体。透传,不做几何运算。
名称 Text 必填 板材名称。用于从信息列表中匹配序号、物料编码和工程属性。
类型 Text 必填 板材类型。用于图层路径构建。
规格 Text 必填 板材规格描述。存储在属性中。
pln Plane 必填 板材局部坐标平面。存储在属性中。
Panel Brep 必填 表皮模型。用于提取单元号和批次。必须是外部引用的几何体。
信息列表 Text 必填 格式:序号,名称,物料编码,工程属性。每行一项。列表

📤 输出参数

名称类型说明
板材 Generic 原始输入板材几何体(透传)。
图层 Text 格式:模型::{单元号}::{类型}::{名称}
信息Key Generic 19个属性键名。列表
信息Value Generic 与Key一一对应的属性值列表。列表

🧠 核心算法详解

一、Panel信息提取

1 通过Panel的ReferenceID找到Rhino场景中的表皮物件
2 从表皮物件的UserDictionary中读取两个关键属性:
 • 单元号:如 "A01-1",用于图层路径和编号生成
 • 批次:如 "第一批",存储在板材属性中

二、信息列表解析

与US组件的解析逻辑相同:

每行格式:序号,名称,物料编码,工程属性
解析结果存入四个平行列表:序号列表、名称列表、物料编码列表、工程属性列表。

如果名称列表中找到与输入"名称"匹配的项:
 • 序号 = 对应索引的序号值(需为整数)
 • 物料编码 = 对应索引的物料编码(如果为"XX"则使用截面已有的编码)
 • 工程属性 = 对应索引的工程属性(如果为"XX"则使用截面已有的属性)

三、编号与加工图号生成

与US组件相同的规则:

编号格式:{字母}-{数字}-{序号3位}
 • 取单元号最后段(用短横线分割),前2字符为字母,后续为数字
 • 序号格式化为3位数字补零
 • 示例:单元号 "A01-1",序号 5 → 编号 "A0-1-1-005"

加工图号:JG-{编号}

四、完整属性集(19个Key)

名称 · 类型 · 规格 · pln · 面板ID · 单元号 · 批次 · 序号 · L · W · T · 单位 · 自由项1 · 自由项2 · 自由项3 · 编号 · 物料编码 · 工程属性 · 加工图号

其中L/W/T/单位/自由项全部为缺省值 -(横线占位),为后续手动填写留空。

⚙️ 执行流程

1. 输入获取:板材几何体 + 名称 + 类型 + 规格 + pln + Panel + 信息列表。

2. Panel信息提取:通过Panel ReferenceID → 读取单元号、批次。

3. 图层路径:模型::{单元号}::{类型}::{名称}

4. 信息列表解析:逐行拆分,验证序号和名称不为空。

5. 序号匹配:根据输入"名称"从列表中匹配序号。若名称不存在于列表则IndexOutOfRange。

6. 编号生成:根据单元号和序号生成编号;加工图号 = "JG-" + 编号。

7. 组合Value:依次打包名称、类型、规格、pln、面板ID、单元号、批次、序号、各缺省值、编号、物料编码、工程属性、加工图号。

8. 输出:板材(透传) + 图层 + Key列表 + Value列表。

🧪 典型使用场景

场景详细说明
板材装配表生成 为单元体中的各类板材创建完整的属性数据,包括编号、物料编码、工程属性等,可直接烘焙到Rhino物件用于BOM输出。
独立建模序号冲突保护 大型项目中不同程序建模时,序号 > 10000 可以避免与主程序(型材拉伸)的序号冲突。
单元板材归类 板材图层路径包含单元号,自动归入对应的单元模型层。

⚠️ 注意事项

📋 组件信息

名称板材
英文名U_Pl
分类LK → Util
Exposure默认
基类GH_Component(无按钮)
文件US\U_?Panel.cs
GUID{BBB106A1-71F7-4113-A733-500EFE5FCC26}