HyperWorks 集成桌面环境下二次开发【四】----脚本实例
2013-05-30 10:39
691 查看
实例一 载入模型并查看模型应力
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版本。
相关文章推荐
- HyperWorks 集成桌面环境下二次开发【五】----编写教程
- HyperWorks 集成桌面环境下二次开发【二】----基础
- HyperWorks 集成桌面环境下二次开发【一】----基础
- HyperWorks 集成桌面环境下二次开发【三】----数据层级结构
- C#环境下利用VS2017使用MapXtreme7.0.0开发桌面应用实例
- 利用Docker集成多人合作二次开发cacti的开发环境部署文档
- 在bitnami集成环境下进行redmine的二次开发--开发环境的搭建
- Docker 实现在线集成开发环境实例详解
- 【脚本语言系列】关于Python集成开发环境,你需要知道的事
- Java3D 集成开发环境部署与配置(含实例)
- eclipse集成Hadoop 开发环境
- 在 Windows 平台搭建 PHP 集成开发环境
- 用VC6.0集成环境快速开发VxD
- 汇编语言集成开发环境略述
- Revit 二次开发实例分享
- caffe一键式训练评估集成开发环境
- DedeCms二次开发之简单的查询、插入、更新、删除操作实例
- Linux操作系统的种种集成开发环境
- eclipse开发环境打造系列----->Python开发环境集成
- Eclipse下JacORB开发环境搭建及实例