tecplot录制宏(Macro)用以批量导入数据

Posted cfdchen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tecplot录制宏(Macro)用以批量导入数据相关的知识,希望对你有一定的参考价值。

今天要用Tecplot做后处理。需要导入几十个甚至上百个数据文件,并且每导入一个数据文件,就要重命名,以便区分。这样的工作量手动一个一个地操作显然不太现实,我想能不能让其自动地完成这些重复地操作。这个问题让我想到了以前用的几款软件都有宏Marco这个命令,即可以把操作过程录制成宏,然后运行这个宏命令,就可以把刚才录制的命令完整地重新操作一遍,比如三维设计软件CATIA,网格画分软件Pointwise。更加简便灵活的地方是可以对宏进行编辑,比如修改某个尺寸,修改某个名字,甚至复制某段命令,让其重复执行。

Tecplot当然也有这样的操作。于是我就按照这个思路尝试录制宏。

首先新建一个宏开始录制。菜单栏选择Scripting>>Record Macro,新建宏。然后会出现一个小对话框,暂时不管它。

技术图片          技术图片

接着,导入一个数据文件,并在Data中对此文件(就是Zone)重命名。然后在刚才的小对话框中选择Stop Recording,结束录制。用文件编辑器打开保存的宏命令文件,比如UltraEdit,对其进行编辑。

 1 #!MC 1410
 2 $!ReadDataSet  "D:data611
esults_grid_1_tecplot.dat" 
 3   ReadDataOption = Append
 4   ResetStyle = No
 5   VarLoadMode = ByName
 6   AssignStrandIDs = Yes
 7   VarNameList = "x" "y" "u" "v" "w" "rho" "p" "Z Vorticity"
 8 $!RenameDataSetZone
 9   Zone =  28
10   Name = 611

以上即是保存的宏命令文件。如果要重复操作的文件数量不多,比如10个,那么就可以直接在UltraEdit中复制粘贴命令,修改对应的文件路径与文件名即可。这里仅需要修改对应的第二行的文件路径,第九行的Zone代码,和第十行的Name。但是如果文件数量非常多,手动复制修改仍然非常繁琐。对于这种简单重复的操作,当然可以写一小段代码帮助实现了。最近一直在用Fortran写代码,于是我就写了段Fortran实现自动复制与编辑。代码如下:

 1 program main
 2 implicit none
 3 
 4   integer j
 5   integer, parameter :: n_data = 670
 6   character(len=3) :: cTemp
 7 
 8   open(10, file="tecplot_load_data.mcr", status="replace")
 9 
10   do j = 611, n_data
11 
12     write(cTemp, "(i3)") j
13     write(10,*) "#!MC 1410"
14     write(10,*)  "$!ReadDataSet  " // "‘""D:data" &
15 &//  trim(adjustl(cTemp)) // "
esults_grid_1_tecplot.dat"" ‘"
16     write(10,*) "  ReadDataOption = Append"
17     write(10,*) "  ResetStyle = No"
18     write(10,*) "  VarLoadMode = ByName"
19     write(10,*) "  AssignStrandIDs = Yes"
20     write(10,*) "  VarNameList = ‘""x"" ""y"" ""u"" ""v"" ""w"" ""rho"" ""p"" ""Z Vorticity"""
21     write(10,*) "$!RenameDataSetZone"
22     write(10,"(""   Zone = "" i3)") j-583
23     write(10,*) "  Name = " // "‘" // trim(adjustl(cTemp)) // "‘"
24 
25   end do
26 
27 end

代码需要注意的地方是引号的问题,单引号,双引号套用要注意。我会单独开一篇博文讲一下单双引号的问题。

修改完之后保存,然后在Tecplot里边运行这个宏Macro文件即可,这个宏命令会自动循环加载数据文件并修改文件(Zone)的名字。很方便。

技术图片

以上是关于tecplot录制宏(Macro)用以批量导入数据的主要内容,如果未能解决你的问题,请参考以下文章

oeasy教您玩转vim - 81 - # 宏macro的进阶

word 批量处理 宏

从多个TXt文件导入数据到excel中,如何修改VBA代码,选取不同的文件

从父模块导入宏[重复]

Excel中使用宏工具,告别重复工作,批量处理xls文件 - WPS Excel

如何从用户定义的包中正确导入宏?