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路徑