HyperWorks利用Tcl二次开发(后处理) 的过程与实例
(2016-09-16 18:27:36)
标签:
hypermesh二次开发hyperworkstcl/tkhypermesh脚本 |
分类: 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
(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} {
}
(13)释放变量
p1 ReleaseHandle
w1 ReleaseHandle
plot ReleaseHandle
c1 ReleaseHandle
cur ReleaseHandle
xv ReleaseHandle
yv ReleaseHandle
(14)结束
}