ANSYS布爾運算介紹
作者:王攀
創建複雜的幾何模型,可運用布爾運算對模型進行加工和修改。無論是自頂向下建模或是自底向上建模創建的圖素都可進行布爾運算,通過簡單的幾何模型進行一系列布爾操作可創建複雜的模型,使得建模較為容易和快捷。
對於包含退化的模型,有時布爾運算是無法完成的。對於已經劃分網格的圖素不能進行布爾運算,在操作前應清除網格,否則提示錯誤信息;同樣地,如果定義了荷載和單元屬性,在布爾運算後這些屬性不會轉換到新圖素上,需重新定義。
布爾運算GUI操作界面以及所有命令如下圖所示。
1. 交運算 Intersection
交運算就是由圖素的共同部分形成一個新的圖素,其運算結果只保留兩個或多個圖素的重疊部分。
交運算分為公共相交和兩兩相交兩種。公共相交就是僅保留所有圖素的重疊部分,即只生成一個圖素,當圖素很多時可能不存在公共部分,這時布爾運算不能完成。兩兩相交是保留任意兩個圖素的公共部分,有可能生成很多圖素。
公共交運算對圖素沒有級別要求,即任何級別的圖素都可作公共交運算,而不管其相交部分是何級別的圖素。例如線、面、體的兩兩與相互交運算都可;再如體的交運算中,其相交部分可以是關鍵點、線、面或體等。
兩兩相交運算則要求為同級圖素,但相交部分可為任何級別的圖素。例如只能作線與線(相交部分可為關鍵點、線)、面與面(相交部分可為關鍵點、線、面)、體與體的兩兩相交(相交部分可為關鍵點、線、面、體)。
交運算完成後,輸入圖素的處理採用 BOPTN 的設置。
(1) 同級圖素相交運算
線線相交:LINL, NL1, NL2, NL3, NL4, NL5, NL6, NL7, NL8, NL9
面面相交:AINA, NA1, NA2, NA3, NA4, NA5, NA6, NA7, NA8, NA9
體體相交:VINV, NV1, NV2, NV3, NV4, NV5, NV6, NV7, NV8, NV9
其中 NX1~NX9 為相交圖素的編號,NX1 可以為 P、ALL 或組件名(其中 X表示 L、A 或 V)。
(2) 不同級圖素相交運算
線面相交:LINA, NL, NA
面體相交:AINV, NA, NV
線體相交:LINV, NL, NV
其中 NL 為相交線號,NA 為相交面號,NV 為相交體號。被交圖素不能為 ALL或組件名,這對實際應用造成一定的不便。
(3) 同級兩兩相交運算
線線兩兩相交:LINP, NL1,NL2, NL3, NL4, NL5, NL6, NL7, NL8, NL9
面面兩兩相交:AINP, NA1,NA2, NA3, NA4, NA5, NA6, NA7, NA8, NA9
體體兩兩相交:VINP, NV1,NV2, NV3, NV4, NV5, NV6, NV7, NV8, NV9
其中 NX1~NX9 為相交 X 的編號,NX1 可以為 P、ALL 或組件名(其中 X 表示 L、A 或V)
2.加運算Addition
加運算是由多個幾何圖素生成一個幾何圖素,而且該圖素是一整體即沒有「接縫」(內部的低級圖素被刪除),當然帶孔的面或體同樣可以進行加運算。
加運算僅限於同級幾何圖素,而且相交部分最好與母體同級,但在低於母體一級時也可作加運算。如體與體的相加,其相交部分如為體或面,則加運算後為一個體;如相交部分為線,則運算後不能生成一個體,但可公用相交的線;如相交部分為關鍵點,同樣加運算後公用關鍵點,但體不是一個,不能作完全的加運算。
如面與面相加,其相交部分如果面或線,則可完成加運算。如果相交部分為關鍵點,則可能生成的圖素會有異常,當然一般情況下不會出現這種加運算。
加運算完成後,輸入圖素的處理採用 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 中的設置,並且減圖素和被減圖素均可設置刪除或保留選項。
減運算在處理相交圖素時可選擇共享或分離兩種方式。由於減運算可在不同等級圖素間進行,其命令較多。
(1) 同級圖素減運算
線線減運算:LSBL,NL1, NL2, SEPO, KEEP1, KEEP2
面面減運算:ASBA,NA1, NA2, SEPO, KEEP1, KEEP2
體體減運算:VSBV,NV1, NV2, SEPO, KEEP1, KEEP2
Nx1,Nx2 - 被減圖素編號和減去圖素編號。Nx1 也可為 ALL 或組件名(x 可為L,A,V)。
SEPO - 確定 NX1 和 NX2 相交圖素的處理方式。
SEPO=blank (空,預設)則新生成的圖素共享該相交圖素;
SEPO=SEPO 則新生成的圖素分開是各自獨立的,但位置上是重合的。
KEEP1---確定NX1是否保留控制參數。
KEEP1=0 或空(預設)則使用 BOPTN 中的設置;
KEEP1=DELETE 刪除 NX1 圖素(高於 BOPTN 設置)
KEEP1=KEEP 保留 NX1 圖素(高於 BOPTN中 設置)
KEEP2 - 與 KEEP1 類似用於 NX2。
(2) 不同級圖素減運算
線減面運算:LSBA,NL, NA, SEPO, KEEPL, KEEPA
線減體運算:LSBV,NL, NV, SEPO, KEEPL, KEEPV
面減線運算:ASBL,NA, NL, ------, KEEPA, KEEPL
面減體運算:ASBV, NA, NV,SEPO, KEEPA, KEEPV
體減面運算:VSBA,NV, NA, SEPO, KEEPV, KEEPA
其中 NL ,NA,NV - 線、面、體編號,也可為 ALL 或組件名。其餘參數意義類似於同級圖素減運算命令中的說明。
4.剖分運算Divide
分割運算包含用線、面、體分割。用得最多的命令當屬用工作平面分割了。用工作平面切分圖素實際上是布爾減運算,即圖素( 線、面、體) 減工作平面的運算(相當於 LSBA,ASBA, VSBA命令),但工作平面不存在運算後的刪除問題,且利用工作平面不用預先創建減去的面,因此在很多情況下非常方便。
這裡的切分也存在「僅切不分」和「切而分」兩種情況,前者將圖素用工作平面劃分為新的圖素,但與工作平面相交部分是共享的,或者說是「粘」在一起的;而後者則將新生成的圖素分開,是各自獨立的,在同位置上存在重合的關鍵點、線或面。在網格劃分中,常常將圖素切分(僅切不分),以得到較為理想的劃分效果(以保證共節點)。
切分運算完成後,輸入圖素的處理採用BOPTN 的設置,如採用預設設置,則輸入圖素被刪除。也可不採用BOPTN 中的設置,而強制保留或刪除。
該類運算命令僅有3個,即 LSBW、ASBW、VSBW,格式如下:
切分線命令:LSBW, NL, SEPO,KEEP
切分面命令:ASBW, NA, SEPO,KEEP
切分體命令:VSBW, NV, SEPO,KEEP
其中:NL ,NA,NV - 線、面、體編號,也可為ALL、組件名或 P (在 GUI 中拾取)。
SEPO - 同 2.3.4 中的命令參數說明。為空 (默認) 即切而不分,為 SEPO 即切而分。
KEEP - 同前面 KEEP1 說明。
5.分割運算Partition
分割運算是將多個同級圖素分為更多的圖素,其相交邊界是共享的,即相互之間通過共享的相交邊界連接在一起。分割運算與加運算類似,但加運算是由幾個圖素生成一個圖素,分割運算是由幾個圖素生成更多的圖素,並且在搭接區域生成多個共享的邊界。分割運算生成多個相對簡單的區域,而加運算生成的是一個複雜的區域,因此分割運算生成的圖素更易劃分網格。
分割運算不要求相交部分與母體同級,相差級別也無限制。例如體的相交部分如果為關鍵點,進行分割運算後,體可以通過共享關鍵點連接起來。面的相交部分如果為線,則共享該線並將輸入面分為多個部分,分割運算容許不共面。
可以認為,分割運算包含了搭接運算,在建模過程中使用分割運算即可。分割運算完成後,其輸入圖素的處理方式採用 BOPTN 中的設置。
分割運算只有 3 個命令如下:
LPTN, NL1, NL2, NL3, NL4, NL5, NL6, NL7, NL8, NL9
APTN, NA1, NA2, NA3, NA4, NA5, NA6, NA7, NA8, NA9
VPTN, NV1, NV2, NV3, NV4, NV5, NV6, NV7, NV8, NV9
其中 NX1~NX9 為分割圖素的編號,NX1 可以為 P、ALL 或組件名(其中 X 表示 L、A、V)。
6.搭接運算 Overlap
搭接運算僅限於同等級圖素,由幾個圖素生成更多的圖素,並且在搭接區域生成多個共享的邊界。
體搭接運算相交部分要求與母體同級,例如體相交部分不能為面。但是進一步的操作發現,當面面不在一個平面內相交時,其相交部分可以比母體低一級,例如面相交部分可以為線;但如果面面在同一平面內相交時,其相交部分不能為線。但線線相交部分可以為點。因此與分割命令在某些情況下是相同的。
搭接運算完成後,其輸入圖素的處理方式採用BOPTN 中的設置。
搭接運算只有3個命令如下:
線搭接命令:LOVLAP, NL1,NL2, NL3, NL4, NL5, NL6, NL7, NL8, NL9
面搭接命令:AOVLAP, NA1,NA2, NA3, NA4, NA5, NA6, NA7, NA8, NA9
體搭接命令:VOVLAP, NV1,NV2, NV3, NV4, NV5, NV6, NV7, NV8, NV9
其中 NX1~NX9 為搭接圖素的編號,NX1 可以為 P、ALL 或組件名(其中 X 表示 L、A、V)。
7.粘接 Glue
把兩個或多個同級圖素粘在一起,在其接觸面上具有共享的邊界。粘接運算要求參加運算的圖素不能有與母體同級的相交圖素。例如體體粘接時,其相交部分不能為體,但可為面、線或關鍵點,即相交部分的圖素級別較母體低即可;面面粘接時,其相交部分只能為線或關鍵點,並且這些面必須共面;線線粘接時,其相交部分只能為線的端點,例如兩個不在端點相交的線是不能粘接的。
粘接運算與加運算不同,加運算是將輸入圖通過運算合為一個母體,而粘接運算後參與運算的母體個數不變,即母體不變,但公共邊界是共享的。粘接運算在網格劃分中是非常有用的,即各個母體可分別有不同的物理和網格屬性,進而得到優良的網格。
粘接也不是分割運算的逆運算,因為分割運算後圖素之間共享邊界,此時無需粘接運算。
在建立比較複雜的模型時,可獨立創建各個圖素,然後通過粘接運算使其共享邊界。這與採用各種方法創建一個母體,然後採用切分效果是一樣的。如果圖素之間本身就是共享邊界的,當然也不需進行粘接運算。
粘接運算完成後,其輸入圖素的處理方式採用 BOPTN 中的設置。
粘接命令只有3個,說明如下:
線粘接:LGLUE,NL1, NL2, NL3, NL4, NL5, NL6, NL7, NL8, NL9
面粘接:AGLUE,NA1, NA2, NA3, NA4, NA5, NA6, NA7, NA8, NA9
體粘接:VGLUE,NV1, NV2, NV3, NV4, NV5, NV6, NV7, NV8, NV9
其中 NX1~NX9 為粘接圖素的編號,NX1 可以為 P、ALL 或組件名(其中 X 表示L、A、V)。
粘接運算與搭接運算功能基本相同,不同的是搭接操作輸入的圖元具有重疊的區域。
布爾操作注意事項:
1. 在預設情況下,布爾操作完成後,輸入的圖元被刪除。
2. 被刪除的圖元編號變成「自由」的(這些自由的編號將賦給新創建的圖元,從最小的編號開始)
3. 已劃分網格的實體模型,對布爾運算無效。必須先清楚網格,再進行布爾運算。
4. 在對實體模型進行網格劃分前,一般需要對其進行相關的布爾操作,以便使實體模型成為一個整體,使劃分後網格連續。
5. 布爾操作是一個危險性的運算,在操作之前建議先存儲文件或命令流,再進行布爾操作。以免結果不對時可及時恢復文件。
更多
推薦閱讀:
※ANSYS/LS-DYNA管道受橫向撞擊分析
※世界最美大橋:花31億打造力學美學融合奇蹟,每年吸引百萬遊客
※有限元方法及ANSYS平台的力學模擬(一)