2.3.5 用工作平面切分图素 Subtract 用工作平面切分图素实际上是布尔减运算,即图素 ( 线、面、体) 减工作平面的运算(相当于 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 说明。 示例: (1) 体的切分 /prep7 ! 进入前处理 SPH4,,,2 ! 创建球体 CYL4,8,,2,,,,6$RPR4,5,16,,2,,6 ! 创建圆柱体和棱柱体 CON4,24,,,2,6$TORUS,,0.5,4 ! 创建圆锥体和环体 wprota,,,90 ! 旋转工作平面 vsbw,all ! 切分所有体 *do,i,1,3 wpoff,,,8 vsbw,all *enddo ! 移动工作平面并切分其余体 (2) 面的切分 ! 将一环面分为 12 等份 /prep7 ! 进入前处理 cyl4,,,1,,2 ! 创建环面 wprota,,,90 ! 旋转工作平面到与面垂直的位置 asbw,all ! 切分环面为 2 部分 *do,i,1,5 $wprota,,30 $asbw,all $*enddo ! 循环切分面,将面 12 等份 (3) 切分长方体 ! 将一长方体切分为10份 /PREP7 $blc4,,,1,2,20 ! 进入前处理 *do,i,1,9 $wpoff,,,2 $vsbw,all $*enddo ! 移动工作平面并切分体 2.3.6 分割运算 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)。 (1) 线分割 线分割 LPTN、线分类 LCSL 及线搭接 LOVLAP 这 3 个命令相同 /PREP7 ! 进入前处理 *DO,I,1,10 $K,2*I-1,,I $K,2*I,11,I $L,2*I-1,2*I $*ENDDO *DO,I,1,10 $K,50+2*I-1,I,1 $K,50+2*I,I,10 L,50+2*I-1,50+2*I $*ENDDO lPTN,all ! 作分割运算,则在所有相交点断开并生成关键点,其通长线成为短线 ! LCSL,ALL 或 LOVLAP,ALL 均与上述命令结果相同。 如线不在一个平面内,结果也相同,例如: /PREP7 csys,1 $k,1,1 $k,2,1,170 $l,1,2 ! 设置柱坐标系,并创建弧线 csys,0 $lgen,3,all,,,,,2 ! 设置直角坐标系,并复制弧线 k,10,,1,-2 $k,11,,1,10 $l,10,11 ! 创建一条直线 lgen,4,4,,,2 ! 复制该直线 lptn,all ! 作分割运算 ! lcsl,all ! lovlap,all ! 或作分类运算或搭接运算结果相同 (2) 面分割 面分割 APTN 与面搭接 AOVLAP 很多情况下是相同的,例如: /PREP7 ! 进入前处理 CYL4,,,2 ! 创建一圆面 WPROTA,,90 ! 旋转工作平面 CYL4,,,2 ! 创建一圆面与第一个垂直,其相交部分为线 APTN,ALL ! 作分割运算生成 4 个面 ! AOVLAP,ALL ! 作搭接运算结果相同 (3) 体分割 体分割 VPTN 与体搭接很多情况结果也相同,例如: /PREP7 ! 进入前处理 rprism,,6,5,1 ! 创建 5 边形棱柱体 cyl4,0.5,,1,,,,5 ! 创建圆柱体 cyl4,4,,1,,,,4 ! 再创建一个没有相交的圆柱体 VPTN,ALL ! 生成 3 个新体和 1 个原体 ! VOVLAP,all ! 结果同 VPTN 命令 2.3.7 分类运算 Classify 分类计算目前只能在线之间进行,即只有 LCSL 命令,其作用是在线的相交点将相交线断开,并生成新线,缺省时将直接删去原来的相交线。该命令在规则的杆系结构建模中十分方便。 分类运算完成后,采用 BOPTN 的设置,缺省时将删除输入图素。其结果与 LPTN 相同。 命令:LCSL, NL1, NL2, NL3, NL4, NL5, NL6, NL7,NL8, NL9 其中 NL1~NL9 为相交线号。NL1 也可为 ALL 或 P。 2.3.8 搭接运算 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)。 2.3.9 粘接 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) 线粘接 线粘接将端点重合或交叉的线粘接在一起,形成共享关键点 /prep7 ! 以下创建 7 个关键点,且 1,2 重合,5,6 重合 k,1 $k,2 $k,3,1 $k,4,3,1 $k,5,2,3 $k,6,2,3 $k,7,4,5 l,1,3 $l,2,4 $l,1,5 $l,6,7 ! 创建4条线 lglue,all ! 作线粘接运算。关键点剩 5 个。 (2) 面粘接 /prep7 !创建4个面,作粘接运算 blc4,,,2,2 $blc4,2,2,1,1 $blc4,4,4,2,2 $blc4,6,4,1,1 aglue,all (3) 体粘接运算 /prep7 ! 创建 4 个体,作粘接运算 blc4,,,2,2,2 $blc4,2,2,1,1,-1 $blc4,8,8,2,2,2 blc4,10,8,1,1,1 vglue,all
|