HyperWorks 集成桌面环境下二次开发【四】----脚本实例

实例一  载入模型并查看模型应力

set proc_name "contour_stress"

hwi GetSessionHandle sess

 

if {[catch {

 hwi GetSessionHandle sess

 sess GetProjectHandle proj

 proj GetPageHandle page [proj GetActivePage]

 proj ReleaseHandle

 page GetWindowHandle win [page GetActiveWindow]

 win SetClientType "Animation"

 win GetClientHandle post

 win ReleaseHandle

 

 # Load model

 set model_id [post AddModel d:/samples/dyna/bumper_foam/d3plot"]

 post GetModelHandle mod $model_id

 mod SetResult "d:/samples/dyna/bumper_foam/d3plot"

 

 # Advance to first frame.

 page GetAnimatorHandle animator

 animator Next

 

 # Enable contour state and visibility

 mod GetResultCtrlHandle res

 mod ReleaseHandle

 res GetContourCtrlHandle contour_ctrl

 res ReleaseHandle

 contour_ctrl SetEnableState true

 post SetDisplayOptions "contour" true

 

 # Set result state

 contour_ctrl SetDataType "stress"

 contour_ctrl SetShellLayer "max"

 contour_ctrl SetDimensionEnabled shell true

 contour_ctrl SetDataComponent shell "P1"

 contour_ctrl SetDimensionEnabled solid true

 contour_ctrl SetDataComponent solid "P1"

 

 post Draw

 

 # Cleanup handles to avoid leaks and handle name collisions.

 contour_ctrl ReleaseHandle

 post ReleaseHandle

 page ReleaseHandle

 sess ReleaseHandle

         

} result]}

 # Error handling

 puts $logfile "----- Error occured running $proc_name -----"

 puts $logfile "[sess GetError]"

 puts $logfile "--------------------------------------------"

}   

实例二  在当前窗口中为每条曲线添加时间轴向量

set proc_name "setTimeVector"

hwi GetSessionHandle sess

 

if {[catch {

 

 sess GetProjectHandle proj

 proj GetPageHandle page [proj GetActivePage]

 page GetWindowHandle win [page GetActiveWindow]

         

 if {[string match [win GetClientType] "Plot"]}

         win GetClientHandle plot

 

         set numcurves [plot GetNumberOfCurves]

         for {set i 1} {$i <= $numcurves} {incr i}

                 plot GetCurveHandle curve $i

                 curve GetVectorHandle curve_x x

                 curve GetVectorHandle curve_time time

                 if {![string length [curve_time GetValuesList]]}

                         set max_x [lindex [lsort -real [curve_x GetValuesList]] end]

                         curve_time SetType values

                         curve_time SetValues [join [curve_x GetValuesList] ,]

                         if {$max_x >= 1.00}

                                 set scale [expr [string length [expr int($max_x)]] * 10.00]

                                 curve_time SetScaleFactor [expr 1.00 / $scale]

                         }

                 }

                 plot Recalculate

                 plot Draw

                 

                 # Cleanup handles to avoid leaks and handle name collisions.

                 curve_time ReleaseHandle

                 curve_x ReleaseHandle

                 curve ReleaseHandle

         }

 } else

         puts $logfile "Invalid Window Type: requires a plot window."

 }

 

  # Cleanup handles        

 plot ReleaseHandle

 win ReleaseHandle

 page ReleaseHandle

 proj ReleaseHandle

 sess ReleaseHandle

 

} result]}

 # Error handling

 set msg "Error occured running $proc_name\n\n[sess GetError]"

 tk_messageBox -title "Error running script" -message $msg

}

实例三 获取应力与位移的JEPG图像

set proc_name "jpeg_capture"

hwi GetSessionHandle sess

 

if {[catch {

 

 # Get a post object handle

 sess GetProjectHandle proj

 proj GetPageHandle page [proj GetActivePage]

 page GetWindowHandle win [page GetActiveWindow]

 win SetClientType "Animation"

 win GetClientHandle post

 

 # Load model

 set myfile "d:/samples/dyna/bumper_foam/d3plot"

 set model_id [post AddModel $myfile]

 post GetModelHandle mod $model_id

 mod SetResult $myfile

 

 # Advance to last frame.

 page GetAnimatorHandle animator

 animator SetAnimationMode "transient"

 animator SetCurrentStep [expr [animator GetNumberOfSteps]-1]

 

 # Enable contour state and visibility

 mod GetResultCtrlHandle res

 mod ReleaseHandle

 res GetContourCtrlHandle contour_ctrl

 res ReleaseHandle

 contour_ctrl SetEnableState true

 post SetDisplayOptions "contour" true

 post SetDisplayOptions "legend" true

 

 # Set to stress datatype

  set datatype "stress"

 contour_ctrl SetDataType $datatype

 contour_ctrl SetShellLayer "max"

 contour_ctrl SetDimensionEnabled shell true

 contour_ctrl SetDataComponent shell "P1"

 contour_ctrl SetDimensionEnabled solid true

 contour_ctrl SetDataComponent solid "P1"

 post Draw

 sess CaptureScreen "jpeg" "$tag-$datatype.jpg"

 

 # Set to displacement datatype

  set datatype "displacement"

 contour_ctrl SetDataType $datatype

 post Draw

 sess CaptureScreen "jpeg" "$tag-$datatype.jpg"

 

 # Cleanup handles to avoid leaks and handle name collisions.

 contour_ctrl ReleaseHandle

 post ReleaseHandle

 page ReleaseHandle

 sess ReleaseHandle

         

} result]}

 # Error handling

 set msg "Error occured running $proc_name\n\n[sess GetError]"

 tk_messageBox -title "Error running script" -message $msg

}

 


参考HyperWorks Desktop 手册,12.0版本。
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值