
發布
注冊
/
登錄ansys布爾加運算的案例
ANSYS Workbench布爾運算
(實體導入后參考原始坐標系堆疊在一起,可以通過Create->bodytransformation-> Move來調整實體間的相對位置)
圖15 導入多個外部實體
圖16導入后結果
圖17導入后設置添加材料操作
由上圖可知在外部導入實體時可以通過在Import下面更改Operation方式為Add Material就可以達到布爾加運算的目的。但筆者發現個bug:導入后的多個實體一般都需要調整位置,調整位置后再用布爾運算就會發現實體相對位置又恢復原狀了。故建議此方法盡量少用,知道就好了。
在WB DM中可以進行多體建模時,而不需要像Solidworks那樣先畫零件圖然后再裝配在一起。關鍵原因就是在WB DM體中你可以先畫好實體1,然后凍結起來,然后在畫實體2,然后依次類推… 懂了吧DM中就是這樣進行裝配體建模的。在生成實體時如果選擇Add Frozen,就會是多體建模效果,如下圖18。如果選擇Add Material就是布爾加運算了,如下圖19。
圖18 添加凍結=多體建模
圖19 添加材料=布爾加運算
6.Cut Material
Cut Material與布爾減運算的效果是一樣的。如下圖,先將圓盤結凍(激活到可修改狀態),在圓盤外表面畫一個小圓形然后向內拉伸0.02M,操作選項選擇Cut Material。效果如下圖20。
圖20 CutMaterial
7. Slice
Slice功能其實也與布爾減運算相差無幾。常用的Slice功能用在平面分割實體、拉伸分割等情況。平面分割實體舉例如圖21。拉伸分割實體舉例如圖22。
展開 ANSYS布爾運算介紹
加運算僅限于同級幾何圖素,而且相交部分最好與母體同級,但在低于母體一級時也可作加運算。如體與體的相加,其相交部分如為體或面,則加運算后為一個體;如相交部分為線,則運算后不能生成一個體,但可公用相交的線;如相交部分為關鍵點,同樣加運算后公用關鍵點,但體不是一個,不能作完全的加運算。
如面與面相加,其相交部分如果面或線,則可完成加運算。如果相交部分為關鍵點,則可能生成的圖素會有異常,當然一般情況下不會出現這種加運算。
加運算完成后,輸入圖素的處理采用 BOPTN 的設置。如采用缺省設置,則輸入圖素被刪除。
加運算有 2 個命令,即AADD,VADD。線合并 LCOMB 命令不能算布爾加運算,其命令說明詳見前面創建線部分。
加運算命令:
面加運算:AADD,NA1, NA2, NA3, NA4, NA5, NA6, NA7, NA8, NA9
體加運算:VADD,NV1, NV2, NV3, NV4, NV5, NV6, NV7, NV8, NV9
其中 NX1~NX9 為相加圖素的編號,NX1 可以為 P、ALL 或組件名 (其中 X表示 A 或 V)。
3.減運算Subtract
減運算就是“刪除”母體中一個或多個與子體重合的圖素。與加運算不同的是減運算可在不同級圖素間進行,但相交部分最多與母體相差一級;例如體體減運算時,其相交部分不能為線,為面或體均可完成運算。減運算結果的最高圖素與母體圖素相同。
減運算完成后,輸入圖素的處理可采用 BOPTN 的設置,如采用缺省設置,則輸入圖素被刪除。也可不采用 BOPTN 的設置,而在減運算的參數中設置保留或刪除,該設置高于 BOPTN 中的設置,并且減圖素和被減圖素均可設置刪除或保留選項。
展開 ANSYS的結果進行二次運算并顯示云圖
ANSYS的結果進行二次運算并顯示云圖
在實際應用中經常會需要將ANSYS的計算結果進行二次運算,并重新顯示新的結果云圖。也即是ANSYS的現有計算結果不能滿足實際需求,需要自己在一次計算結果的基礎之上編寫計算方法。
在ANSYS里,這個過程是通過修改節點或者單元的結來實現的,筆者以前在ABAQUS里面也實現過這樣的過程,不過在ABAQUS里面不是通過直接修改節點/單元解實現的,而是可以重新定義新的結果變量。
ANSYS修改節點解釋通過DNSOL命令完成的,命令解釋如下:
DNSOL, NODE, Item, Comp, V1, V2, V3, V4, V5, V6
其中Item和Comp這兩個量是需要修改的變量名稱,例如需要修改位移X,則Item應為U,Comp應為X,后面的V1-V6就是新的值。
可以看到,利用DNSOL命令每次只能修改一個節點的值,因此,很多情況下是需要對全部的節點值進行修改,故通常需要和遍歷命令一起使用。
下面以一個實際的例子說明具體的使用方法。
新建一個簡單的模型,加載求解得到以下的結果,分別為x方向的位移和y方向的位移。
X方向的位移如下:
Y方向的位移如下:
現在需要將X和Y方向的位移進行重新計算,假設:
新的Ux=Ux**2+0.1
新的Uy=Uy**2-0.1
具體實現過程是先依次讀取計算得到的Ux和Uy,保存在自定義的數組中,然后定義新的數組,將前面的數組的數據分別處理后保存到新的數組之中,最后依次讀取新的數組的數據再通過DNSOL命令進行修改,修改完成即可顯示新的結果。
!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
展開 <手搓有限元 干翻Ansys> 【1】C++實現矩陣Matrix類 實現基本運算
本系列文章致力于實現“手搓有限元,干翻Ansys的目標”,基本框架為前端顯示使用QT實現交互,后端計算采用Visual Studio C++。
Matrix類
矩陣基本類,用于有限元矩陣計算。
1、public function
1.1、構造函數與析構函數
構造函數用來初始化矩陣,析構函數用來釋放內存。
