加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

HyperWorks利用Tcl二次开发(后处理) 的过程与实例

(2016-09-16 18:27:36)
标签:

hypermesh二次开发

hyperworks

tcl/tk

hypermesh脚本

分类: HyperMesh技术及二次开发


HyperMesh的二次开发时相对简单一些,因为很多脚本都能够通过cmf文件查询到,而在后处理过程中则相对难一些,毕竟不能够直接查询到所用的Tcl命令。下面以一个例子介绍后处理开发的主要过程。

1)建立一个proc

可以理解为一个子程序或者函数,同样有带参数和不带参数的,例如:

proc ShowCurves {fileName amount}  {

}

2)获得hwi对象

Hwi对象是最顶级的父对象,下级的所用命令都来自于hwi,可以理解为一个大类,如下定义了一个Sessionhandle ,名称为sess

hwi GetSessionHandle sess

3)获得下一级project handle

sess GetProjectHandle proj

4)得到具体的数据

sess GetDataFileHandle data $fileName

    5)对数据的一些操作

     foreach value [data GetDataTypeList false] {

 

             foreach request [data GetRequestList $value false] {

 

                     foreach component [data GetComponentList $value false] {

6)获得page,window,client

proj GetPageHandle p1 1

p1 GetWindowHandle w1 1

w1 SetClientType Plot

w1 GetClientHandle plot

7)对plot下的对象进行操作

set cn [plot AddCurve]

plot GetCurveHandle c1 $cn

8

c1 GetVectorHandle xv x

xv SetType File

xv SetFilename $fileName

c1 GetVectorHandle yv y

yv SetType File

yv SetFilename $fileName

yv SetDataType $value

yv SetRequest $request

yv SetComponent $component

9)重新计算/显示

plot Recalculate

plot Autoscale

plot Draw

10)找到最大值

c1 AddCursor

c1 GetCursorHandle cur 1

cur FindGlobalMax y

set maxY [cur GetY]

cur FindGlobalMin y

set minY [cur GetY]

11)计算差别

set diff [expr abs($maxY-$minY)]

12)判断

if {$diff < $amount} {

             c1 SetVisibility false

}

13)释放变量

p1 ReleaseHandle

w1 ReleaseHandle

plot ReleaseHandle

c1 ReleaseHandle

cur ReleaseHandle

xv ReleaseHandle

yv ReleaseHandle

14)结束

                 }

         }

 }

}

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有