SCI论文(www.lunwensci.com)
摘 要: 针对数模网格的手工检查及修补过于繁琐的实际问题,基于 TCL/TK 脚本语言,利用 HyperMesh 的 API (Application Program Interface) 接口编写代码,集成了自动划分网格、网格的检查、网格自动清理、重新划网格、网格修 补等步骤,并利用跨平台窗体自定义界面直观显示网格修补方式,采用 HyperMesh 自有功能和自定义功能相结合的方式,集 成了分割四边形、分割所有边、合并节点、添加 Washer、Smooth、填补孔六种修补方法。并通过汽车后备箱盖实例验证, 极大地提高了 HyperMesh 软件网格划分效率和质量,减小了人工操作出错的概率,为相关工作人员提供了便利工具,为后续 企业开发工作积累经验。
Secondary Development of Mesh Inspection and Repair Based on HyperMesh
ZHAO Shengqi, CHEN Zezhong
(School of Materials and Chemistry, University of Shanghai for Science and Technology, Shanghai 200093)
【Abstract】: In view of the practical problem that the manual inspection and repair of the digital analog grid was too complicated, based on TCL/TK scripting language, the code was written using HyperMesh API (Application Program Interface) interface, integrating the steps of automatic grid division, grid inspection, grid automatic cleaning, grid redrawing, grid repair, etc., and using the cross platform form custom interface to intuitively display the grid repair mode. By using the combination of HyperMesh's own functions and user-defined functions, it integrated six repair methods, namely, dividing quadrangles, dividing all edges, merging nodes, adding Washers, Smooths, and filling holes. And verified by the example of automobile trunk cover, it greatly improves the efficiency and quality of HyperMesh software mesh generation, reduces the probability of manual operation errors, and provides convenient tools for relevant staff, Accumulate experience for subsequent enterprise development.
【Key words】: TCL/TK;secondary development;grid check;mesh patching;HyperMesh
0 引言
为提高 CAE 分析前处理效率,越来越多的企业通 过二次开发和流程定制,在有限元软件的基础上,根据 自身产品特点实现模拟分析前处理工艺的自动化 [1]。根 据用户需求,定制特定的自动化流程,使相关模型的有 限元仿真流程自动化,从而实现仿真过程的程序化和标 准化,进而有效地提高了操作效率和防错率,大大减少 了重复劳动,缩短了前处理的时间,从而使工程师在问 题诊断和方案思考上有了更多的时间 [2-10]。
HyperWorks 是一种全面的开放式体系结构 CAE 仿真工具,其中 HyperMesh 具有强大的前处理功能,并且 提供了良好的二次开发环境,这为一些具有重复性操作的 问题提供了良好的解决方案,工程师可以根据自己的需 求,使用多种方式编写代码 [11]。其自动化程序的开发依 托于多种工具,包括 Process Manager、Process Studio、 TCL/TK 语言以及 HyperMesh 所提供的功能函数等。
本文基于 TCL/TK 脚本语言及 HyperMesh 软件,结 合有限元前处理的网格划分步骤,开发出网格检查与修 补的 GUI 界面和对应功能,并将其嵌入 HyperMesh 操 作界面中,以满足便捷使用。同时,详细阐述开发程序逻辑流程及实现过程,用实例分析论证代码实用性和可 行性,提高有限元分析的质量和效率。
1 TCL/TK 语言介绍
TCL(Tool Command Language) 语言是一种解释 型可扩展语言,可以作为一种简单可编程的语言,常用于 独立开发或者嵌入式开发。TK(tool kit)提供了一个跨 平台的图形化界面处理(GUI)小部件 [12]。利用 TCL/TK 语言编程,通过脚本可以很方便地调用 HyperMesh 应用 程序的命令,实现数据逻辑或条件的控制,从而基于此 进行二次开发,包括用户自定义的流程、控制面板以及 图形化的界面。使用自定义面板的好处是可以通过个性 化整合,将所有实现某项功能的按键进行整合,快速实 现该功能,不仅免去了繁琐的面板切换操作,而且消除 部分操作失误,使软件使用效率显著提高。
2 有限元网格检查与修补的二次开发
2.1 问题分析
虽然 HyperMesh 在网格划分上有很多功能,但企业 实际使用表明,网格划分后对网格质量复核,对质量不合 格的复杂网格进行处理时往往较难达到满意的效果。
(1)在进行网格检查处理操作时,由于软件功能面 板比较复杂,针对网格边界关系、网格单元法向、单元 质量检查的面板分布较分散,不容易定位。
(2)在进行网格修补操作时,对局部的网格质量问 题进行检查, 包括对 Aspect ratio、Warpage、Max sizes 等网格参数进行检查是否满足质量标准时,一些 操作步骤比较繁琐。例如要解决网格长宽比问题,就需 要先找到软件功能选项“2D”,再找到“replace”按 钮,然后进入面板通过节点的合并方式来解决,但单个 面板的功能通常不够全面,还需要寻找其他面板配合使 用,操作比较繁琐。
上述问题的存在, 大大降低了网格的修补效率。而 且,由于不同操作人员的实际操作过程各不相同,容易 出现重复操作、操作失误的情况。本文瞄准上述问题, 通过运用 TCL/TK 二次开发工具,通过合适的界面设 计和功能实现,将网格检查与修补的常用功能集成到一 起,便利用户使用。
2.2 界面设计
软件的开发分为同步模式与异步模式。同步模式是 指开发界面随 HyperMesh 软件一同启动,不单独运 行。异步模式是指二次开发的界面独立运行,只是在运 行过程中调用 HyperMesh 软件,建立数据联系 [2]。以 往的二次开发多将界面设计为弹窗式,每次使用时需要 工程师在命令行输入 Source 手动调用脚本,操作较为繁琐。本次二次开发利用 TCL/TK 脚本语言将网格修补 工具嵌入到 HyperMesh 主界面中,无需再次手动调 用脚本,实现同步模式二次开发。将原先网格检查与修 补操作简集成在一个页面内即可完成操作,工程师按照 顺序依次点击按钮即可快速完成整个流程,且每次启动 HyperMesh 都会在主界面 Tab 页面下显示二次开发的 工具界面,操作简洁明了。
为使网格修补模块的操作满足规范性和快捷性,首 先着重于界面的设计。工作界面位于 Tab 页面下,具体 界面布置方案如图 1 所示。在“Mesh check”面板中 “AutoMesh”“Edges”“Normals”“Check elems”4 个按 钮分别对应网格自动划分、网格边界关系的检查、网格单 元法向的检查、网格单元的检查, “Mesh patching”即 网格修补面板包括“Element Cleanup”“Remesh” “Element Patching”分别对应单元自动清理、重新划分网 格、网格修补。完成一系列操作后, 点击“Qulityindex” 按钮,可进行全面的网格质量检查。不同于“Check elems”按钮功能, 其结果会显示未达到质量标准的网 格数量,同时显示网格划分后的网格综合质量指数,如 图 2 所示为“Qulityindex”按钮面板。
为实现功能的集成化和流程化,主要采用自定义 功能界面与调用 HyperMesh 原有面板相结合的方式。 例如, “Qualityindex”按钮是调用 HyperMesh 原有 面板,当点击此按钮时,自动进入 HyperMesh 原有 “Qualityindex”面板。
其中, 点击“Element Patching”按钮时, 会出现 自定义“Patching”窗口如图 3 所示,自定义窗口与 软件分别显示,可用“Close”按钮进行关闭,其中以 图片按钮形式来实现功能,壳单元单个网格质量缺陷主 要有网格单元翘曲、网格单元尺寸过大、网格单元长宽 比过大等,针对上述缺陷,可以使用自定义面板中包括“Split Quads”分割四边形改善网格翘曲问题 ;“Split all Sides”通过分割边改善网格尺寸问题和局部网格细 化问题 ;“Replace”合并节点解决网格长宽比问题。
针对局部网格质量优化,可以采用自定义面板中的 按钮包括“Washer”按钮可以保证孔周围的网格质量 ; “Smooth”通过改善网格节点的位置使网格质量提高 ; “Hole Fill”使用填补孔的方式改善网格质量。由此可 以有效地提高网格单元质量。
通过上述的 GUI 界面可以实现如图 4、图 5 所示的 网格检查与修补流程图 :
其次,着重在模块功能的实现上下功夫, 把预期的功能用尽可能简练的命令或代码表达出来。
3 功能实现步骤
3.1 网格自动划分
一键点击“AutoMesh”按钮,针对壳单元模型进 行 2D 网格的自动划分,采用 QI optimize 网格划分方 式, 工具可根据默认的批处理网格划分文件(*.param 和 *.criteria), 定义各项网格指标。首先, 会出现网格 尺寸输入界面,网格的尺寸大小取决于模型的规模、计 算机的能力(CPU、内存、硬盘等), 以及对计算精度 的要求。划分网格尺寸的原则是计算精度和计算耗费的 平衡原则,并不是节点越多越好,高密度的网格能带来 计算精度的提高,但是采用适当的单元尺寸更重要 [13]。 脚本自动采用 mixed 单元类型,进行网格划分。划分 完成后,关闭几何模型显示,只留下网格。如图 6 所示 为网格自动划分程序逻辑流程。
3.2 网格检查面板
主要集成了原有软件的功能,实现功能的集成化,其中包括对网格边界关系、网格单元法向和针对不同网 格质量标准三种方式进行检查。“Edges”是通过发现 网格自由边的方式,设置容差(不超过网格尺寸),判 断边界关系,预览未连接的网格边界并进行修复工作 ;
“Nomals”是通过颜色或方向箭头显示网格单元的法 向,通过统一法向可以使网格整体优化,直接影响有限 元后处理仿真结果 ;“Check Elems”是利用网格不同 质量标准进行检查,针对壳单元面板中会有 Warpage、 Aspect ratio、Skew 等一系列单个网格质量标准。
3.3 网格自动清理模块
自动网格划分后, 点击“Element Cleanup”按钮, 软件会启动自动清理工具,脚本会自动选择当前显示的 网格构件, 并利用 HyperMesh 自带 API 函数“*hm_ auto_elem_cleanup”自动清理网格质量。通过点击 2-3 次按钮,可以较有效解决网格问题。
3.4 网格局部重新划分模块
网格整体清理完成之后,针对局部区域网格质量问 题,脚本先把几何模型显示改为通过网格质量模式,可 以清晰看出不同颜色的网格质量类型,当遇到局部范围 质量问题或网格角度过大或过小情况,脚本会显示选择 框,多种选择方式或者直接键盘按 shift 并框选即可,如 图 7 中点击“proceed”运行,会改善这个区域的网格 质量。如图 8 所示为网格局部重新划分程序逻辑流程。
3.5 单个网格修补模块
在上述流程之后,针对单个网格质量问题,主要存 在翘曲、网格尺寸过大、网格长宽比过大、孔边缘网格 质量不好等质量问题,针对这些问题,利用 TK(tool kit)提供的跨平台的图形化界面处理部件,并插入图片 形式直观地识别所使用的功能,分别有“Split Quads” “Split all Sides”“Replace”“Washer”“Smooth”“Hole Fill”6 个功能,通过点击图片按钮针对对应网格质量 问题进行逐一解决,使网格质量得到改善。如图 9 所示 为部分自定义网格修补程序逻辑,如图 10 为集成的软 件自带修补功能的程序逻辑。
最后,采用 HyperMesh 中 command [hm_pushpanel] 命令进行按键移植, 点击“Qualityindex”按钮, 其中 包含各种网格质量指标,综合计算后并用颜色区分,可 多次进入面板实时观察网格质量改善状况。划分完成后 的网格质量影响着 CAE 仿真分析的准确性。质量差的 网格对应的零件部分,仿真性能较差,不能准确反应零 件的真实情况,同时可能极大延长仿真分析时间。
4 应用实例与分析
以某汽车后备箱盖为例,将模型导入 HyperMesh 软件,进行常规的中面抽取和几何清理后,进入自定义 网格检查与修补界面,仅显示几何模型后,一键点击 “AutoMesh”按钮后自动生成网格,如图 11 所示为几何模型及对应网格。
点击“Edges”按钮进入如图 12 所示面板,设置 容差检查网格边界关系并修复。点击“Normals”按钮 进入如图 13 所示面板,设置网格单元法向。
点击“Check Elems”按钮, 会进入如图 14 所示 面板,针对不同质量标椎分别检查网格质量个数,修补 过程均需要后续操作,减少失败网格数量,提高网格划 分质量。
通过点击“Element Cleanup”按钮,可以实现网 格的自动清理, 点击“Qualityindex”按钮可以检查网 格综合质量,其中包括“comp.QI”“#failled”“failled %”3 个指标,如图 15 所示是运行 3 次后的结果,通 过测试,运行 3 次即可达到固定失败网格质量,还需要 针对个别网格进行区域或逐一处理。
针对区域网格质量问题,点击“Remesh”按钮可 以自动打开 HyperMesh 自带网格质量标准显示模式, 通过突出显示区分网格各项指标,如图 16 所示,对某 一区域存在多个网格质量问题,可以键盘按 shift 可以框选其中错误网格及周围网格进行重划网格操作。
如上述显示,在进行重划分网格之后依然会有个别网格质量问题, 可以点击“Element Patching”按钮时,进入自定义“Patching”窗口,如图 17 中左图可以看出突出网格质量问题为网格翘曲问题,通过点击“Split quads”功能图片,选择对应网格运行程序,可 以轻松解决,图 17 中右图为处理后结果。
其中,利用 HyperMesh 中自带功能,可以独 立显示某一网格标准下的所有网格,例如图 18 显示 warpage > 5°的所有网格,也可使用二次开发工具进行全选并分割成两个三角形,解决网格翘曲问题。
同理,如图 19 所示针对网格尺寸较大问题可以采 用“Split all Sides”功能, 通过分割边来改善网格质 量。如图 20 所示针对孔边缘网格质量不好可以采用 “Washer”功能,添加 washer 来改善孔周围网格质量。
若有长宽比问题,可以点击“Replace”按钮,调 用 HyperMesh 面板选择节点合并, 并选择“yes to all” 完成合并节点功能。如图 21 所示为 Replace 面板。
类似地,可以点击“Smooth”按钮,调用如图 22 所示功能面板,选择需要修补的壳单元网格,并设置迭 代次数,其他默认设置后,软件会通过移动网格节点改 善网格形状来提高网格质量。
若网格中有需要补孔的地方,则可以点击“Hole Fill”功能图片,会进入如图 23 所示面板, HyperMesh 原有功能有两种方式, “Manual”人工选择网格孔边上的点进行填补, “Automatic”设置孔圆的最小半径进行自动选搜索后进行全部填补。
5 结语
针对 HyperMesh 网格划分过程中手工检查及修 补过于繁琐的实际问题,基于 Tcl/Tk 脚本编程语言进 行二次开发,集成并开发出自动划分网格、网格的检 查、网格自动清理、重新划网格、网格修补等步骤,并 利用跨平台窗体自定义界面直观显示网格修补方式, 采用 HyperMesh 自有功能和自定义功能相结合的方 式,集成了分割四边形、分割所有边、合并节点、添加 Washer、Smooth、填补孔六种修补方法。针对网格自 动划分和修补功能中可简化的操作对 HyperMesh 进行 了具备行业风格的二次开发,简化了操作流程,既减小 了人工操作出错的概率又提高了前处理的效率,为相关 工作人员提供了便利工具。
参考文献
[1] 叶松奎,崔朝军,沈斯哲,等.HyperMesh二次开发在模态、 刚度分析中的应用[J].机电技术,2016.(1):30-32.
[2] 王剑,刘泓廷,刘昱甫,等.基于HyperMesh平台的属性界面二次开发[J].机械工程与自动化,2022(3):62-64.
[3] 池聖財,陈泽中.基于C#语言的PowerMill模具零件加工软 件的二次开发[J].模具工业,2022.48(3):1-6.
[4] 陈坤,黄美华,张俊,等.HyperMesh二次开发在汽车座椅安 全带固定点强度分析中的应用[J].重庆理工大学学报(自然科 学),2019.33(2):33-37.
[5] 曾锋.基于HyperMesh软件的客车CAE前处理二次开发[J]. 客车技术与研究,2019.41(4):25-27.
[6] 郑燕娟,李庚袁.基于HYPERMESH的六面体网格局部加密 插件开发[J].企业科技与发展,2018(3):83-86.
[7] 肖云,张立平,张红芳,等.基于Hyper Mesh二次开发的对接 接头焊接网格过渡方法[J].电焊机,2018.48 (5):114-117.
[8] 周程,郑松林.基于HyperMesh的零件重命名与信息赋予工 具开发[J].软件导刊,2017.16(7):70-73.
[9] 唐诚成,魏秋奕,刘先应.基于HyperMesh二次开发的悬架 零件自动分析实例[C]//澳汰尔工程软件(上海)有限公司(Altair Engineering,Inc.).2017Altair技术大会论文集.[出版者不详], 2017:1282-1286.
[10] 范超.基于Tcl/Tk的HyperMesh CAE流程自动化系统的 研究与开发[D].合肥:合肥工业大学,2010.
[11] 丁涛,彭旺,纪绪北.HyperMesh二次开发在客车CAE分析 前处理上的应用[J].客车技术与研究,2015.37(6):47-49+56. [12] ANAND R B,KUMAR P.Process Automation of Simulation Using Toolkit/Tool Command Language (TK/ TCL)Scripting[J].IOP Conference Series Materials Science and Engineering,2018:402.
[13] 张艳华,李真真,李坤.网格划分对于低碳钢试样有限元分 析结果的影响[J].科技创新导报,2020.17(16):66-67.
关注SCI论文创作发表,寻求SCI论文修改润色、SCI论文代发表等服务支撑,请锁定SCI论文网!
文章出自SCI论文网转载请注明出处:https://www.lunwensci.com/jisuanjilunwen/60808.html