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

下載本文檔

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

文檔簡(jiǎn)介

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

2、E )。 建模過(guò)程主要集中在前處理步驟中。,4,ABAQUS 腳本概述,ABAQUS建模方法 常用的ABAQUS建模方法主要有三種: 在ABAQUS/CAE界面建模 優(yōu)點(diǎn):界面直觀,簡(jiǎn)單易懂; 缺點(diǎn):操作步驟繁瑣,不利于修改,缺乏通用性。 通過(guò)inp文件建模 優(yōu)點(diǎn):可以直接在ABAQUS中提交; 缺點(diǎn):只包含模型節(jié)點(diǎn)信息,代碼較多,修改不便; 使用Python語(yǔ)言建模 優(yōu)點(diǎn):代碼少,語(yǔ)言友好,可移植性好,可進(jìn)行參數(shù)化修改; 缺點(diǎn):不夠直觀。,5,ABAQUS 腳本概述,ABAQUS腳本接口 ABAQUS有限元分析軟件二次開(kāi)發(fā)環(huán)境提供的腳本接口,是基于Python語(yǔ)言進(jìn)行的定制開(kāi)發(fā)。,在ABAQ

3、US/CAE中進(jìn)行建模和進(jìn)行后處理時(shí),對(duì)話框中做的所有設(shè)置都由ABAQUS/CAE從內(nèi)部發(fā)出與之對(duì)應(yīng)的命令(command)。 ABAQUS腳本接口直接與內(nèi)核進(jìn)行通信(communicate),而與ABAQUS/CAE的圖形用戶界面(GUI)無(wú)關(guān)。如果將所有的腳本接口命令存儲(chǔ)于文件中,該文件則稱為腳本(script)。腳本由一系列純ASCII格式的Python語(yǔ)句組成,擴(kuò)展名一般為.py。,6,ABAQUS 腳本概述,ABAQUS腳本接口 編寫(xiě)腳本可以實(shí)現(xiàn)以下功能: 自動(dòng)執(zhí)行重復(fù)任務(wù); 進(jìn)行參數(shù)分析; 創(chuàng)建和修改模型; 訪問(wèn)輸出數(shù)據(jù)庫(kù)(ODB文件); 定制ABAQUS環(huán)境文件; 創(chuàng)建ABAQU

4、S插件程序。 編寫(xiě)完成的腳本文件,可以直接在ABAQUS運(yùn)行: File Run Script,打開(kāi)相應(yīng)的.py文件,即可執(zhí)行; 剛打開(kāi)ABAQUS界面,直接選擇Run Script也可; 可以在GUI界面下部的命令行接口輸入腳本語(yǔ)句執(zhí)行。,7,ABAQUS 腳本概述,創(chuàng)建ABAQUS腳本 創(chuàng)建腳本有3種常用方法: 在GUI建模時(shí)錄制宏(macro) File Macro Manager 可以按需錄制任何操作對(duì)應(yīng)的命令 直接編輯abaqus.rpy文件 建模時(shí)工作目錄下自動(dòng)生成abaqus.rpy文件 使用軟件EditPlus可以直接打開(kāi)編輯 保存.cae文件并退出后才能生成.rpy文件 借助

5、PythonReader.exe軟件 中國(guó)石油大學(xué)焦中良開(kāi)發(fā) 可以實(shí)時(shí)獲取CAE每步操作對(duì)應(yīng)的腳本命令,8,ABAQUS 腳本概述,調(diào)試ABAQUS腳本 調(diào)試腳本有多種方法,這里介紹Abaqus自帶的PDE中的調(diào)試。 PDE(Python Development Environment,Python開(kāi)發(fā)環(huán)境)有以下功能: 編輯Python文件、調(diào)試Python腳本或插件; 創(chuàng)建guiLog腳本,錄制所有的GUI動(dòng)作; 通過(guò)GUI(guiLog)運(yùn)行Python腳本或在ABAQUS/CAE之外運(yùn)行Python腳本; 設(shè)置延遲(delay)和斷點(diǎn)(breakpoint),并查看代碼的執(zhí)行情況; 在

6、watch窗口中查看變量值等。 打開(kāi)方式 File Abaqus PDE,然后打開(kāi)相應(yīng)的.py文件,即可編輯調(diào)試。,9,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) 可以停止錄制。,10,二、Python 語(yǔ)言簡(jiǎn)介,11,Python 語(yǔ)言簡(jiǎn)介,基本規(guī)則 代碼按級(jí)別從大到小解讀,之間用操作符“.”連接。如:mdb.modelsModel-1.materialsBPCOMPOSITE.Dep

7、var(n=5)表示將模型model-1的材料BPCOMPOSITE里的子程序相關(guān)參數(shù)設(shè)為5。 語(yǔ)句前加上 # 號(hào),表示是注釋內(nèi)容,這個(gè)語(yǔ)句將不被執(zhí)行; 使用中文注釋,要在文件最開(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)系,如:for i in range(0,b3): if (iAnglelowfgi=/): for l

8、in range(0,i-j-1): c3k=c3k+iAnglelowfgj+l+1 j=i elif (iAnglelowfgi=):,12,Python 語(yǔ)言簡(jiǎn)介,保留字段 定義變量名、函數(shù)名的時(shí)候,避免使用保留字段。如:,13,Python 語(yǔ)言簡(jiǎn)介,數(shù)據(jù)類型 數(shù)據(jù)類型主要有數(shù)字類型、字符串類型; 數(shù)字類型主要有四種:整型int、長(zhǎng)整型long、浮點(diǎn)型float、復(fù)數(shù)型complex; Python語(yǔ)言可自動(dòng)判斷數(shù)據(jù)類型,不需要編寫(xiě)者定義說(shuō)明類型,如:i=10.5,即可。不需要用:float i=10.5 ; 不同數(shù)據(jù)類型之間可通過(guò)函數(shù)轉(zhuǎn)換,如int()、float()。 可以用替代符

9、號(hào)表示定制字符串,如stress=1234.56print The stress is %f MPa % stress即可輸出: The stress is 1234.56 Mpa,14,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)算,如:i+、i-; 但類似 i+=1 這樣的語(yǔ)句是可以的。,15,三、ABAQUS腳本編寫(xiě),16,ABAQUS腳本編寫(xiě),定義和導(dǎo)入模塊 在每個(gè)腳本文件的最開(kāi)始處,首先要導(dǎo)入相應(yīng)的ABAQUS模塊; 每個(gè)步驟均有對(duì)應(yīng)的模塊,如part模塊,material模塊、as

10、sembly模塊等,通過(guò)以下語(yǔ)句可以直接導(dǎo)入cae模塊的所有對(duì)象:from caeModules import * 如果需要用到各種符號(hào)常數(shù),如單元類型C3D8R,還要導(dǎo)入符號(hào)常數(shù)模塊: from abaqusConstants import * 定義和導(dǎo)入對(duì)象 還需要導(dǎo)入相應(yīng)的ABAQUS對(duì)象,包括 Session對(duì)象(包括視口、遠(yuǎn)程隊(duì)列、視圖對(duì)象) Mdb對(duì)象(包括Model對(duì)象和Job對(duì)象) Odb對(duì)象 通過(guò)類似如下的語(yǔ)句導(dǎo)入對(duì)象: from abaqus import *,17,ABAQUS腳本編寫(xiě),創(chuàng)建新實(shí)體 myModel = mdb.modelsModel-1 myViewpor

11、t=session.Viewport(name=Region syntax, origin=(20, 20), width=200, height=100) mySketch = myModel.Sketch(name=Sketch A, 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

12、=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)行拉伸操作,生成三維部件,18,ABAQUS腳本編寫(xiě),裝配實(shí)體、導(dǎo)入邊界條件 myAssembly = myModel.rootAssembly doorInstance = myAssembly.Instance(name=Door-1,part=door, dependen

13、t=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í)體,并施加邊界條件。 此處使

14、用了findAt語(yǔ)句來(lái)查找頂點(diǎn)。,#導(dǎo)入實(shí)體,完成裝配 # 選擇兩個(gè)頂點(diǎn) # 創(chuàng)建靜力分析步(static) # 在選擇的頂點(diǎn)上施加集中力,19,ABAQUS腳本編寫(xiě),findAt語(yǔ)句簡(jiǎn)介 在Abaqus建模操作生成的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.modelsModel-1.partsDoorc = p.cellspickedCells = c.getSequenceFromMask(mask=(#1

15、, ), )v, e, d = p.vertices, p.edges, p.datumsp.PartitionCellByPlaneThreePoints(point1=v0, point2=v2, point3=v6, 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ì)于線、面、體,上面的任一坐標(biāo)都可以,但不要用兩個(gè)特征的交點(diǎn)坐標(biāo)。,p.PartitionCellByPlaneThreePoints(point1=(-10,30,0), point2=(-40

16、,30,20), point3=(-40,0,20),cells=pickedCells),c.findAt(-25,30,20),),20,ABAQUS腳本編寫(xiě),定義材料屬性 mdb.modelsModel-1.Material(name=Steel) mdb.modelsModel-1.materialsSteel.Elastic(table=(220000.0, 0.35), ) mdb.modelsModel-1.HomogeneousSolidSection(name=Section-1, material=Steel, thickness=None) pickedCells = c

17、: p.Set(cells=pickedCells,name=Set-all) p = mdb.modelsModel-1.partsDoor c = p.cells cells = c: region = p.setsSet-all p = mdb.modelsModel-1.partsDoor p.SectionAssignment(region=region, sectionName=Section-1, offset=0.0),#定義材料“steel”。 #定義材料“steel”的工程彈性常數(shù)。 #定義截面屬性“steel”,將材料“steel”賦予截面 #c:可以選取全部的實(shí)體 #定

18、義集合“Set-all”,將全部實(shí)體定義成一個(gè)集合 #將截面屬性賦予給集合“Set-all”,21,ABAQUS腳本編寫(xiě),布置種子 a = mdb.modelsModel-1.rootAssembly e1 = a.instancesDoor-1.edges pickedEdges = e1: #e1:可以選取全部的邊 a.seedEdgeByNumber(edges=pickedEdges, number=4) 通過(guò)以上語(yǔ)句布置種子。 a = mdb.modelsModel-1.rootAssembly partInstances =(a.instancesDoor-1, ) a.gener

19、ateMesh(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, modelPrint=OFF, contactPrint=OFF, historyPrint=OFF

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論