Python调用Ansys、Nastran


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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM