HyperWorks 集成桌面环境下二次开发【五】----编写教程

1、创建过程proc

Ø  一个proc 类似于其他语言中的function,可以被调用。

Ø  过程中的参数使用中括号引用 {arg1,arg2},在函数内部使用参数时,需要使用符号$, $arg1,可以类比其他语言中的形式参数。

Ø  proc 最后的{}内部为过程的程序体。基本结构如下:


2、hwi是最高层,连接其他对象。

在开发时,需要首先通过hwi获取session,然后逐层深入获取所需要的API

hwi GetSessionHandle sess

 

3、获取项目handle

sess GetProjectHandle proj

 

4、通过数据文件handle打开数据文件,通过$指定数据文件

sess GetDataFileHandle data $fileName

 

5、foreach循环执行输入数据中的所有数据,例如:

foreachvalue [data GetDataTypeList false] {

foreachrequest [data GetRequestList $value false] {

foreachcomponent [data GetComponentList $value false] {

 

6、获取当前page,window,与client(并在获取对象handle时,设置当前client类型)。

proj GetPageHandle p1 1

p1 GetWindowHandle w1 1

w1 SetClientType Plot

w1 GetClientHandle plot

 

7、设置每次添加的曲线名称为cn,在每次获取曲线handle的时候不需要知道曲线的编号,如下:

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 Recaculate

plot Autoscale

plot Draw

 

10、寻找最大最小y值并赋给指定变量

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 SetVisiablity false

}

 

13、释放所有的Handle,以方便在循环中重新被获取

p1 ReleaseHandle

w1 ReleaseHandle

plot ReleaseHandle

c1 ReleaseHandle

cur ReleaseHandle

xv ReleaseHandle

yv ReleaseHandle



procShowCurves {fileName amount}  {

proc ShowCurves {fileName amount}  {
			hwi GetSessionHandle sess
			sess GetProjectHandle proj
			sess GetDataFileHandle data $fileName
			foreach value [data GetDataTypeList false] {
                 foreach request [data GetRequestList $value false] {
                         foreach component [data GetComponentList $value false] {
                         	proj GetPageHandle p1 1
													p1 GetWindowHandle w1 1
													w1 SetClientType Plot
													w1 GetClientHandle plot
													set cn [plot AddCurve]
													plot GetCurveHandle c1 $cn
													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
													plot Recalculate
													plot Autoscale
													plot Draw
													c1 AddCursor
													c1 GetCursorHandle cur 1
													cur FindGlobalMax y
													set maxY [cur GetY]
													cur FindGlobalMin y
													set minY [cur GetY]
													set diff [expr abs($maxY-$minY)]
													if {$diff < $amount} {
							            		c1 SetVisibility false
															}
													p1 ReleaseHandle
													w1 ReleaseHandle
													plot ReleaseHandle
													c1 ReleaseHandle
													cur ReleaseHandle
													xv ReleaseHandle
													yv ReleaseHandle
													                 }

         }

 }

}

 



  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值