?? ansys-vc++6.0.txt
字號:
AfxMessageBox("error!");
GetLastError();
} // 創建進程
3. 進程的終止
要終止進程的運行可以使用如下四種方法:①主線程的進入點函數返回;②進程中的一個線程調用ExitProcess函數;③另一個進程中的線程調用TerminateProcess函數;④所有進程中的線程自動終止運行(這種情況一般不會發生)。本文采用第一種方法終止所創建的進程,即當ANSYS計算結束時通過函數返回。
在WindowsXP系統中,如果ANSYS批處理程序運行完后,窗口標題會顯示“ANSYS已完成”。本文程序開發便可通過這一特點來終止系統所創建的進程。當ANSYS計算模塊運行完畢后,系統會彈出一個消息框提示ANSYS已計算完畢,可以進行后處理了。
3.3.3 用戶界面接口模塊
用戶界面模塊主要完成系統和用戶的交互。用戶界面模塊包括計算參數輸入和程序調用兩部分。計算參數輸入部分的主要功能是負責輸入諸如地震波數據、是否調幅、時間步長等。計算輸入是由對話框構成。計算參數輸入對話框界面如下:
圖3-4 計算參數輸入界面
程序對各參數的輸入范圍都進行了設定,如果用戶輸入的參數超過了這一設定,系統就會彈出對話框以提醒用戶輸入錯誤,需要重新輸入。ANSYS程序調用通過菜單方式進行。該菜單首先不處于激活狀態,而是當三維數值模擬所需參數輸入完成后才得到消息激活菜單。這樣設計的優點:能夠提醒用戶輸入并檢查用于三維數值模擬的相關參數,避免用戶在不輸入參數的情況下直接調用ANSYS進行計算而造成錯誤。
程序設計采用文檔讀寫的方式將輸入的計算參數插入到用APDL語言進行二次開發的ANSYS計算模塊。參數化設計的ANSYS計算模塊就可以根據輸入的參數進行數值模擬計算。
3.3.4 ANSYS后處理模塊的二次開發
ANSYS軟件提供了兩個后處理器,可以對結果進行時間-歷程后處理
和通用后處理。對于相互作用體系地震反應分析,它可以將模擬結果用應力圖、等值線(面)、動畫等形式輸出與轉換。其中POST1通用后處理器可用于觀察整個模型或模型的一部分在某一時間的模擬結果,可顯示結構在地震作用下的應力圖和位移變形圖;時間—歷程后處理器POST26用于檢查模型中指定點的分析結果與時間的函數關系,可顯示模型上各個節點的各變量的時程曲線。可見,對于大多數的后處理分析我們可以直接使用ANSYS的后處理器。但由于ANSYS是一個通用軟件,而對某些特殊領域的后處理分析無能為力或者不是很方便,因而,需要對其進行二次開發,以減輕后處理工作和提高后處理效率。
在相互作用體系地震反應分析中,有時除了關注各物理量時程曲線外,還關心其在結構高度方向的分布(如層間位移、層間剪力、層間加速度反應等)。解決這一問題的二次開發需要結合相互作用體系地震反應分析特點進行。
(1)物理量分析
在地震反應時程分析中,我們對樓層位移時程、加速度時程、柱應力應變時程 、剪力墻應力應變時程比較關心,同時還需要分析層間位移和層間加速度變化。考慮到本文將計算多種工況,本程序對常見的變量編寫了后處理程序,具有通用性,極大地提高了后處理效率。
(2) 程序實現
基于上面分析,本程序是通過接口程序調用ANSYS,讀入編寫的后處理命令流,讀取ANSYS計算的結果數據庫,生成各變量的結果文件,然后用本程序的后處理模塊進行讀數繪圖處理,進而生成結果圖形。這一過程采用VC編程實現的,VC編程的算法流程圖如圖3-2的后處理模塊。
問:在用patran等建立了幾何模型,劃分網格后,刪除了幾何模型,有何辦法可以重新恢復幾何模型,當然不是重新建點、線、面、體等。大家看有沒有好的方法。
答:首先將有限元模型轉換為ANSYS格式,然后可以利用ANSYS從實體單元的單元面再產生幾何體。下面給出一個從四面體單元再產生幾何實體的示例命令流(如果要轉換六面體網格,可以通過修改下面的命令流實現。):
1. 轉換未變形的網格:
esel,s,mat,,1 !假設單元材料號為1,先選擇單元
*get,enum1,elem,0,count
*get,el,elem,0,num,min
ksel,all
*get,nkp1,kp,0,num,max
ksel,none
asel,none
vsel,none
/prep7
*do,i,1,enum1
*do,j,1,3
nd=nelem(el,j)
knum1=nkp1+4*(i-1)+j
k,knum1,nx(nd),ny(nd),nz(nd) !
*enddo
nd=nelem(el,j+2)
k,knum1+1,nx(nd),ny(nd),nz(nd)
v,knum1-2,knum1-1,knum1,knum1+1
el=elnext(el)
*enddo
numm,kp
cm,aal1,area
asel,r,ext
cm,aext,area
vdel,all
va,all
cmsel,s,aal1
cmsel,u,aext
adel,all,,,1
2. 如果需要轉換變形后的網格:
esel,s,mat,,1 !假設單元材料號為1,先選擇單元
*get,enum1,elem,0,count
*get,el,elem,0,num,min
ksel,all
*get,nkp1,kp,0,num,max
ksel,none
asel,none
vsel,none
/post1
set,last !輸出最后一步變形后的網格
/prep7
SHPP,OFF
UPGEOM,1,LAST,LAST,'filname','rst',' ' !假設工作文件名為filname
*do,i,1,enum1
*do,j,1,3
nd=nelem(el,j)
knum1=nkp1+4*(i-1)+j
k,knum1,nx(nd),ny(nd),nz(nd) !
*enddo
nd=nelem(el,j+2)
k,knum1+1,nx(nd),ny(nd),nz(nd)
v,knum1-2,knum1-1,knum1,knum1+1
el=elnext(el)
*enddo
numm,kp
cm,aal1,area
asel,r,ext
cm,aext,area
vdel,all
va,all
cmsel,s,aal1
cmsel,u,aext
adel,all,,,1
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -