getdata提取曲线数据_基于Hypergraph创建曲线(矢量)的结果响应
上面讲到了如何使用Note功能创建Hyperview和Hypergraph结果响应,但都只是提到了创建标量结果的方法。这里继续讲一下如何创建曲线(时间历程)结果(矢量结果)。主要讲解三种方法,包括Tcl脚本方法和Note功能方法。
本文中以madymo软件的.lac结果文件为例。其他任意格式的曲线结果均可以按此方法进行。
方法一.通过Tcl命令提取结果 使用tcl提取结果需要工程师掌握二次开发的能力,这里为了降低使用门槛,结合了session文件和tcl脚本。首先通过hypergraph的GUI界面读取所需要的结果曲线。读入曲线后保存为.mvw文件。后续tcl命令需要调用这个文件。hwi GetSessionHandle mySessionName;mySessionName GetProjectHandle myProjectName;myProjectName GetTemplexHandle myTemplexName;hwc open session E:/01_SoftWareStudy/21_Madymo/Models/S106_FFR_TS/getdata.mvw replaceset xlist1 [myTemplexName Evaluate "{(p1w1c1.x)}" true];set ylist1 [myTemplexName Evaluate "{(p1w1c1.y)}" true];set numxlist1 [llength $xlist1];set numylist1 [llength $ylist1];set xlist "";for {set i 0} {$i < $numxlist1} {incr i} { set x [string trim [lindex $xlist1 $i] ","]; lappend xlist $x;}set ylist "";for {set i 0} {$i < $numylist1} {incr i} { set y [string trim [lindex $ylist1 $i] ","]; lappend ylist $y; }set filename "./results.txt";for {set i 0} { $i< $numxlist1 } {incr i} { set chan [open $filename a]; puts $chan [lindex $xlist $i],[lindex $ylist $i]; close $chan;}myTemplexName ReleaseHandle;myProjectName ReleaseHandle;mySessionName ReleaseHandle;hwi CloseStack;
后台运行hypergraph,调用tcl命令即可。具体命令为:
call "D:\Altair\2020\hwdesktop\hw\bin\win64\hw.exe" -b -clientconfighwplot.dat -tclgetcruvedata.tcl
运行完会生成一个包含曲线数据的结果文件
方法二.通过note功能提取结果 首先通过hypergraph的GUI界面读取所需要的结果曲线。读入曲线后添加一个note,具体内容如下: {open "results1"} {listx = {p1w1c1.x}} {listy = {p1w1c1.y}} {for (x=0; x<=200; x++)} {listx[{x}]},{listy[{x}]} {endloop} {close} 运行后会将曲线数据输出到results1.txt结果文件中。保存为.mvw文件。这时候可以直接后台调用这个mvw文件来生成结果文件即可。具体的命令为: call "D:\Altair\2020\hwdesktop\hw\bin\win64\hw.exe" -b -clientconfighwplot.dat -f getresults.mvw 注:如果无法正常生成结果文件,则使用hwc文件即可,即通过hwc命令来调用mvw,然后后台运行hwc文件。 其中:hwc调用mvw的命令为:open session getdata_M1.mvw replace,只需要将这一句命令保存为.hwc文件即可。 然后运行hwc文件的命令为: call "D:\Altair\2020\hwdesktop\hw\bin\win64\hw.exe" -b -clientconfighwpost.dat -hwcgetresults.hwc 方法三.通过note功能提取结果这个方法和方法二是一样的,只不过用了templex中自动的函数,而不是通过循环输出曲线结果。即使用自带的table命令输出矢量结果。首先通过hypergraph的GUI界面读取所需要的结果曲线。读入曲线后添加一个note,具体内容如下:
{open "results2.txt"}{listx = {p1w1c1.x}}{listy = {p1w1c1.y}}{table(listx,listy,"%.1f %.1f",0,200)}{close} 运行后会将曲线数据输出到results2.txt结果文件中。具体的使用方法和方法二一致。 生成的结果文件可以用于后续的优化软件进行结果解析生成矢量设计响应。