Python调用Ansys、Nastran
import os import shutil import subprocess def runAnsys(modelFile): #modelFile为cdb文件 sourcePath = os.getcwd() ansysWorkspace = os.path.join(sourcePath,"ansys") #需要有ansys文件夹 ansysWorkspace = os.path.join(ansysWorkspace,os.path.basename(modelFile).replace(".cdb","")) os.mkdir(ansysWorkspace) shutil.copyfile(modelFile,os.path.join(ansysWorkspace,os.path.basename(modelFile)))#移动*.cdb到ansys工作路径 macFile = os.path.join(ansysWorkspace,"run.mac") #生成.mac,读入cdb,静力分析 f = open(macFile,'w') f.write("finish\n/clear\n") f.write("CDREAD,DB,'") f.write(os.path.basename(modelFile).replace(".cdb","")) f.write("','cdb',,'',''\n") f.write("/sol\nantype,0\nsolve\nfinish") f.close() ansysPath = "\"E:\\Program Files\\ANSYS Inc\\v201\\ansys\\bin\\winx64\\MAPDL.exe\" -b -g -p ane3fl -dis -mpi INTELMPI -np 2 -lch" jobName = "model" ansyscmd = ansysPath #Ansys路径 ansyscmd = ansyscmd + " -dir " + ansysWorkspace #Ansys工作路径 ansyscmd = ansyscmd + " -j "+jobName+" -s read -l en-us -t -d win32" #工程名 ansyscmd = ansyscmd + " -i " + os.path.join(macFile) #输入文件(APDL) ansyscmd = ansyscmd + " -o " + os.path.join(ansysWorkspace,jobName+".out") #输出文件 os.system(ansyscmd) #调用Ansys shutil.copyfile(os.path.join(ansysWorkspace,jobName+".rst"),modelFile.replace(".cdb",".rst")) #移动*.rst到原cdb路径 def runNastran(modelFile): #modelFile为bdf文件 sourcePath = os.getcwd() nastranWorkspace = os.path.join(sourcePath,"nastran") #需要有nastran文件夹 nastranWorkspace = os.path.join(nastranWorkspace,os.path.basename(modelFile).replace(".bdf","")) os.mkdir(nastranWorkspace) shutil.copyfile(modelFile,os.path.join(nastranWorkspace,os.path.basename(modelFile)))#移动*.bdf到nastran工作路径 nastranPath = "C:\\MSC.Software\\MSC_Nastran\\20121\\bin\\nastran.exe" #Nastran路径 batFile = os.path.join(nastranWorkspace,"runBatch.bat") #生成.bat f = open(batFile,'w') f.write(nastranPath) f.write(" "+ os.path.join(nastranWorkspace,os.path.basename(modelFile))) # f.write(" scr=yes old=no delete=f04,log,xdb") f.close() os.chdir(nastranWorkspace) #改变python当前工作路径 subprocess.call(batFile) #运行.bat调用Nastran os.chdir(sourcePath) shutil.copyfile(os.path.join(nastranWorkspace,os.path.basename(modelFile).replace(".bdf",".f06").lower()),modelFile.replace(".bdf",".f06")) #移动*.f06到原bdf路径