📖 功能概述
该组件创建的板材不仅携带几何信息和基本信息(名称、类型、规格),还通过关联的表皮(Panel)提取单元号和批次,并基于信息列表自动生成序号、编号、物料编码、工程属性、加工图号等完整的装配表信息。
重要提示:描述中明确指出"如果不与型材同一程序建模,序号设置需 > 10000"。这是为了避免与其他程序创建的构件的编号产生冲突。如果板材是在独立的Grasshopper程序中创建(与型材不同程序),请确保序号大于10000。
🧠 核心算法详解
一、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列表。