wednesday是什么意思
0、proc文件中的几个重要的关键词
*save_as_model D:\optiext\extrusion.mud yes
*write_marc D:\optiext\extrusion.dat yes
*quit yes
1、Mentat的背景执行过程文件test.proc.
命令行:
mentat -pr test.proc(必须有文件全名)
2、Marc的背景执行模型文件model.dat
命令行:
run_marc -jid mode l -ver no -back no(可以省略扩展名)
3、提取Marc结果的python程序为MarcResult.py
其目的是从marc输出t16文件extrusion.t16中提取结果,输出到s中去。(按照自己的需要进行修改)
使用方法
python ExtractMarcResult.py extrusion.s
源程序:
from py_post import *
import string
import sys
import time
def Extract(fname1,fname2):
p=post_open(fname1)
ninc=p.increments()
des()
elements=p.elements()
xlist=[]
ylist=[]
for i in range(0,elements):
el=p.element(i)
for j in range(0,el.len):
nodeid=el.item[j]
de_quence(nodeid)
de(nodeq)
if (node.x,nodeid) not in xlist:
xlist.append(node.x,nodeid)
if (node.x,nodeid) not in ylist:
ylist.append(node.y,nodeid)
xlist.sort()
ylist.sort()
#get upper die cbody force
updieforcex=p.cbody_force(1)[0]
updieforcey=p.cbody_force(1)[1]
out=open(fname2,'w',-1)
str="%10g %10g %10g %10g\n" % (-xlist[0][0]+30,ylist[0][0]*2,-1*updieforcex,updieforcey)
out.write(str)
out.clo()
公斤的英文if __name__=='__main__':
Extract(sys.argv[1],sys.argv[2])
print '\a'
4、对分析结果的备份
如果希望备份每次执行的结果,可以运用下面这个程序BackFile.cpp。该程序自动备份
当前目录到父目录下以当前日期时间为名字的子目录中。该程序用到了DOS命令XCOPY,
需要首先检查一下自己系统上是否有该命令。
#include <ctime>
#include <iostream>
#include <stdlib.h>
#include <string>
using namespace std;
int main(void)
{
time_t timep;
struct tm *p;
char datetime[20];
time (&timep);
string dirname,cmdstr;
dirname=ctime(&timep);
p=localtime(&timep);
sprintf(datetime,"..\\%4d%02d%02d%02d%02d%02d",1900+p->tm_year,1+p->tm_mon,p->tm_m
day,p->tm_hour,p->tm_min,p->tm_c);
dirname=datetime;
cmdstr="md "+dirname;
system(cmdstr.c_str());
cmdstr="xcopy *.* /e "+dirname;
system(cmdstr.c_str());
return 0;
}
5、那么就可以将其合成为一个批处理文件 sim.bat,
内容如下:
d:
cd d:\optiext
cmd /c mentat -pr extrusion.proc
cmd /c run_marc -jid extrusion.dat -ver no -back no
python ExtractMarcResult.py extrusion.s
<
6、Ansys执行的批处理文件事例
同样道理,我们可以针对ansys分析设计批处理文件如下
f:
cd f:\optrf
del *.lock如何推销产品
相形见绌cmd /c ansys81 -b -mpi -p ansysds -i shell0420.inp -
<
7、经常的,isight执行该批处理文件并不是序列顺序执行,即并不等待上一句是否执行完毕就开始执行下一语句了。
因此,写了一个简单的C++程序ExecBatch.cpp,来执行上面的sim.bat。
其原理是:首先向一个标志文件里面写入“RUNNING”标志字符串,然后再开始执行批处理程序sim.bat。最后,再向标志文件中写入"READY“标志字符串。
采用该方法可以简单方便的直接将要运行的一系列命令放入该批处理文件即可,并可以测试执行。通过检测运行结束标志,避免了isight不管是否已经执行完上一语句就继续下一循环的缺陷。
程序调用方法: sim.bat
saturday
程序内容如下:
#include <stdlib.h>
阻尼比
#include <stdio.h>
int main(int argc, const char* argv[] )
{
FILE* fp=fopen("","w");
太空陨石fprintf(fp,"%s\n","RUNNING");
fclo(fp);
printf("\a");
考研现场确认时间
system(argv[1]);六级分数查询
fp=fopen("","w");
fprintf(fp,"%s\n","READY");
留学生创业
fclo(fp);
printf("\a\a");
return 0;
}
8、通过ISIGHT中将过程进行集成即可。
集成过程时注意:
(1)、将作为可执行文件集成,Program设置Elapd time limit(conds):36000 该时间表示仿真程序所需要的最大时间,如果超过该限制,就进入下一次运行。请事先估计仿真程序运行时间。
(2)、Run control中,设置执行方式为Background Execution, 通过设置运行结束标志READY。(前面有定义)
延迟时间根据仿真规模不同进行设置以保证诸如仿真内存释放等过程顺利完成。
(3)、Run Result中设置返回代码0,此项在上面ExecBatch最后有定义。(该选择不必然有,我设置了是为了保险起见)
(4)、过程集成定义我做的例子。