创建复杂的几何模型,可运用布尔运算对模型进行加工和修改。无论是自顶向下建模或是自底向上建模创建的图素都可进行布尔运算,通过简单的几何模型进行一系列布尔操作可创建复杂的模型,使得建模较为容易和快捷。
对于包含退化的模型,有时布尔运算是无法完成的。对于已经划分网格的图素不能进行布尔运算,在操作前应清除网格,否则提示错误信息;同样地,如果定义了荷载和单元属性,在布尔运算后这些属性不会转换到新图素上,需重新定义。
布尔运算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. 布尔操作是一个危险性的运算,在操作之前建议先存储文件或命令流,再进行布尔操作。以免结果不对时可及时恢复文件。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删