Python在A(yíng)BAQUS二次開(kāi)發(fā)中的應(yīng)用實(shí)例2課件_第1頁(yè)
Python在A(yíng)BAQUS二次開(kāi)發(fā)中的應(yīng)用實(shí)例2課件_第2頁(yè)
Python在A(yíng)BAQUS二次開(kāi)發(fā)中的應(yīng)用實(shí)例2課件_第3頁(yè)
Python在A(yíng)BAQUS二次開(kāi)發(fā)中的應(yīng)用實(shí)例2課件_第4頁(yè)
Python在A(yíng)BAQUS二次開(kāi)發(fā)中的應(yīng)用實(shí)例2課件_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

Python在A(yíng)BAQUS二次開(kāi)發(fā)中的應(yīng)用實(shí)例Python在A(yíng)BAQUS二次開(kāi)發(fā)中主要內(nèi)容一、ABAQUS腳本概述二、Python語(yǔ)言簡(jiǎn)介三、ABAQUS腳本編寫(xiě)主要內(nèi)容一、ABAQUS腳本概述一、ABAQUS腳本概述一、ABAQUS腳本概述ABAQUS腳本概述ABAQUS軟件簡(jiǎn)介ABAQUS是國(guó)際著名的CAE軟件,它以解決實(shí)際工業(yè)問(wèn)題能力和強(qiáng)大的非線(xiàn)性功能贏(yíng)得廣泛聲譽(yù)。航空工業(yè)是ABAQUS最重要的應(yīng)用領(lǐng)域之一,波音、空中客車(chē)、洛克希德?馬丁等是其長(zhǎng)期合作的用戶(hù)。ABAQUS分析過(guò)程由三個(gè)步驟組成:前處理(ABAQUS/CAE);模擬計(jì)算(ABAQUS/Standard

或者ABAQUS/Explicit);后處理(ABAQUS/CAE)。建模過(guò)程主要集中在前處理步驟中。ABAQUS腳本概述ABAQUS軟件簡(jiǎn)介ABAQUS分析過(guò)ABAQUS腳本概述ABAQUS建模方法常用的ABAQUS建模方法主要有三種:①在A(yíng)BAQUS/CAE界面建模優(yōu)點(diǎn):界面直觀(guān),簡(jiǎn)單易懂;缺點(diǎn):操作步驟繁瑣,不利于修改,缺乏通用性。②通過(guò)inp文件建模優(yōu)點(diǎn):可以直接在A(yíng)BAQUS中提交;缺點(diǎn):只包含模型節(jié)點(diǎn)信息,代碼較多,修改不便;③使用Python語(yǔ)言建模優(yōu)點(diǎn):代碼少,語(yǔ)言友好,可移

植性好,可進(jìn)行參數(shù)化修改;缺點(diǎn):不夠直觀(guān)。ABAQUS腳本概述ABAQUS建模方法ABAQUS腳本概述ABAQUS腳本接口A(yíng)BAQUS有限元分析軟件二次開(kāi)發(fā)環(huán)境提供的腳本接口,是基于Python語(yǔ)言進(jìn)行的定制開(kāi)發(fā)。在A(yíng)BAQUS/CAE中進(jìn)行建模和進(jìn)行后處理時(shí),對(duì)話(huà)框中做的所有設(shè)置都由ABAQUS/CAE從內(nèi)部發(fā)出與之對(duì)應(yīng)的命令(command)。ABAQUS腳本接口直接與內(nèi)核進(jìn)行通信(communicate),而與ABAQUS/CAE的圖形用戶(hù)界面(GUI)無(wú)關(guān)。如果將所有的腳本接口命令存儲(chǔ)于文件中,該文件則稱(chēng)為腳本(script)。腳本由一系列純ASCII格式的Python語(yǔ)句組成,擴(kuò)展名一般為.py。ABAQUS腳本概述ABAQUS腳本接口在A(yíng)BAQUS/CABAQUS腳本概述ABAQUS腳本接口編寫(xiě)腳本可以實(shí)現(xiàn)以下功能:自動(dòng)執(zhí)行重復(fù)任務(wù);進(jìn)行參數(shù)分析;創(chuàng)建和修改模型;訪(fǎng)問(wèn)輸出數(shù)據(jù)庫(kù)(ODB文件);定制ABAQUS環(huán)境文件;創(chuàng)建ABAQUS插件程序。編寫(xiě)完成的腳本文件,可以直接在A(yíng)BAQUS運(yùn)行:File→RunScript,打開(kāi)相應(yīng)的.py文件,即可執(zhí)行;剛打開(kāi)ABAQUS界面,直接選擇RunScript也可;可以在GUI界面下部的命令行接口輸入腳本語(yǔ)句執(zhí)行。ABAQUS腳本概述ABAQUS腳本接口A(yíng)BAQUS腳本概述創(chuàng)建ABAQUS腳本創(chuàng)建腳本有3種常用方法:①在GUI建模時(shí)錄制宏(macro)File→MacroManager可以按需錄制任何操作對(duì)應(yīng)的命令②直接編輯abaqus.rpy文件建模時(shí)工作目錄下自動(dòng)生成abaqus.rpy文件使用軟件EditPlus可以直接打開(kāi)編輯保存.cae文件并退出后才能生成.rpy文件③借助PythonReader.exe軟件中國(guó)石油大學(xué)焦中良開(kāi)發(fā)可以實(shí)時(shí)獲取CAE每步操作對(duì)應(yīng)的腳本命令A(yù)BAQUS腳本概述創(chuàng)建ABAQUS腳本ABAQUS腳本概述調(diào)試ABAQUS腳本調(diào)試腳本有多種方法,這里介紹Abaqus自帶的PDE中的調(diào)試。PDE(PythonDevelopmentEnvironment,Python開(kāi)發(fā)環(huán)境)有以下功能:編輯Python文件、調(diào)試Python腳本或插件;創(chuàng)建guiLog腳本,錄制所有的GUI動(dòng)作;通過(guò)GUI(guiLog)運(yùn)行Python腳本或在A(yíng)BAQUS/CAE之外運(yùn)行Python腳本;設(shè)置延遲(delay)和斷點(diǎn)(breakpoint),并查看代碼的執(zhí)行情況;在watch窗口中查看變量值等。打開(kāi)方式File→AbaqusPDE,然后打開(kāi)相應(yīng)的.py文件,即可編輯調(diào)試。ABAQUS腳本概述調(diào)試ABAQUS腳本ABAQUS腳本概述調(diào)試ABAQUS腳本點(diǎn)按鈕可以調(diào)試整個(gè)腳本文件;點(diǎn)

按鈕可以逐行調(diào)試腳本文件,調(diào)試行顯示為藍(lán)色;點(diǎn)

按鈕可以停止調(diào)試文件;點(diǎn)

按鈕可以設(shè)置斷點(diǎn),調(diào)試時(shí)將調(diào)到此行為止;點(diǎn)

按鈕,然后點(diǎn)按鈕,可以錄制CAE中的操作,點(diǎn)可以停止錄制。ABAQUS腳本概述調(diào)試ABAQUS腳本二、Python語(yǔ)言簡(jiǎn)介二、Python語(yǔ)言簡(jiǎn)介Python語(yǔ)言簡(jiǎn)介基本規(guī)則代碼按級(jí)別從大到小解讀,之間用操作符“.”連接。如:

mdb.models[‘Model-1’].materials[‘BPCOMPOSITE’].Depvar(n=5)

表示將模型‘model-1’的材料‘BPCOMPOSITE’里的子程序相關(guān)參數(shù)設(shè)為5。語(yǔ)句前加上#號(hào),表示是注釋內(nèi)容,這個(gè)語(yǔ)句將不被執(zhí)行;使用中文注釋?zhuān)谖募铋_(kāi)始加上:#-*-coding:UTF-8-*-以換行來(lái)識(shí)別一個(gè)邏輯語(yǔ)句的結(jié)束。如果需要在一個(gè)物理行中編寫(xiě)多個(gè)邏輯語(yǔ)句,需要用分號(hào)分開(kāi)。如:x=1;y=2;z=3。如果一個(gè)邏輯語(yǔ)句太長(zhǎng)需要分行寫(xiě),需要用反斜杠“\”進(jìn)行連接(有括號(hào)括起來(lái)的內(nèi)容就不用)。不同代碼塊之間要注意用冒號(hào)和縮進(jìn)來(lái)區(qū)分代碼塊之間的層次關(guān)系,如:

foriinrange(0,b3):

if(iAnglelowfg[i]=='/'):

forlinrange(0,i-j-1):

c3[k]=c3[k]+iAnglelowfg[j+l+1]

j=i

elif(iAnglelowfg[i]==']'):Python語(yǔ)言簡(jiǎn)介基本規(guī)則Python語(yǔ)言簡(jiǎn)介保留字段定義變量名、函數(shù)名的時(shí)候,避免使用保留字段。如:

保留字段說(shuō)明and\not\or邏輯“與”“非”“或”break中止循環(huán)語(yǔ)句continue繼續(xù)執(zhí)行下一次循環(huán)class定義類(lèi)def定義函數(shù)或者方法if\else\elif條件判斷語(yǔ)句print輸出語(yǔ)句while循環(huán)語(yǔ)句from\import導(dǎo)入模塊return返回函數(shù)計(jì)算結(jié)果Python語(yǔ)言簡(jiǎn)介保留字段保留字段說(shuō)明and\nPython語(yǔ)言簡(jiǎn)介數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型主要有數(shù)字類(lèi)型、字符串類(lèi)型;數(shù)字類(lèi)型主要有四種:整型int、長(zhǎng)整型long、浮點(diǎn)型float、復(fù)數(shù)型complex;Python語(yǔ)言可自動(dòng)判斷數(shù)據(jù)類(lèi)型,不需要編寫(xiě)者定義說(shuō)明類(lèi)型,如:i=10.5,即可。不需要用:floati=10.5

;不同數(shù)據(jù)類(lèi)型之間可通過(guò)函數(shù)轉(zhuǎn)換,如int()、float()??梢杂锰娲?hào)表示定制字符串,如

stress=1234.56

print‘Thestressis%fMPa’%stress

即可輸出:Thestressis1234.56Mpa

符號(hào)描述符號(hào)描述%c定制字符及其ASCII碼%o定制無(wú)符號(hào)八進(jìn)制數(shù)%s定制字符串%x定制無(wú)符號(hào)十六進(jìn)制數(shù)%d定制整數(shù)%f定制浮點(diǎn)型數(shù)據(jù)%u定制無(wú)符號(hào)整數(shù)%e用科學(xué)計(jì)數(shù)法定義浮點(diǎn)型數(shù)據(jù)Python語(yǔ)言簡(jiǎn)介數(shù)據(jù)類(lèi)型符號(hào)描述符號(hào)描述%c定制字符Python語(yǔ)言簡(jiǎn)介運(yùn)算符主要有賦值運(yùn)算符、算術(shù)運(yùn)算符、邏輯運(yùn)算符、關(guān)系運(yùn)算符;下表按優(yōu)先級(jí)排列,從上往下優(yōu)先級(jí)增加。

運(yùn)算符描述or邏輯或and邏輯與not邏輯非<,<=,>,>=,!=,==小于,小于等于,大于,大于等于,不等于,等于+,-加、減運(yùn)算*,/,%乘、除、取余數(shù)運(yùn)算**指數(shù)運(yùn)算不支持自加或自減運(yùn)算,如:i++、i--;但類(lèi)似i+=1這樣的語(yǔ)句是可以的。

Python語(yǔ)言簡(jiǎn)介運(yùn)算符運(yùn)算符描述or邏輯或and邏輯與三、ABAQUS腳本編寫(xiě)三、ABAQUS腳本編寫(xiě)ABAQUS腳本編寫(xiě)定義和導(dǎo)入模塊在每個(gè)腳本文件的最開(kāi)始處,首先要導(dǎo)入相應(yīng)的ABAQUS模塊;每個(gè)步驟均有對(duì)應(yīng)的模塊,如part模塊,material模塊、assembly模塊等,通過(guò)以下語(yǔ)句可以直接導(dǎo)入cae模塊的所有對(duì)象:

fromcaeModulesimport*如果需要用到各種符號(hào)常數(shù),如單元類(lèi)型C3D8R,還要導(dǎo)入符號(hào)常數(shù)模塊:

fromabaqusConstantsimport*定義和導(dǎo)入對(duì)象還需要導(dǎo)入相應(yīng)的ABAQUS對(duì)象,包括Session對(duì)象(包括視口、遠(yuǎn)程隊(duì)列、視圖對(duì)象)Mdb對(duì)象(包括Model對(duì)象和Job對(duì)象)Odb對(duì)象通過(guò)類(lèi)似如下的語(yǔ)句導(dǎo)入對(duì)象:

fromabaqusimport*ABAQUS腳本編寫(xiě)定義和導(dǎo)入模塊ABAQUS腳本編寫(xiě)創(chuàng)建新實(shí)體myModel=mdb.models['Model-1']myViewport=session.Viewport(name='Regionsyntax',origin=(20,20),width=200,height=100)mySketch=myModel.Sketch(name='SketchA',sheetSize=200.0)mySketch.rectangle(point1=(-40.0,30.0),point2=(-10.0,0.0))mySketch.rectangle(point1=(10.0,30.0),point2=(40.0,0.0))door=myModel.Part(name='Door',dimensionality=THREE_D,type=DEFORMABLE_BODY)door.BaseSolidExtrude(sketch=mySketch,depth=20.0)通過(guò)以上語(yǔ)句,在Part模塊中生成兩個(gè)三維實(shí)體。#建立新模型Model-1#創(chuàng)建新的視口#創(chuàng)建一個(gè)草圖,并繪制兩個(gè)矩形#對(duì)上面創(chuàng)建的兩個(gè)矩形進(jìn)行拉伸操作,生成三維部件

ABAQUS腳本編寫(xiě)創(chuàng)建新實(shí)體#建立新模型Model-1ABAQUS腳本編寫(xiě)裝配實(shí)體、導(dǎo)入邊界條件myAssembly=myModel.rootAssemblydoorInstance=myAssembly.Instance(name='Door-1',part=door,dependent=OFF)pillarVertices=doorInstance.vertices.findAt(((-40,30,0),),((40,0,0),))myModel.StaticStep(name='impact',previous='Initial',initialInc=1,timePeriod=1)myPillarLoad=myModel.ConcentratedForce(name='pillarForce',createStepName='impact',region=(pillarVertices,),cf1=12.50E4)通過(guò)以上語(yǔ)句,裝配實(shí)體,并施加邊界條件。此處使用了findAt語(yǔ)句來(lái)查找頂點(diǎn)。#導(dǎo)入實(shí)體,完成裝配#選擇兩個(gè)頂點(diǎn)#創(chuàng)建靜力分析步(static)#在選擇的頂點(diǎn)上施加集中力

ABAQUS腳本編寫(xiě)裝配實(shí)體、導(dǎo)入邊界條件#導(dǎo)入實(shí)體,完成裝ABAQUS腳本編寫(xiě)findAt語(yǔ)句簡(jiǎn)介在A(yíng)baqus建模操作生成的rpy文件中,Abaqus將自動(dòng)為模型的特征進(jìn)行編號(hào),每個(gè)節(jié)點(diǎn)(node)、單元(element)、頂點(diǎn)(vertex)、邊(edge)、面(face)、體(cell),都有對(duì)應(yīng)的ID。實(shí)例:對(duì)方形實(shí)體切割

p=mdb.models['Model-1'].parts['Door']

c=p.cells

pickedCells=c.getSequenceFromMask(mask=('[#1]',),)

v,e,d=p.vertices,p.edges,p.datums

p.PartitionCellByPlaneThreePoints(point1=v[0],

point2=v[2],point3=v[6],cells=pickedCells)如果后續(xù)對(duì)模型進(jìn)行編輯(增加、刪除),特征

ID會(huì)改變,這時(shí)再用原來(lái)的語(yǔ)句就報(bào)錯(cuò)。解決方法:用該特征的空間坐標(biāo)來(lái)表示;對(duì)于點(diǎn),坐標(biāo)是唯一的;對(duì)于線(xiàn)、面、體,上面的任一坐標(biāo)都可以,但不要用兩個(gè)特征的交點(diǎn)坐標(biāo)。p.PartitionCellByPlaneThreePoints(point1=(-10,30,0),point2=(-40,30,20),point3=(-40,0,20),cells=pickedCells)c.findAt(((-25,30,20),))ABAQUS腳本編寫(xiě)findAt語(yǔ)句簡(jiǎn)介p.PartitioABAQUS腳本編寫(xiě)定義材料屬性mdb.models['Model-1'].Material(name='Steel')mdb.models['Model-1'].materials['Steel'].Elastic(table

=((220000.0,0.35),))mdb.models['Model-1'].HomogeneousSolidSection(name=

'Section-1',material='Steel',thickness=None)pickedCells=c[:]p.Set(cells=pickedCells,name='Set-all')p=mdb.models['Model-1'].parts['Door']c=p.cellscells=c[:]region=p.sets['Set-all']p=mdb.models['Model-1'].parts['Door']p.SectionAssignment(region=region,sectionName='Section-1',offset=0.0)#定義材料“steel”。#定義材料“steel”的工程彈性常數(shù)。#定義截面屬性“steel”,將材料“steel”賦予截面#c[:]可以選取全部的實(shí)體#定義集合“Set-all”,將全部實(shí)體定義成一個(gè)集合#將截面屬性賦予給集合“Set-all”

ABAQUS腳本編寫(xiě)定義材料屬性#定義材料“steel”。ABAQUS腳本編寫(xiě)布置種子a=mdb.models['Model-1'].rootAssemblye1=a.instances['Door-1'].edgespickedEdges=e1[:]#e1[:]可以選取全部的邊a.seedEdgeByNumber(edges=pickedEdges,number=4)通過(guò)以上語(yǔ)句布置種子。a=mdb.models['Model-1'].rootAssemblypartInstances=(a.instances['Door-1'],)a.generateMesh(regions=partInstances)通過(guò)以上語(yǔ)句,把實(shí)體劃分網(wǎng)格。提交工作mdb.Job(name='Job-1',model='Model-1',description='',type=ANALYSIS,atTime=None,waitMinutes=0,waitHours=0,queue=None,memory=90,memoryUnits=PERCENTAGE,getMemoryFromAnalysis=True,

explicitPrecision=SINGLE,nodalOutputPrecision=SINGLE,echoPrint=OFF,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論