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