版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、ABAQUSpython編程接觸關系的建立、查找find_contacts()、觀察模型看似形狀簡單,但是所需要建立的接觸對卻非常多,共有20個6接觸對。如果按照把腳本記錄語句拷貝來完成,則腳本代碼會非常長(根據(jù)aas記錄,多達兩萬多行語句。因為腳本代碼最終還是一個一個地建立相應的接觸對,如前言部分例子所示)。雖然可以通過界面操作方式下的通用接觸對查找來進行,但往往接觸對的檢查、確認工作量較大。而且當模型需要改變時,該接觸對就無效了。很多人的模型不收斂或者計算時間非常長,很多時候問題均出在接觸對的設置上。下面詳細介紹本人自行編寫的通用接觸對相關的函數(shù)。這些函數(shù)可以使接觸對的建立簡單易行。接觸對
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ù)不同的設定條件自動查找接觸對,并生成相應的接觸對。find_contacts()的默認形式為建立tie也可以設置默認為contact。即find_contacts(action二contact)。由于篇幅有限,本文不再列出該函數(shù)的具體
3、內(nèi)容。基本原理:已知一個實例(稱為asinst的一個面(asfac,要查找與其相配對接觸的另一個實例(稱為atinst的配對面(atfad,主要有兩種方法:一種是find的方法(最底層的操作是findt(函數(shù));另外一種是sac的方法(已知范圍、方向、形狀等,查找符合此特征的所有面)。第一種方法又可以細分為兩種方法:粗查和細查。這些方法描述如下。)粗查法。根據(jù)bsef的eoint,n利用自帶的findt函數(shù)查找mtef圖。假如這兩個inst的交界處剖分合理titiO也可保證有足夠多的接觸單元,和建立良好的接觸關系,有利于收斂,通常都能找到mtef。findontts函數(shù)中,稱這種方法為meth
4、od=find,byseed二no。但有時bsef的2ointn不一定落在mtef上e導致該bsef找不到其mtef。如下所示。這種方法可適用于平面和曲面的接觸面。細查法。這種方法在方法的基礎上作了改進。即在bsef上布置很多點seeds,包含ointn圖,這些點總有一個點落在mtef上。只要有一個點落在mtef上,這個mtef就e戈到了。當然,一個bsef也有可能找到多個mtef布點方案如下所示,可以有多種,如六點法和十點法。這種方法在find_contacts函數(shù)中稱為method二find,byseed二yes。很顯然,布點越多,就越能找到mateface,但運行時間就會增加。這種方法適
5、用于平面(平行于坐標平面或者傾斜)的接觸面。)search方法(或稱cross-range方法)。首先,一個mateface的范圍,y,和其它特征(法線方向、形狀、曲率半徑等)可獲知,再根據(jù)自行編寫的face_select)函數(shù),在mateinst中搜索。這種方法需要檢查mateinst的所有面,判斷每一個面是否與baseface有交集(即交疊)。若有則選中。這種搜索方法精度最高,但該baseface最好是平行于坐標軸平面的面。在這種要求下,兩個相接觸的面是相切的,而且相切面平行于坐標軸平面。在find_contacts函數(shù)中,這種方法被稱為method二search,與布點種子seed)無關
6、。如何獲得baseface可以在art中選擇某些面建立一些faceset。通常每個art的哪些面會參與接觸都是預先知道的,可以建立相應的faceset。這樣,在生成的instance中,也都繼承了這些faceset。具體到find_contacts函數(shù)的參數(shù),可能有四種情形:1).master_setandslave_set=.master_set=andslave_set.master_setandslave_set.master_set=andslave_set=前三種根據(jù)指定的aceset來查找,第四種根據(jù)asenS的每個aceset來查找。如果根本不提供aceset而且art也沒有創(chuàng)建
7、aceset則只能根據(jù)兩個實例的交集來尋找他們的接觸對。此時,要求這兩個實例的相切面是平行于坐標軸平面的。事實上,在建模過程中,建立ar!的aceset是很方便也很有必要的。因為的很多操作,除了建立接觸對之外,還有建立約束、對稱、施加載荷、以及模型觀察等都需要在set的基礎上操作。從某種意義上說,t面向?qū)ο蟮牟僮?,一種表現(xiàn)就是面向set的操作。所以,從根本上說,nd_contacts(l)數(shù)應用了兩種方法:)根據(jù)aceset來查找(參考引言部分的t腳本記錄語句,可以說操作下的通用接觸對的查找原理也是根據(jù)aceset來的);)根據(jù)交集(cross-range)來查找。nd_contacts()|
8、數(shù)中,當利用acesets方法沒有查找到接觸對時,就會自動嘗試根據(jù)交集來查找;反過來,當利用交集方法沒有找到接觸對時,就會自動嘗試根據(jù)aceset來查找。目的都是為了找到接觸對。通常,在建立acese啲情況下,都能很快找到接觸對。由于篇幅所限,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獲取實例的空間范圍forinsinmae_insts:ifinsnamenoininsaninsaneinsnameoianinsifaioniee
13、nonsainonieelifaionontaota=lenm.inionsont_fun=s2sontaiation=tie#ont_是一個函數(shù)名變量iation=tie#ont_是一個函數(shù)名變量cont_func=s2sti指#向建立tie關系即onstraint的ss_tie函數(shù)elifaction=contact:cont_func=s2sonta扌旨向建立onta關系即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_是一個函數(shù)名變量iation=tie#ont_是一個函數(shù)名變量iation=tie#ont_是一個函數(shù)名變量iation=tie#ont_是一個函數(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、如一個實例只是跟另外一個實例而不是另外多個實例相接觸的話。breakifnotfound:printNomatefaceswasfoundinmateinstsbasedonsetname=,setname,ita5iOcross-rangemethod)iffind_numprintifsets_tried=TrueprintFailedbyfacesetsmethod.printTryingcross-rangemethod.cross_tried=Trueorinst1inbase_instsspace1=insts_rangeorinst2inmate_insts=continuesp
17、ace2=insts_rangecrossintersect(spacespace)獲取兩個實例之間的交集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ù)時,所建立的部分接觸對的主從面或者類型(contact
20、或tie)可能需要更改,這和中的通用接觸的界面操作情況是一樣的。當提供參數(shù)時,所建立的接觸對通常不需要修改了。部分具體使用形式如下所示: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ù)自動查找和建立接觸對。該函數(shù)還可以通過檢查防止建立重復的接觸對。該函數(shù)對每一個接觸對的主從面均建立以便檢查接觸對的實際接觸面積。部分查找過程的輸出信息如下: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由上可見,函數(shù)準確地找到并建立了所有的個接觸對(如圖所示)。該函數(shù)的效率較高,在本例中,所花時間甚至比軟件界面操作進行通用接觸的查找和建立還短些。從代碼數(shù)量來說,上面程序方式只須一行語句即可,而界面操作進行通用接觸查找和建立所記錄的腳本多達兩萬多行(根據(jù)文件)。另一方面,界面操作可能不能完全找到所有的接觸對,有時又建立了多余的接觸對,有時要反復多次查找或刪除一些多余的接觸對。這都離不開對接觸對的檢查、更改。接.觸對的列表匯總與更改本人
27、利用自行編寫的函數(shù),對所有接觸對列表和匯總?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)蟲FieldOutputRequestsfeHistoryOutputRequests應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)亡宀門1A1ton圖7接觸対在CAE界面中的顯示其中,接觸對的表達格式(即命名)為:實例實例2表示實例為是的縮寫。例如接觸對:該名稱包含了多層含義:該接觸對為;實例為(其名為),而實例為其名為;該接觸對是根據(jù)的即尋找出來的。然后再,結(jié)果如下:然后再,結(jié)果如下:由上述接觸對的匯總結(jié)果可知,查找并建立了個接觸對,但其中有三種接觸對需要修改(如上匯總中的陰影所示)。這在界面操作中利用通用接觸查找按鈕的查找結(jié)果是類似的。與的接觸關系中,應該為,而應該為p所以接觸關系需要顛倒一下。命令如下:tieeam2(m)suptie:con2(m)/beam2:1
31、5,tie:panel(m)/sup:60由于panel與sup的關系唯一(全部為masterpanel,也可以簡寫成如下的命令形式:swap_master_slave(tie,sup,panel)Masterandslaveswappedsuccessfullyfor60contactpairs.)下面設置n與eam之間的接觸關系為interati接觸,nta,t而不是nstraint(tie)而且它們之間有摩擦作用(摩擦系數(shù)取。需要說明的是,假如通過軟件界面操作進行通用接觸對的查找和建立,那么建立之后的接觸對是沒法進行類似的轉(zhuǎn)換的。而通過swap_ntat_ti函數(shù),這種轉(zhuǎn)換是很容易的事情
32、。命令形式如下:swap_ntat_tie(n,eam,nvert_tntat,prpritin)部分輸出信息如下。我們注意到,通過編程,運行過程的輸出信息也是可以充分顯示,從而便于程序和模型的調(diào)試,保證結(jié)果的準確性。在接觸類型轉(zhuǎn)換過程中,由于之前查找接觸對的時候已經(jīng)自動地保存了每一個接觸對的主從面,所以利用這些主從面可以重新建立另外一種類型的接觸對。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í)行上述命令之后,界面的顯示變化如下圖(圖)所示。的接觸關系已經(jīng)成執(zhí)行上述命令之后,界面的顯示變化如下圖(圖)所示。的接觸關系已經(jīng)成功而且是很方便地改變成了的接觸關系。色ALEAdaptive血*h”Cons
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年消音降噪設備項目規(guī)劃申請報告模板
- 2024-2025學年新疆維吾爾烏魯木齊市沙依巴克區(qū)數(shù)學三上期末達標檢測試題含解析
- 2024-2025學年西藏山南地區(qū)隆子縣數(shù)學三上期末經(jīng)典模擬試題含解析
- 2024-2025學年無錫市數(shù)學三年級第一學期期末質(zhì)量檢測試題含解析
- 小學生學習計劃四篇
- 世界糧食日主題活動總結(jié)怎么寫7篇
- 2025年品質(zhì)生活電器項目提案報告模式
- 元旦節(jié)活動方案(15篇)
- 2024年股權投資協(xié)議:攜手投資共創(chuàng)輝煌未來
- 遠程教育學習心得體會三篇主題教育
- 中國華能招聘筆試題庫2024
- 七年級上冊《朝花夕拾》梳理及真題訓練(含答案)
- 《人工智能基礎》課件-AI的前世今生:她從哪里來
- 中國礦業(yè)大學《自然辯證法》2022-2023學年期末試卷
- TCWAN 0105-2024 攪拌摩擦焊接機器人系統(tǒng)技術條件
- 江蘇省期無錫市天一實驗學校2023-2024學年英語七年級第二學期期末達標檢測試題含答案
- 西方經(jīng)濟學考試題庫(含參考答案)
- 引水式水電站工程施工組織設計
- 醫(yī)院工作流程圖較全
- NB/T 11431-2023土地整治煤矸石回填技術規(guī)范
- 創(chuàng)業(yè)基礎(浙江財經(jīng)大學)智慧樹知到期末考試答案章節(jié)答案2024年浙江財經(jīng)大學
評論
0/150
提交評論