异形玻璃瓶初型设计:POLYFLOW模拟系数与NX智能设计
简介围绕异形玻璃瓶初型设计及其模具智能设计系统开发的学术论文文档面向玻璃模具设计、日用玻璃瓶制造及计算机辅助设计与制造相关研究人员和工程技术人员。资源基于POLYFLOW软件对异形玻璃瓶成型过程进行模拟分析玻璃熔体流动情况及壁厚分布规律据此提炼初型设计经验公式从而建立异形玻璃瓶外形尺寸与初型模内腔尺寸的关联关系为后续模具设计提供可靠的初始依据。同时论文结合NX二次开发与VB语言编程技术构建智能设计系统系统包含异形玻璃瓶模型模板文件、模具主体结构设计模块和玻璃模配件数据库三大模块可有效减少传统试错法带来的时间与成本消耗提高生产效率和产品质量。全文源自《模具工业》2020年第46卷第9期配有完整摘要、关键词、图表及参考文献引用方便包体为单个PDF文件大小13.72MB内容完整、排版清晰。目前已有108人学习浏览适合作为玻璃模智能设计、POLYFLOW仿真及NX二次开发等方向的参考资料或专业指导。1. 这篇论文解决的是异形瓶“初型靠猜”的问题核心是0.49和0.71两个系数日用玻璃瓶里圆瓶占了绝大多数模具设计可以用成熟的放大系数直接套。但扁平瓶、方肩瓶这类异形瓶不一样初型设计到现在很大程度还是靠老师傅的经验。初型做小了吹制时局部壁厚不够瓶子直接废初型做大了玻璃料挤不进去模具内腔被撑出痕迹。试错一次从新做初型模到上机调试周期以周计。这篇论文的核心贡献是把“靠猜”变成“按系数算”用 POLYFLOW 模拟异形玻璃瓶从初型到成品的吹制过程总结出两个经验系数——宽度系数 K10.49、高度系数 K20.71并在此基础上做了 NX 二次开发把系数、模板、配件数据库封装成一个智能设计系统。对模具厂来说这套东西能直接把初型设计从反复试错变成参数化计算对做模具二次开发的人它是一个典型的 KBE知识工程 参数化 数据库落地方案。下面我拆开讲。2. POLYFLOW 模拟与初型经验公式K10.49、K20.71 怎么来的、怎么用2.1 成型过程简化的四个边界条件和一个关键假设吹制玻璃瓶的过程分为自由吹胀和约束吹胀。自由吹胀阶段熔体在气压作用下向外扩张不接触模具约束吹胀阶段熔体贴向模具内壁壁厚分布基本由这个阶段决定。论文把二维模型划分为 5 个边界这是做模拟前最重要的一步边界设错了后面结果全偏。YS1 瓶口端面熔体流动极小简化为只受水平方向力Vf0、Ff0。这个位置是瓶口料流确实基本不动简化为固定边界是合理的。YS2 初型内表面受压缩空气吹胀力持续作用设大小不变的力垂直作用于内表面。吹制过程气压波动不大这个假设可接受。YS3 初型外表面定义为自由表面。自由表面意味着要追踪熔体与空气界面的移动POLYFLOW 里对应 free surface 边界也是最容易不收敛的地方。YS4 成型模内腔表面只起约束作用不运动。这就是成型模的工作面熔体碰到它就停住。YS5 成型模外表面固定不变只起分割区域的作用。这个面纯粹是为了划分网格域设成平面即可。做完这 5 个边界定义模型的计算区域才完整。网格用 GAMBIT 2.4.6 划分选 Pace 非结构性网格导入 POLYFLOW 后设置玻璃密度 2500 kg/m³、玻璃黏度 9000 kg/m·s、总时间 2 s然后求解。2.2 模拟参数与边界条件设置明细常见做法是先用二维模型扫参数二维算得快能快速对比不同初型方案的壁厚分布趋势三维模型留着最后验证用。用时 2 s 对应实际吹制节奏这个值不能随意改——改大了熔体过度下垂改小了吹胀不到位。玻璃黏度 9000 kg/m·s 是典型钠钙玻璃在成型温度附近的取值换成高硼硅玻璃要重新标定。POLYFLOW 求解器设置注意两点一是自由表面追踪打开用 Thompson 方法处理二是每步迭代的松弛因子控制在 0.5 左右收敛困难时降到 0.3。求解完成后直接看壁厚分布云图重点观察瓶颈过渡区和瓶底转角区——这两个位置最容易出现壁厚偏薄。2.3 从模拟结果提炼系数D10.49D、H10.71H 的推导逻辑论文的思路是定义成品宽度 D 和成品高度 H初型的截面宽度 D1 和瓶身高度 H1设 D1K1D、H1K2H。然后用一个具体瓶型——瓶身高 97 mm、宽 70 mm 的异形瓶——反复修改初型尺寸每次修改都跑一次二维模拟对比壁厚分布直到成型效果理想。最后得到的初型宽度 34 mm、高度 56 mm反推得出 K10.49、K20.71。需要指出的是这两个系数不是纯力学推导出来的是“模拟 迭代 对比壁厚分布”的经验总结论文后面又用瓶身高 79 mm、宽 90 mm 和瓶身高 60 mm、宽 80 mm 两组瓶子做了验证。实际用的时候我给一个建议步骤拿到异形瓶成品图先量出 D 和 H。按 D10.49D、H10.71H 初算初型尺寸。查表 1 确定初型料泡收缩量——这步容易被忽略。收缩量取决于瓶口直径瓶口直径小于 22 mm 取 1.2~1.5 mm22~28 mm 取 1.5~2 mm28~35 mm 取 2~3 mm35~50 mm 取 3~4 mm大于 50 mm 取 4~8 mm。瓶口越大收缩越夸张是因为口部玻璃料堆积多冷却收缩更明显。把初型尺寸、口模收缩量一起代入模拟看壁厚分布是否均匀不均匀就微调两个系数每次调整幅度不超过 5%。注意K10.49、K20.71 是在固定黏度、固定吹制时间下拟合出来的。如果你的产线吹制时间、玻璃料黏度明显不同系数要重新标定不能盲目照搬。3. NX 二次开发搭智能设计系统从瓶样参数化到自动装配的落地路径3.1 系统整体架构三个模块各管什么论文把系统分成三个模块异形玻璃瓶模型模板文件、模具主体结构设计模块、玻璃模配件数据库。这三个模块对应三类不同的开发工作量。第一个模块本质是 NX 里的参数化模板。你把异形瓶的尺寸用表达式管起来瓶身高度、瓶肩高度、瓶身宽度、窄面宽度、瓶口宽度都设成表达式改参数模型就变。核心在于模型拓扑不能变——如果你改了瓶身宽度圆角顺序变了参数化就崩了。所以做模板文件时建特征的顺序要想清楚先拉伸主体再倒圆角最后抽壳。第二个模块是重头戏。初型模设计要用到第 2 章的经验系数系统里输入成品瓶参数后自动乘上 K1 和 K2 生成初型模内腔。成型模则相反内腔形状与目标异形玻璃瓶外观一致。论文用的是布尔运算和 NX WAVE 技术做关联——WAVE 的作用是让成型模内腔几何和瓶样模型保持关联瓶样尺寸改了成型模内腔跟着变不用重新做布尔。第三个模块存储配件三维模型和工程图模板用 Excel 做数据载体。系统按产品参数查 Excel取配件型号再调对应的 NX 模型文件。3.2 瓶样参数化模板和菜单开发的实现框架在 NX 里做二次开发标准套路是NX Open 编程语言 菜单脚本。论文用的是 VB.net Visual Studio 2010对应 NX8.0 环境。我拆过不少这类系统给一个最小可运行的程序骨架 瓶样参数化驱动核心读取表达式并更新模型 Public Function RebuildBottle(session As NX.Session) As Boolean Dim workPart As Part session.Parts.Work Dim expD1 As Expression workPart.Expressions.Item(D1) 瓶身宽度 Dim expH1 As Expression workPart.Expressions.Item(H1) 瓶身高度 按经验系数从成品尺寸换算初型尺寸 expD1.Value 0.49 * inputD expH1.Value 0.71 * inputH session.UpdateManager.DoUpdate(Nothing) 表达式改完必须触发更新 Return True End Function这段代码的逻辑先找到模板文件里的 D1 和 H1 表达式把输入成品瓶的宽度和高度乘上经验系数写进去再调用 UpdateManager 触发模型重建。注意 NX 的 Expression 名称必须和模板里建表达式时一致大小写也不能错否则 Item 查找会抛异常。菜单入口在 startup 目录下加菜单脚本文件固定写法VERSION 120 EDIT UG_GATEWAY_MAIN_MENUBAR BEFORE UG_HELP CASCADE_BUTTON BOTTLE_MOLD_MENU LABEL 异形瓶模具设计 END_OF_BEFORE BUTTON BOTTLE_PARAM_DIALOG LABEL 瓶样参数设计 ACTIONS BottleParamDialog.dll END_OF_BUTTON菜单脚本里 ACTIONS 后面的 DLL 名要和编译生成的 DLL 一致。路径问题很坑NX 的菜单脚本不支持相对路径解析最好把 DLL 放在 startup 目录NX 启动时会自动扫描。3.3 NX WAVE 技术实现几何关联的正确使用方式WAVE 是这套系统里关联性的关键。成型模内腔要跟随瓶样变化最简单的做法是直接用 WAVE 把瓶样体的外表面链接到成型模部件里然后用这个链接体做布尔减。实操里我一般建议分三步第一步在成型模部件里建立 WAVE 链接选中瓶样外表面第二步用链接体做布尔减从成型模毛坯里减出内腔第三步在 WAVE 链接器设置里勾选“随父项更新”。这样瓶样参数一改成型模内腔自动更新不会出现“瓶样改了模具没跟上”的脱节。初型模不一样初型模内腔是 D10.49D、H10.71H 计算出来的缩放体。缩放后的几何不能直接用 WAVE 链接原始瓶样因为形状尺寸不同。论文的做法是把经验系数写进初型模模板的表达式里模板本身就是按系数预建好的。这就是为什么系统里初型模是“模板文件”成型模是“关联设计”——二者技术路线不同。4. 玻璃模配件数据库Excel 做载体三维模型和工程图模板联动4.1 配件清单和 Excel 数据结构设计玻璃模配件分两拨。初型模工作阶段用的配件口环、口模、闷头芯、闷头座、冲头、冷却器、芯子、封气套筒。成型模工作阶段用的配件底模、吹气头。数据库用 Excel 做载体的好处是模具厂工艺人员都熟改数方便。但 Excel 当数据库用有一个前提结构必须扁平化别搞嵌套表。我建议的字段设计如下字段名类型说明PartID文本配件唯一编号例如 KC-001PartType文本配件类型口环/口模/底模/吹气头等BottleDia数值适配瓶口直径单位 mmBottleHeight数值适配瓶身高度单位 mmModelPath文本NX 模板文件路径含文件名DwgPath文本工程图模板路径CavityCount整数模腔数量常见 1/2/4/6关键在 ModelPath 和 DwgPath数据库表里存的是模板文件的路径不是把整个模型塞进 Excel。系统运行时读这两列拼出完整路径再调用 NX 打开对应文件。路径用相对路径还是绝对路径要统一我见过太多系统在这上面翻车——换台电脑跑路径全失效。4.2 系统调用配件的完整流程系统按玻璃瓶特征筛选配件的过程本质是一个有约束的查询。核心代码逻辑 从 Excel 读取配件信息并按瓶口直径匹配 Dim connStr As String ProviderMicrosoft.ACE.OLEDB.12.0; Data SourceD:\mould_data\parts.xlsx; Extended PropertiesExcel 12.0;HDRYES;IMEX1 Dim sql As String SELECT PartID, ModelPath, DwgPath FROM [Sheet1$] WHERE PartType口环 AND BottleDia neckDia ORDER BY BottleDia DESC Dim dt As DataTable QueryExcel(connStr, sql) 执行查询并返回结果集这段代码用 OLEDB 把 Excel 当数据库查询找所有适配当前瓶口直径的口环型号。注意两点BottleDia neckDia ORDER BY BottleDia DESC是取下偏差匹配——选一个瓶口直径不大于实际值且最接近的口环这是模具配合的常规做法留少量间隙给玻璃料。Excel 连接串里的IMEX1必须加否则 Microsoft 驱动会按第一行数据类型推断整列类型遇到混合类型数据可能读成 null这个坑我遇到不止一次。4.3 配件参数化模板和工程图输出的配合配件数据库不只是三维模型还要有工程图模板不然设计完还得手工出图。工程图模板的做法是在 NX 里预先做好二维图的视图布局、尺寸标注框架把关键尺寸关联到表达式。模型更新后打开工程图模板视图自动刷新尺寸跟着变导出 PDF 或 DWG 就行。这里有个先后顺序问题先做三维模型模板再做工程图模板两个模板的表达式必须同名同单位。很多新手在三维模板里的表达式叫 Width到工程图里写成 width大小写不一致刷新时尺寸全部变成黄色警告。配件种类一多模板文件管理就乱了。建议按配件类型建目录mould_data/ ├── parts_db.xlsx ├── 3d_templates/ │ ├── 口环/ │ ├── 口模/ │ ├── 闷头芯/ │ └── 底模/ └── dwg_templates/ ├── 口环/ ├── 口模/ └── 底模/目录名统一用中文Excel 里存的路径和目录名完全对应。系统里用相对路径从统一根目录拼整体拷到别的电脑也能跑这是经验之谈。5. 避坑记录模拟边界、系数盲区与二次开发的翻车点5.1 自由表面边界不收敛算到一半就发散现象POLYFLOW 求解过程中自由表面追踪发散残差曲线不下降报错停在 YS3 边界附近。原因自由表面边界对网格质量极其敏感Pace 非结构性网格在曲率大的区域——比如瓶颈过渡处——网格畸变率偏高另外松弛因子太大每一步几何更新幅度过猛。解决把松弛因子从 0.7 降到 0.3~0.4同时加密瓶颈过渡区的网格。GAMBIT 里对该区域设置尺寸函数网格尺寸从瓶身的 1.0 加密到 0.3~0.5。我一般还会把总时间从 2 s 拆成 0.2 s 一个载荷步每个载荷步让 POLYFLOW 内部自适应步长收敛概率大幅提升。5.2 系数只在相近瓶型范围内有效换产品直接跑偏现象拿论文的 K10.49、K20.71 去套一个高度 150 mm、宽 60 mm 的长扁瓶模拟出来的壁厚分布明显歪掉。原因两个系数是从 97 mm×70 mm 和两组验证瓶79 mm×90 mm、60 mm×80 mm拟合出来的瓶型的宽高比变了玻璃料在重力作用下的下垂特性就变了系数不再适用。解决把论文里的方法当起点不要当终点。按第 2 章说过的步骤在你的目标瓶型上跑二维模拟迭代自己标定一组系数。如果不想每次重新标定就做一张系数表——按宽高比区间给多组 K1、K2 经验值存进系统的 Excel 数据库里供不同瓶型选择。5.3 NX 二次开发里表达式更新了模型没变现象VB 程序里改了 Expression 的值模型树里表达式显示已更新但三维实体没有变化。原因NX Open 里修改表达式后模型并不会自动重建必须显式调用 UpdateManager.DoUpdate另外模板文件里的特征必须是参数化特征不能有“无参数体”。解决改完表达式后调用session.UpdateManager.DoUpdate(Nothing)全量更新。如果更新后模型变了但位置不对检查表达式单位——模板里用 mm程序里传的却是 inchNX 会按单位换算导致尺寸整体缩放。5.4 Excel 数据库第一行数据类型错了查询结果全是空现象系统某个型号的配件始终查不出来但 Excel 里明明有数据。原因OLEDB 读 Excel 时如果某一列第一行是文本、后面全是数字驱动会推断这一列是文本类型数字行全部读成 null反过来也一样第一行是数字、后面是“N/A”这类文本也会导致类型推断错误。解决连接串里加IMEX1它会强制混合类型按文本读取。更稳的做法是 Excel 里不写表头之外的类型混杂数据所有数值列统一纯数字文本列统一纯文本。还有一类好处理的方法——干脆把 Excel 换成 SQLite列类型由你自己定义少很多麻烦。5.5 WAVE 链接失效模型动了一步后面全红现象成型模内腔用 WAVE 链接瓶样外表面后某次修改瓶样模型成型模部件里 WAVE 链接变红、断开布尔特征报错。原因WAVE 链接失效常见于父项几何被删除了或者生成链接时选的是“体”不是“面”。删除父特征再重建链接就断了选的是体布尔操作后体的拓扑变化也会导致链接失效。解决WAVE 链接尽量选面不要选体链接建立后不要手动删除父项几何要改就改表达式驱动。另外每次系统运行前先把工作部件设到成型模手工验证一次 WAVE 是否正常更新别等输出模型了才发现内腔还是旧的。5.6 工程图模板打开后尺寸全是黄色警告现象配件模型更新后打开工程图模板某些尺寸标注显示黄色不自动刷新。原因工程图里的关键尺寸标注没有关联到模型表达式而是固定数值——标注是“死的”不是“活的”。解决做工程图模板时尺寸标注一定要用“模型表达式”引用方式插入不要手输数字。NX 里插入尺寸时选择表达式引用而不是测量值这样模型变标注跟着变。检查方法很简单改一个表达式数值看工程图那个尺寸有没有变没变就是标注没关联上。6. 验证思路与初型修正的闭环从壁厚分布反推系数系统做出来之后最大的问题是怎么知道这套系统给出的初型设计对不对论文给了三组模拟验证但实际生产中不可能每次都开模试错。我常用的方法是把“壁厚分布”当成反馈信号用模拟结果反推两个系数是否该修正。具体做法是跑完一次 POLYFLOW 模拟后在结果里提取瓶颈、瓶肩、瓶身中部、瓶底四个截面的壁厚值。正常情况下同一瓶型的壁厚偏差应该控制在 ±15% 以内。如果瓶肩部偏薄说明初型在高度方向上给少了K2 要调大如果瓶身中部壁厚偏厚意味着宽度方向初型给多了K1 要调小。论文的参数里玻璃黏度 9000 kg/m·s、总时间 2 s对应的壁厚敏度大约是K2 每增加 0.01瓶肩壁厚增加 2%~3%K1 每减少 0.01瓶身中部壁厚减少 1.5% 左右。我习惯把这套修正逻辑写成一段小的辅助函数配合系统做自动迭代 根据模拟壁厚偏差修正经验系数 thicknessRatio 1 表示实际壁厚偏厚 1 表示偏薄 Public Sub AdjustCoef(ByVal section As String, ByVal thicknessRatio As Double) Dim k1 As Double 0.49 Dim k2 As Double 0.71 Select Case section Case neck, shoulder 瓶颈/瓶肩偏薄需要调大 K2 k2 (1.0 - thicknessRatio) * 0.01 * 0.5 Case body 瓶身偏厚需要调小 K1 k1 (1.0 - thicknessRatio) * 0.01 * 0.3 Case bottom 瓶底偏薄同样调大 K2 k2 (1.0 - thicknessRatio) * 0.01 * 0.2 End Select 写回配置文件供下次模拟使用 SaveCoefToDatabase(k1, k2) End Sub这段代码的逻辑是每次模拟完把壁厚比值传给 AdjustCoef按截面位置修正对应系数再写回数据库。每次修正幅度控制在 0.005~0.01避免一次改太多导致过冲。这个迭代跑三四轮系数就收敛到适合当前瓶型的范围内了。收尾说一个我自己踩过的教训。之前拆一套类似的玻璃模具系统前期只顾着做模板和代码没把系数标定当回事结果两批不同瓶型的产品导出的初型模内腔尺寸偏大上机后初型料泡在初型模里就贴壁了壁厚完全失控。从那以后我每次搭建这类智能设计系统都强制先走一遍“模拟标定系数 → 固化到数据库 → 抽样验证”的闭环经验系数不好用就重跑模拟绝不直接上线。这套方法论希望帮到你。本文还有配套的精品资源点击获取