tcl脚本进行二次开发

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

HyperMesh中利用Tcl脚本进行二次开发

杨国雄

上海世科嘉车辆技术有限公司

HyperMesh中利用Tcl脚本进行二次开发

Further Develop by Tcl Script Based on

HyperMesh

杨国雄

(上海世科嘉车辆技术有限公司)

摘要:当代企业发展的关键是创新,本文通过对HyperMesh软件进来二次开发的两个实例—频响分析流程订制和通过Comps名自动定义单元属性,研讨了通过HyperMesh软件对企业CAE分析流程进行简化,标准化,人性化的可能性。

关键字:Tcl,二次开发,HyperMesh

Abstract:Innovation is the key of contemporary enterprise's development. In this paper, 2 examples(customized frequency analysis process and automatic definition of element properties via comps name)were made by further developed of HyperMesh. The possibility of CAE analysis process be simplified, standardized and humanized with HyperMesh software was also discussed.

Keyword:Tcl, Further Develop,HyperMesh

1 概述

随着各个行业对CAE技术应用的深入,企业对规范化分析流程,简化前处理等各个方面提出了需求。HyperMesh是一款功能强大的有限元前处理软件,同时还具有丰富的二次开发能力。通过二次开发为企业更好的利用HyperMesh软件提供了可能性。

2 HyperMesh二次开发简介

HyperMesh二次开发主要包括了2个层次的内容——宏命令和Tcl/Tk脚本。宏命令主要功能是定义面板按钮及对Tcl脚本的调用。Tcl/Tk脚本命令可以自定义各类窗口,程序的流程化控制,宏命令、Tcl脚本和C语言程序的关系如图1所示。本文主要讨论Tcl脚本的编写。

C函数

TCL

宏命

图 1 宏、Tcl 、C 函数关系

3 Tcl/Tk 简介

Tcl 是一种简单的轻量化的跨平台的脚本语言。没有复杂的函数调用,没有面向对象的概念,甚至没有繁多的变量类型,而这些特点一方面注定了Tcl 语言不能实现复杂的算法而只能作为一种控制流程的“壳”语言,另一方面又使得Tcl 语言的使用相当方便。

Tk 是Tcl 语言最著名的扩展库,它是用来定义图形对象用户界面的工具包,使用Tk 可以方便的定制各种自定义窗口。

4 实例一 频响分析流程窗口定义

频响分析是汽车NVH 有限元分析的重要手段,通过频响分析可以得到车身结构上动刚度特性曲线,而动刚度特性对于结构减震有重要意义。频响分析中需要定义的参数主要包括,

求解方法(直接法和叠加法)

,约束条件,激励扫频的范围及幅值,提取响应的频率范围,

计算中的结构阻尼等。

该实例通过建立一系列流程窗口,

帮助使用者快速完成频响分析的边界条件定义。

使用该流程的优点是保证参数定义的规范化及一致性,简化定义方法便于使用。

图2 使用Tk 扩展库定义的界面

图2是已经定义完的分析流程窗口,具体的窗口控件使用说明可以参照HW GUI Toolkit 提供的实例。

HyperMesh提供的函数可以分为3大类,Tcl GUI Commands(界面操纵函数),Tcl Modify Commands(模型修改函数),Tcl Query Commands(查询命令函数)。

模型属性卡片的定义可以使用HyperMesh提供的各类函数,该Tcl文件主要使用到了3个HyperMesh函数,hm_entityinfo(属性查询),cardcreate(卡片创建),attributeupdateint (属性定义)。

RESVEC参数是频响分析中经常会使用到的参数,但在nastran的默认模板下却并没有这个参数,我们可以通过修改HyperMesh中nastran的模板文件(attribs文件及general1文件),使得在HyperMesh可以添加该参数,如图3。

图3 修改模板后增加了参数

最后可以通过修改.Mac文件,将Tcl文件集成在菜单中,也可以直接分发Tcl文件通过调用Tcl Script的方式运行,如图4。

图4 修改菜单

需要注意的是如果希望在HyperMesh的Tcl中使用中文(包括注释和输出)必须将Tcl 文件保存为utf-8的编码方式。

5 实例二通过Comps名自动完成属性定义

在建立整车模型过程中,往往需要同时多人参与建模。而在后期整合模型的过程中可能因为多人不同的习惯导致给模型赋予属性需要花费大量的时间。开发这个Tcl脚本的目的是可以通过规范化HyperMesh中Comps的命名达到自动完成各项属性赋值的目的,避免手动赋值可能产生的错误。

公司建模Comps命名规范:零件名_材料名_厚度(无厚度的自动定义为Psolid属性)。

图5 执行Tcl脚本前

通过执行这个Tcl脚本,原模型中所有层属性,材料,及厚度已经全部由Comps名自动完成了定义如图5、图6和图7。

图6 自动生成的属性和材料

图7 自动完成属性卡片的指定

该脚本中主要通过Tcl提供的字符串处理函数切割Comps名得到相关的参数,再建立

相关文档
最新文档