資源描述:
《基于Python的Abaqus二次開發(fā)實例講解》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、基于Python的Abaqus二次開發(fā)實例講解(asian582013.6.26)基于Python的Abaqus的二次開發(fā)便捷之處在于:1、所有的代碼均可以先在AbaqusCAE屮操作一遍后再通過rp文件讀取,然后再在此基礎(chǔ)上進行相應(yīng)的修改;2、Python是一種解釋性語言,讀起來非常清晰,因此在修改程序的過程中,不存在程序難以理解的問題;3、Python是一種通用性的、功能非常強大的面向?qū)ο缶幊陶Z言,有許多成熟的類似于Matlab函數(shù)的程序在網(wǎng)絡(luò)上流傳,為后期進一步的數(shù)據(jù)處理提供了方便。為了更加方便地完成Abaqus的
2、二次開發(fā),需進行一些相關(guān)約定:1、所有參數(shù)化直接通過點的坐標值進行,直接対幾何尺寸的參數(shù)化反而更加繁瑣;2、程序參數(shù)化已不允許在模型中添加太多的Tie,因此不同零部件的綁定直接通過共節(jié)點來進行,這就要求建模方法與常規(guī)的建模方法有所區(qū)別。思路如下:將一個整機拆成兒個大的Part來建立,一個Part屮包含許多零件,這樣在劃分網(wǎng)格式時就可以口動實現(xiàn)共節(jié)點的綁定。不同的零件可通過建立不同的Set來進行區(qū)分,不同Part的綁定可以通過Tie來實現(xiàn)。將一個復(fù)雜的結(jié)構(gòu)拆成幾個恰當?shù)腜art來建立,一方面可以將復(fù)雜的模型簡單化,使建立復(fù)雜
3、模型成為可能;另一方面,不同的Part可單獨調(diào)用,從而乂可實現(xiàn)程序的模塊化,增加程序的適應(yīng)范圍,延長程序的使用壽命,也方便后期程序的維護和修改。3^通過py文件建立起的模型要進行參數(shù)優(yōu)化,己不適合采用Isight中Abaqus模塊,需要用至ljIsight的Simcode模塊。下面詳細解釋一個臂架的py文件。#此程序用來繪制臂架前段#導(dǎo)入相關(guān)模塊#coding:mbcsfromabaqusimport*fromabaqusConstantsimport*#定義整個臂架的長、寬、高L0=14300W0=1650H0=800#
4、創(chuàng)建零件P01_12Ll=H0+200Wl=200Tl=12s=mdb.modelsI'ModeMJ.ConstrainedSketch(_profile_sheetSize=2000.0)g,v,d,c=s.geometry,s.vertices,s.dimensions,s.constraintss.setPrimaryObject(option=STANDALONE)s.rectangle(pointl=(W0/2,Ll/2),point2=(W0/2+Wl,-Ll/2))s.rectangle(pointl=(-
5、W0/2/Ll/2),point2=(-W0/2-Wl,-Ll/2))p=mdb.models[,Model-l,].Part(name=,Part-l,/dimensionality=THREE_D,type=DEFORMABLE_BODY)p=mdb.models[lModel-l'].parts[,Part-l,]p.BaseShell(sketch=s)session.viewports「Viewport:l'].setValues(displayedObject=p)delmdb.models[,Modekl,]
6、.sketches[,_profile_l]#定義零件的厚度p=mdb.models['Model-l'].parts['Part-l']f=p.facespickedFacesOl=f.findAt(((W0/2,Ll/2,0)J,((-W0/2,Ll/2,0)J,)p.assignThickness(faces=pickedFaces01,thickness二Tl)p.Set(faces=pickedFaces01,name=,P01_12,)注:通過點的坐標進行參數(shù)化是模型參數(shù)化的最好選擇。注:建立一個零件后就立即對
7、該零件建立一個Set,Set的建立可以方便后期的相關(guān)處理。需要通過findAtf)命令來選取相應(yīng)的體、面、線或點。#創(chuàng)建輔助平面和輔助坐標系p=mdb.models['Model-1'].partsI'Part-l*]p.DatumCsysByThreePoints(name='Datumcsys-lcoordSysType=CARTESIAN,origin=(0.0,0.0,0.0),linel=(1.0,0.0,0.0),line2=(0.0,1.0,0.0))p=mdb.models['Model-l'].part
8、s['Part-l']p.DatumPlaneByPrincipalPlane(principalPlane=XYPLANE/offset=LO)注:所建立的第一個參考可以不編號。#創(chuàng)建零件P02_12L2=L1W2=W1T2=12p=mdb.models['Model-1'].partsI'Part-