ABAQUSpython編程接觸關(guān)系的建立、查找find-contacts()、觀(guān)察_第1頁(yè)
ABAQUSpython編程接觸關(guān)系的建立、查找find-contacts()、觀(guān)察_第2頁(yè)
ABAQUSpython編程接觸關(guān)系的建立、查找find-contacts()、觀(guān)察_第3頁(yè)
ABAQUSpython編程接觸關(guān)系的建立、查找find-contacts()、觀(guān)察_第4頁(yè)
ABAQUSpython編程接觸關(guān)系的建立、查找find-contacts()、觀(guān)察_第5頁(yè)
已閱讀5頁(yè),還剩34頁(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)介

1、ABAQUSpython編程接觸關(guān)系的建立、查找find_contacts()、觀(guān)察模型看似形狀簡(jiǎn)單,但是所需要建立的接觸對(duì)卻非常多,共有20個(gè)6接觸對(duì)。如果按照把腳本記錄語(yǔ)句拷貝來(lái)完成,則腳本代碼會(huì)非常長(zhǎng)(根據(jù)aas記錄,多達(dá)兩萬(wàn)多行語(yǔ)句。因?yàn)槟_本代碼最終還是一個(gè)一個(gè)地建立相應(yīng)的接觸對(duì),如前言部分例子所示)。雖然可以通過(guò)界面操作方式下的通用接觸對(duì)查找來(lái)進(jìn)行,但往往接觸對(duì)的檢查、確認(rèn)工作量較大。而且當(dāng)模型需要改變時(shí),該接觸對(duì)就無(wú)效了。很多人的模型不收斂或者計(jì)算時(shí)間非常長(zhǎng),很多時(shí)候問(wèn)題均出在接觸對(duì)的設(shè)置上。下面詳細(xì)介紹本人自行編寫(xiě)的通用接觸對(duì)相關(guān)的函數(shù)。這些函數(shù)可以使接觸對(duì)的建立簡(jiǎn)單易行。接觸對(duì)

2、的通用查找函數(shù)find_contacts()的介紹函數(shù)原型如下。master_parts=,slave_parts=_st=sae_set=,baseOn=onon=norop=Frictionlessastslavestdeffind_contacts(action=tiests=,slave_insts=,mastets,find,byseed=no該函數(shù)根據(jù)不同的設(shè)定條件自動(dòng)查找接觸對(duì),并生成相應(yīng)的接觸對(duì)。find_contacts()的默認(rèn)形式為建立tie也可以設(shè)置默認(rèn)為contact。即find_contacts(action二contact)。由于篇幅有限,本文不再列出該函數(shù)的具體

3、內(nèi)容。基本原理:已知一個(gè)實(shí)例(稱(chēng)為asinst的一個(gè)面(asfac,要查找與其相配對(duì)接觸的另一個(gè)實(shí)例(稱(chēng)為atinst的配對(duì)面(atfad,主要有兩種方法:一種是find的方法(最底層的操作是findt(函數(shù));另外一種是sac的方法(已知范圍、方向、形狀等,查找符合此特征的所有面)。第一種方法又可以細(xì)分為兩種方法:粗查和細(xì)查。這些方法描述如下。)粗查法。根據(jù)bsef的eoint,n利用自帶的findt函數(shù)查找mtef圖。假如這兩個(gè)inst的交界處剖分合理titiO也可保證有足夠多的接觸單元,和建立良好的接觸關(guān)系,有利于收斂,通常都能找到mtef。findontts函數(shù)中,稱(chēng)這種方法為meth

4、od=find,byseed二no。但有時(shí)bsef的2ointn不一定落在mtef上e導(dǎo)致該bsef找不到其mtef。如下所示。這種方法可適用于平面和曲面的接觸面。細(xì)查法。這種方法在方法的基礎(chǔ)上作了改進(jìn)。即在bsef上布置很多點(diǎn)seeds,包含ointn圖,這些點(diǎn)總有一個(gè)點(diǎn)落在mtef上。只要有一個(gè)點(diǎn)落在mtef上,這個(gè)mtef就e戈到了。當(dāng)然,一個(gè)bsef也有可能找到多個(gè)mtef布點(diǎn)方案如下所示,可以有多種,如六點(diǎn)法和十點(diǎn)法。這種方法在find_contacts函數(shù)中稱(chēng)為method二find,byseed二yes。很顯然,布點(diǎn)越多,就越能找到mateface,但運(yùn)行時(shí)間就會(huì)增加。這種方法適

5、用于平面(平行于坐標(biāo)平面或者傾斜)的接觸面。)search方法(或稱(chēng)cross-range方法)。首先,一個(gè)mateface的范圍,y,和其它特征(法線(xiàn)方向、形狀、曲率半徑等)可獲知,再根據(jù)自行編寫(xiě)的face_select)函數(shù),在mateinst中搜索。這種方法需要檢查mateinst的所有面,判斷每一個(gè)面是否與baseface有交集(即交疊)。若有則選中。這種搜索方法精度最高,但該baseface最好是平行于坐標(biāo)軸平面的面。在這種要求下,兩個(gè)相接觸的面是相切的,而且相切面平行于坐標(biāo)軸平面。在find_contacts函數(shù)中,這種方法被稱(chēng)為method二search,與布點(diǎn)種子seed)無(wú)關(guān)

6、。如何獲得baseface可以在art中選擇某些面建立一些faceset。通常每個(gè)art的哪些面會(huì)參與接觸都是預(yù)先知道的,可以建立相應(yīng)的faceset。這樣,在生成的instance中,也都繼承了這些faceset。具體到find_contacts函數(shù)的參數(shù),可能有四種情形:1).master_setandslave_set=.master_set=andslave_set.master_setandslave_set.master_set=andslave_set=前三種根據(jù)指定的aceset來(lái)查找,第四種根據(jù)asenS的每個(gè)aceset來(lái)查找。如果根本不提供aceset而且art也沒(méi)有創(chuàng)建

7、aceset則只能根據(jù)兩個(gè)實(shí)例的交集來(lái)尋找他們的接觸對(duì)。此時(shí),要求這兩個(gè)實(shí)例的相切面是平行于坐標(biāo)軸平面的。事實(shí)上,在建模過(guò)程中,建立ar!的aceset是很方便也很有必要的。因?yàn)榈暮芏嗖僮?,除了建立接觸對(duì)之外,還有建立約束、對(duì)稱(chēng)、施加載荷、以及模型觀(guān)察等都需要在set的基礎(chǔ)上操作。從某種意義上說(shuō),t面向?qū)ο蟮牟僮鳎环N表現(xiàn)就是面向set的操作。所以,從根本上說(shuō),nd_contacts(l)數(shù)應(yīng)用了兩種方法:)根據(jù)aceset來(lái)查找(參考引言部分的t腳本記錄語(yǔ)句,可以說(shuō)操作下的通用接觸對(duì)的查找原理也是根據(jù)aceset來(lái)的);)根據(jù)交集(cross-range)來(lái)查找。nd_contacts()|

8、數(shù)中,當(dāng)利用acesets方法沒(méi)有查找到接觸對(duì)時(shí),就會(huì)自動(dòng)嘗試根據(jù)交集來(lái)查找;反過(guò)來(lái),當(dāng)利用交集方法沒(méi)有找到接觸對(duì)時(shí),就會(huì)自動(dòng)嘗試根據(jù)aceset來(lái)查找。目的都是為了找到接觸對(duì)。通常,在建立acese啲情況下,都能很快找到接觸對(duì)。由于篇幅所限,nd_contacts|()數(shù)的具體內(nèi)容摘錄如下。僅供參考。baseOn=baseOn.lower()ifbaseOn=master:base_insts=master_instsasearts=master_partsbase_set=master_setmate_insts=slave_instsmate_parts=slave_partsmate_

9、set=slave_setelifbaseOn=slave:base_insts=slave_instsbase_parts=slave_partsbase_set=slave_setmate_insts=master_instsmate_parts=master_partsmate_set=master_setaction=action.lower()byseed=byseed.lower()one_one=one_one.lower()iftype_of(method)=STR:method=methodif(findnotinmethod)and(searchnotinmethod):m

10、ethod.append(find)obj_names=ifbase_insts=ifbase_partsiftype_of(base_parts)=PAbase_parts=base_partsbase_insts=insts_ofpart(base_parts)orpartinbase_partsobj_names=obj_names+elifbase_setbase_insts=insts_byset(base_set)obj_names=base_setelifbase_insts=base_insts=a.instances.values()#a=mdb.modelsModel-l.

11、rootAssemblyobj_names=all_instancesifobnamesbaseOn=slave:obj_names=obj_names:-l+(slave)二else:obj_names=obj_names:-1+(master)二mate_insts=:mate_parts:type_of(mate_parts)=mate_parts=mate_partsmate_insts=insts_ofpart(mate_parts)orpartinmate_parts:obj_names=obj_names+elifmate_setmate_insts=insts_byset(ma

12、te_set)obj_names=obj_names+mate_setelifmate_insts=:mate_insts=a.instances.values()obj_names=obj_names+all_instancesifobj_nameslobj_names=obj_names:1insnames=foinst1inbase_inss:oian獲取實(shí)例的空間范圍forinsinmae_insts:ifinsnamenoininsaninsaneinsnameoianinsifaioniee

13、nonsainonieelifaionontaota=lenm.inionsont_fun=s2sontaiation=tie#ont_是一個(gè)函數(shù)名變量iation=tie#ont_是一個(gè)函數(shù)名變量cont_func=s2sti指#向建立tie關(guān)系即onstraint的ss_tie函數(shù)elifaction=contact:cont_func=s2sonta扌旨向建立onta關(guān)系即interation)ss_ontat函數(shù)。#itationibase_set=mate_set=ifsetsinmethodsets_tried=Trueorinst1inbase_instspart二_m.part

14、sinstl.partName#_m=mdb.modelsModel-lorsetnameinpart.sets.keysifsetname0:3=iation=tie#ont_是一個(gè)函數(shù)名變量iation=tie#ont_是一個(gè)函數(shù)名變量iation=tie#ont_是一個(gè)函數(shù)名變量iation=tie#ont_是一個(gè)函數(shù)名變量ound=alseof,instname查#找獲取的空間范圍獲取與的交集of,instnamename=action:3+_+setnameprefix+len(inst1.partName)+1:+(m)/+created=cont_func(master_inst

15、=inst1,slave_inst=inst2,name=name,msprop=prop)elifbaseOn=slave:name=action:3+(m)/++setnameprefix+len(inst1.partName)+1:created=cont_func(master_inst=inst2,slave_inst=inst1,name=name,msprop=prop)ifcreated:find_num=find_num+1printnum=,find_num,findbybase_instsfaceset:,fc_xxxx/ifone_one=yes:#假

16、如一個(gè)實(shí)例只是跟另外一個(gè)實(shí)例而不是另外多個(gè)實(shí)例相接觸的話(huà)。breakifnotfound:printNomatefaceswasfoundinmateinstsbasedonsetname=,setname,ita5iOcross-rangemethod)iffind_numprintifsets_tried=TrueprintFailedbyfacesetsmethod.printTryingcross-rangemethod.cross_tried=Trueorinst1inbase_instsspace1=insts_rangeorinst2inmate_insts=continuesp

17、ace2=insts_rangecrossintersect(spacespace)獲取兩個(gè)實(shí)例之間的交集ifcrossFalserange_x,range_y,range_z,cross_type=crossifcross_typeat_tangentcontinueprintprintFindingmatefacesof,in,.iffindinmethod:faces1=face_select(inst1,x=range_x,y=range_y,z=range_z,external=True)faces1,faces2=faces_pair(faces1,inst1,inst2,meth

18、od=find,byseed=byseed)elifsearchinmethod:faces1=face_select(inst1,x=range_x,y=range_y,z=range_z,external=True)faces2=face_select(inst2,x=range_x,y=range_y,z=range_z,external=True)iflen(faces1)0andlen(faces2)0:ifbaseOn=master:name=+(m)/+created=cont_func(master_inst=inst1,slave_inst=inst2,name=name,m

19、sprop=prop)elifbaseOn=slave:name=+(m)/+created=cont_func(master_inst=inst2,slave_inst=inst1,name=name,msprop=propifcreatedfind_num=find_numprintnum=,find_num,findbyflat_tangentcross-rangebetweentwoinstances:,從find_contacts函數(shù)的原型可知,該函數(shù)的使用是非常靈活的。可以不提供任何參數(shù),也可以只提供部分參數(shù)。完全不提供任何參數(shù)時(shí),所建立的部分接觸對(duì)的主從面或者類(lèi)型(contact

20、或tie)可能需要更改,這和中的通用接觸的界面操作情況是一樣的。當(dāng)提供參數(shù)時(shí),所建立的接觸對(duì)通常不需要修改了。部分具體使用形式如下所示:nteractionsfind_contactstie,slave_parts=beam2,master_parts=beamfind_contactstie,slave_parts=beam3,beam,master_parts=beam2,methodcrossfind_contactsfind_contactstie,slave_parts=sup,master_parts=beam2,method=setstie,slave_parts=sup,mas

21、ter_parts=panel,baseOn=masterfind_contacts(tie,slave_parts=sup,master_parts=panel,method=cross只提#供#完全不提供任何參數(shù)。下面在參數(shù)全部缺省的情況下的讓函數(shù)自動(dòng)查找和建立接觸對(duì)。該函數(shù)還可以通過(guò)檢查防止建立重復(fù)的接觸對(duì)。該函數(shù)對(duì)每一個(gè)接觸對(duì)的主從面均建立以便檢查接觸對(duì)的實(shí)際接觸面積。部分查找過(guò)程的輸出信息如下:Inpanel_A6:4facesselected.external=NA,ndir=NA,radius=NA,side=NAInsup_A56:found4matefaces.Checkin

22、gtie:Theinstspairtobecreatedhasexisted.Findingandverifying4matefacesinpanel_A6basedonmasterinst=sup_A56Inpanel_A6:found1matefaces.#1:Verified.Inpanel_A6:found1matefaces.#2:Verified.Inpanel_A6:found1matefaces.#3:Verified.Inpanel_A6:found1matefaces.#4:Verified.Creatingtie:master_inst=sup_A56,slave_ins

23、t=panel_A6rail_right(master),settype=faces-CreatednewsetforrootAssembly,setname=_tie_sup_A56(m)/panel_rail_right(slave),settype=faces-Tietie_sup_A56(m)/panel_A6_rail_rightwascreatedreatednewsetforrootAssembly,setname=_tie_supm)/panelnum=200,findbybase_instsfaceset:fc_xxxx/Findingmatefacesofrope1_Aby

24、itssetname=fc_rope1_left(method=sets,find,byseed=no,one_one=no).Refinethesourcefacesetfc_rope1_leftinrope1_A.Inrope1_A:8facesselected.external=NA,ndir=NA,radius=NA,side=NANomatefaceswasfoundinmateinstsbasedonsetname=fc_rope1_leftofrope1_AFindingmatefacesofrope1_Abyitssetname=fc_rope1_right(method=se

25、ts,find,byseed=no,one_one=no).Refinethesourcefacesetfc_rope1_rightinrope1_A.Inrope1_A:8facesselected.external=NA,ndir=x,radius=NA,side=NAnbeam1_A1:found4matefacesCreatingtie:mast_inst=beam1_A1,slave_inst=rope1_ednewsforroosembly,setname=_tie_bight(maste=faceednewsforroosembly,setname=_tie_bight(slav

26、=faces-Tietie_beam1_A1(m)/rope1_A_righttednum=201,findbybase_instsfacet:fc_xindin由上可見(jiàn),函數(shù)準(zhǔn)確地找到并建立了所有的個(gè)接觸對(duì)(如圖所示)。該函數(shù)的效率較高,在本例中,所花時(shí)間甚至比軟件界面操作進(jìn)行通用接觸的查找和建立還短些。從代碼數(shù)量來(lái)說(shuō),上面程序方式只須一行語(yǔ)句即可,而界面操作進(jìn)行通用接觸查找和建立所記錄的腳本多達(dá)兩萬(wàn)多行(根據(jù)文件)。另一方面,界面操作可能不能完全找到所有的接觸對(duì),有時(shí)又建立了多余的接觸對(duì),有時(shí)要反復(fù)多次查找或刪除一些多余的接觸對(duì)。這都離不開(kāi)對(duì)接觸對(duì)的檢查、更改。接.觸對(duì)的列表匯總與更改本人

27、利用自行編寫(xiě)的函數(shù),對(duì)所有接觸對(duì)列表和匯總?cè)缦?tie_sup_A54(m)/panel_A4_rail_right:tie:sup(m)/panel,tie_sup_A55(m)/panel_A5_rail_left:tie:sup(m)/panel,tie_sup_A55(m)/panel_A5_rail_right:tie:sup(m)/panel,tie_sup_A56(m)/panel_A6_rail_left:tie:sup(m)/panel,tie_sup_A56(m)/panel_A6_rail_right:tie:sup(m)/panelpartscontactsummary

28、:tie:beam1(m)/beam2:10,tie:beam1(m)/con1:2,#(1)tie:beam1(m)/rope1:1,tie:beam1(m)/rope2:1,tie:beam1(m)/rope3:1,tie:beam1(m)/rope4:1,tie:beam2(m)/beam3:44,tie:beam2(m)/beam4:11,tie:beam2(m)/sup:60,tie:con2(m)/beam2:15,#(2)tie:sup(m)/panel:60#(3)J%Parts(12)卡醫(yī)Materials(15)由矗Sections(12):串Profiles+益Assei

29、ribly由為Steps(1)蟲(chóng)FieldOutputRequestsfeHistoryOutputRequests應(yīng)Tlm.ePoints敗ALEAdaptive陰shConstraints昌JLnt亡工建QtioriInteractionProperties(2)Con丈且ctControlsContactInitializationsti6_tieaml_Al5)/beam2mAl_lefttie_beaml_Al(m)/beajn2_A2_lefttie_beaml_AL(m)/beajn2_A3_lefttie_beaml_AlU)/beau-Al-lefttie_beaml_Al(

30、飢)/beam2_A5_lefttif!ATGi)亡宀門(mén)1A1ton圖7接觸対在CAE界面中的顯示其中,接觸對(duì)的表達(dá)格式(即命名)為:實(shí)例實(shí)例2表示實(shí)例為是的縮寫(xiě)。例如接觸對(duì):該名稱(chēng)包含了多層含義:該接觸對(duì)為;實(shí)例為(其名為),而實(shí)例為其名為;該接觸對(duì)是根據(jù)的即尋找出來(lái)的。然后再,結(jié)果如下:然后再,結(jié)果如下:由上述接觸對(duì)的匯總結(jié)果可知,查找并建立了個(gè)接觸對(duì),但其中有三種接觸對(duì)需要修改(如上匯總中的陰影所示)。這在界面操作中利用通用接觸查找按鈕的查找結(jié)果是類(lèi)似的。與的接觸關(guān)系中,應(yīng)該為,而應(yīng)該為p所以接觸關(guān)系需要顛倒一下。命令如下:tieeam2(m)suptie:con2(m)/beam2:1

31、5,tie:panel(m)/sup:60由于panel與sup的關(guān)系唯一(全部為masterpanel,也可以簡(jiǎn)寫(xiě)成如下的命令形式:swap_master_slave(tie,sup,panel)Masterandslaveswappedsuccessfullyfor60contactpairs.)下面設(shè)置n與eam之間的接觸關(guān)系為interati接觸,nta,t而不是nstraint(tie)而且它們之間有摩擦作用(摩擦系數(shù)取。需要說(shuō)明的是,假如通過(guò)軟件界面操作進(jìn)行通用接觸對(duì)的查找和建立,那么建立之后的接觸對(duì)是沒(méi)法進(jìn)行類(lèi)似的轉(zhuǎn)換的。而通過(guò)swap_ntat_ti函數(shù),這種轉(zhuǎn)換是很容易的事情

32、。命令形式如下:swap_ntat_tie(n,eam,nvert_tntat,prpritin)部分輸出信息如下。我們注意到,通過(guò)編程,運(yùn)行過(guò)程的輸出信息也是可以充分顯示,從而便于程序和模型的調(diào)試,保證結(jié)果的準(zhǔn)確性。在接觸類(lèi)型轉(zhuǎn)換過(guò)程中,由于之前查找接觸對(duì)的時(shí)候已經(jīng)自動(dòng)地保存了每一個(gè)接觸對(duì)的主從面,所以利用這些主從面可以重新建立另外一種類(lèi)型的接觸對(duì)。swap_ntat_tie(n,eam,nvert_tntat,prpritinreatingcontactaster_instcon1,slave_inst=bea-CreatednewsetforrootAssemblbot(master),

33、settype=faces-CreatednewsetforrootAssemblbot(slave),settype=faces,setname=_con_con2_A1(m)/bea,setname=_con_con2_A1(m)/beastep1doesnotexist,itwillbecreatedasStaticStep.einteractioncon_con2_A1bea1_botasbeencreated.ontactcon_con2_A1bea1_botwascreated,prop=Friction-tie_con2_A11(m)/beam2_A1_botbea1_botwa

34、ssuccessllyconvertedtoconnum=1botreatingcontactaster_inst=conreatednewsetorrootAssembl,slave_inst=bea,setnamecon_conbeaaster),settypeacesreatednewsetorrootAssembl,setnamecon_conbeabot(slave),settypeacesTheinteractioncon_con2_A2(m)/beam2_A1_bothasbeencreated.-Contactcon_con2_A2(m)/beam2_A1_botwascrea

35、ted,prop=Friction-tie_con2_A2(m)/beam2_A1_botwassuccessfullyconvertedtocon_con2_A2(m)/beam2_A1_botnum=2Creatingcontact:master_inst=con2_A3,slave_inst=beam2_A5-CreatednewsetforrootAssembly,setname=_con_con2_A3(m)/beam2_A5_bot(master),settype=faces-CreatednewsetforrootAssembly,setname=_con_con2_A3(m)/

36、beam2_A5_bot(slave),settype=facesTheinteractioncon_con2_A3(m)/beam2_A5_bothasbeencreated.-Contactcon_con2_A3(m)/beam2_A5_botwascreated,prop=Friction-tie_con2_A3(m)/beam2_A5_botwassuccessfullyconvertedtocon_con2_A3(m)/beam2_A5_botnum=15執(zhí)行上述命令之后,界面的顯示變化如下圖(圖)所示。的接觸關(guān)系已經(jīng)成執(zhí)行上述命令之后,界面的顯示變化如下圖(圖)所示。的接觸關(guān)系已經(jīng)成功而且是很方便地改變成了的接觸關(guān)系。色ALEAdaptive血*h”Cons

溫馨提示

  • 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)論