一个简单的C++代码,可以生成tecplot的脚本文件,打开文件就能自动绘图。绘图过程是先把文件导入,然后镜像,最后生成一个动画,但是导入的文件名称要求是有规律的。
1 /* 2 ** This program is used to create macro command file 3 ** execute the file to draw picture automatically 4 */ 5 #include <iostream> 6 #include <fstream> 7 8 using namespace std; 9 10 int main() 11 { 12 cout << "Hello world!" << endl; 13 ofstream fcout; 14 fcout.open("macro_new.mcr"); 15 string file_name_num; 16 cout<<"enter the file name number:"<<endl; 17 cin>>file_name_num; 18 cout<<"enter end file number:"<<endl; 19 int first_file_number(10002); 20 int zero_file_number (10000); 21 int end_file_number(10052); 22 cin>>end_file_number; 23 end_file_number+=zero_file_number; 24 25 int incre_num = first_file_number - zero_file_number; 26 int judge_num=(end_file_number-zero_file_number)/incre_num+1; 27 if (judge_num%2) 28 judge_num--; 29 30 fcout<<"#!MC 1300"<<endl; 31 fcout<<"# Created by Tecplot 360 build 13.1.0.15185"<<endl; 32 fcout<<"$!VarSet |MFBD| = \'F:\\droplet\\vision"<<file_name_num<<"\\plt\'"<<endl; 33 fcout<<"$!READDATASET \'"; 34 for(int i=0;i!=judge_num;++i) 35 { 36 fcout<<"\"|MFBD|\\axissym_"<<zero_file_number+i*incre_num<<".plt\" "; 37 } 38 fcout<<"\'"<<endl; 39 fcout<<" READDATAOPTION = NEW"<<endl; 40 fcout<<" RESETSTYLE = NO"<<endl; 41 fcout<<" INCLUDETEXT = NO"<<endl; 42 fcout<<" INCLUDEGEOM = NO"<<endl; 43 fcout<<" INCLUDECUSTOMLABELS = NO"<<endl; 44 fcout<<" VARLOADMODE = BYNAME"<<endl; 45 fcout<<" ASSIGNSTRANDIDS = YES"<<endl; 46 fcout<<" INITIALPLOTTYPE = CARTESIAN2D"<<endl; 47 fcout<<" VARNAMELIST = \'\"X\" \"Y\" \"U\" \"V\" \"P\" \"fi\" \"C1\" \"C2\" \"C3\"\'"<<endl; 48 fcout<<"$!GLOBALCONTOUR 1 VAR = 5"<<endl; 49 fcout<<"$!CONTOURLEVELS RESETTONICE"<<endl; 50 fcout<<" CONTOURGROUP = 1"<<endl; 51 fcout<<" APPROXNUMVALUES = 15"<<endl; 52 fcout<<"$!FIELDLAYERS SHOWCONTOUR = YES"<<endl; 53 fcout<<"$!GLOBALCONTOUR 1 VAR = 6"<<endl; 54 fcout<<"$!CONTOURLEVELS RESETTONICE"<<endl<<" CONTOURGROUP = 1"<<endl<<" APPROXNUMVALUES = 15"<<endl; 55 fcout<<"$!VIEW FIT"<<endl<<"$!CREATEMIRRORZONES "<<endl<<" SOURCEZONES = [1-"<<judge_num<<"]"<<endl<<" MIRRORVARS = [1]"<<endl; 56 fcout<<"$!VIEW FIT"<<endl<<"$!EXTENDEDCOMMAND "<<endl; 57 fcout<<" COMMANDPROCESSORID = \'Strand Editor\'"<<endl; 58 fcout<<" COMMAND = \'ZoneSet=1-"<<judge_num<<";MultiZonesPerTime=TRUE;ZoneGrouping=Time;GroupSize=2;"; 59 fcout<<"AssignStrands=TRUE;StrandValue=1;AssignSolutionTime=TRUE;TimeValue=0;TimeOption=ConstantDelta;DeltaValue=1;\'"<<endl; 60 fcout<<"$!EXTENDEDCOMMAND "<<endl<<" COMMANDPROCESSORID = \'Strand Editor\'"<<endl; 61 fcout<<" COMMAND = \'ZoneSet="<<judge_num+1<<"-"<<2*judge_num<<";MultiZonesPerTime=TRUE;ZoneGrouping=Time;GroupSize=2;"; 62 fcout<<"AssignStrands=TRUE;StrandValue=1;AssignSolutionTime=TRUE;TimeValue=0;TimeOption=ConstantDelta;DeltaValue=1;\'"<<endl; 63 fcout<<"$!RemoveVar |MFBD|"<<endl; 64 65 fcout.close(); 66 return 0; 67 }