您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > 2.3 几何模型的布尔运算
2.3几何模型的布尔运算创建复杂的几何模型,可运用布尔运算对模型进行加工和修改。无论是自顶向下建模或是自底向上建模创建的图素都可进行布尔运算,通过简单的几何模型进行一系列布尔操作可创建复杂的模型,使得建模较为容易和快捷。对于包含退化的模型,有时布尔运算是无法完成的。对于已经划分网格的图素不能进行布尔运算,在操作前应清除网格,否则提示错误信息;同样地,如果定义了荷载和单元属性,在布尔运算后这些属性不会转换到新图素上,需重新定义。2.3.1布尔运算的设置(1)布尔运算的一般设置命令:BOPTN,Lab,ValueLab-控制参数,其值可取为以下各项之一:DEFA-恢复各选项的缺省设置。STAT-列表当前的设置状态。KEEP-删除或保留输入图素选项。NUMB-输出图素编号警告信息选项。NWARN-警告信息选项。VERSION-布尔操作兼容性选项。Value-各种Lab对应不同的Value:当Lab=KEEP时:Value=NO(缺省)则删除输入图素;Value=YES则保留输入图素。当Lab=NUMB时:Value=0(缺省)则不输出编号警告信息;Value=1则输出编号警告信息。当Lab=NWARN时:Value=0(缺省)布尔操作失败时产生一个警告信息;Value=1布尔操作失败时不产生警告信息。Value=-1布尔操作失败时产生一个错误信息。当Lab=VERSION时:Value=RV52(缺省)激活5.2版本兼容性选项;Value=RV51激活5.1版本兼容性选项。该命令的全部缺省设置是操作失败产生一个警告信息,删除输入图素,不输出编号警告信息,使用5.2版本布尔兼容性选项。该命令可多次设置,以便确定各个Lab及其Value。(2)布尔运算的容差设置命令:BTOL,PTOL其中PTOL为点重合容差,缺省为1E-5。在布尔操作时,如果点之间的距离在此值范围之内,则认为这些点是重合的。放松此值则会增加运算时间和存贮需求,但会使较多的布尔运算成功;尽管如此当模型的拓扑关系比较复杂时,仍有可能不能完成布尔运算,此时应改变模型的创建方法以求能够完成布尔操作。PTOL=DEFA时,则恢复缺省设置;PTOL=STAT时,则列表输出当前设置。2.3.2交运算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)。示例:线相交面相交:体相交:线与面相交:面与体相交:线与体相交:多线相交:多面相交:多体相交:(4)交运算的命令流示例a.线相交任意创建一组线,分别作交运算和两两相交运算,命令流如下/prep7!进入前处理*do,i,1,20!利用DO循环创建关键点*if,mod(i,2),eq,0,then!如果I能被2整除则执行下面命令k,i,2*i,4!创建坐标为(2*i,4)的关键点*else!否则(I不能被2整除)k,i,2*i,-4!创建坐标为(2*i,-4)的关键点*endif!结束IF语句*enddo!结束循环语句*do,i,1,19$l,i,i+1$*enddo!利用循环创建线l,2,19$l,1,20LINL,all!作多线相交运算,由于没有公共部分不能运算(指所有线的公共部分)LINP,ALL!作线两两相交运算,生成许多关键点,且删除了输入线!如果在执行LINP之前,设置BOPTN,KEEP,YES则输入线保留下来。求所有线的公共部分:线两两相交:b.绘制一个玫瑰花瓣利用两个圆心分别在X和Y坐标轴上的圆相交即可得到单个玫瑰花瓣,如用四个圆作两两相交运算可得到四瓣,命令流如下:/prep7!进入前处理r=1!定义变量Rcyl4,r,,r$cyl4,,r,r!创建两个圆面aina,all!作面相交运算(即以上两个圆的公共部分)wpoff,3*r!移动工作平面(避免覆盖,以利观察)cyl4,r,,r$cyl4,,r,r!创建四个圆面cyl4,-r,,r$cyl4,,-r,rasel,s,loc,x,2*r,4*r!用坐标选择刚刚创建的四个圆面ainp,all!作面两两相交运算asel,all!选择所有面aplot!显示面c.两端为球面的圆柱体设球体直径与圆柱体全高相同,命令流如下:/prep7!进入前处理r=3$h=8!设置圆柱体半径和高度sph4,,,h/2!创建半径为H/2的球体wpoff,,,-h/2!沿Z轴移动工作平面cyl4,,,r,,,,h!创建半径为R高度为H的圆柱体VINV,all!作体相交运算d.两球体、两圆柱体、两棱柱体相交、两圆锥体、两环体相交/PREP7!进入前处理SPH4,,,2$SPH4,1,,2!创建两球体CYL4,8,,2,,,,6$RPR4,5,16,,2,,6!创建圆柱体和棱柱体con4,24,,,2,6$torus,,0.5,4!创建圆锥体和环体WPROTA,,90!移动工作平面torus,,0.6,4!创建环体WPOFF,,3,-3!旋转工作平面CYL4,8,,2,,,,6$RPR4,5,16,,2,,6!再创圆柱体和棱柱体con4,24,,,3,6!创建圆锥体VINP,ALL!进行体相交操作/PREP7!进入前处理torus,,1,4$con4,10,,,2,6!创建环体和圆锥体WPROTA,,90!旋转工作平面torus,,1,4!创建与上一环体相同但垂直的环体WPOFF,,3,-3!移动工作平面特殊位置(高度一半)con4,10,,,2,6!创建与上一圆锥体相同但垂直的圆锥体vinv,1,3!生成两个面素,不是期望的。两环体有四个退化点vinv,2,4!无法完成操作,两锥体有两个退化点2.3.3加运算Addition加运算是由多个几何图素生成一个几何图素,而且该图素是一整体即没有“接缝”(内部的低级图素被删除),当然带孔的面或体同样可以进行加运算。加运算仅限于同级几何图素,而且相交部分最好与母体同级,但在低于母体一级时也可作加运算。如体与体的相加,其相交部分如为体或面,则加运算后为一个体;如相交部分为线,则运算后不能生成一个体,但可公用相交的线;如相交部分为关键点,同样加运算后公用关键点,但体不是一个,不能作完全的加运算。如面与面相加,其相交部分如果面或线,则可完成加运算。如果相交部分为关键点,则可能生成的图素会有异常,当然一般情况下不会出现这种加运算。加运算完成后,输入图素的处理采用BOPTN的设置。如采用缺省设置,则输入图素被删除。加运算有2个命令,即AADD,VADD。线合并LCOMB命令不能算布尔加运算,其命令说明详见前面创建线部分。(1)加运算命令面加运算: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)。a.单圆柱墩和基础/prep7!进入前处理a=3$h1=2$r=0.6$h=6!定义参数blc5,,,a,a,h1!创建长方体!cyl4,,,r,,,,h1+h!此命令与下面两条命令结果不完全相同。[2]!该命令在VADD后将在长方体底面有一圆面产生。wpoff,,,h1$cyl4,,,r,,,,h!移动工作平面并创建圆柱体[1]VADD,all!作体加运算方法[1]-相加后底面没有圆面:方法[2]:左-相加前,右-相加后,底面出现一个圆面:b.圆端形桥墩断面/prep7!进入前处理a=6$b=1.5!设断面全宽和厚度参数cyl4,,,b/2$cyl4,a-b,,b/2!在不同位置创建两个圆面rectng,,a-b,-b/2,b/2!创建矩形面aadd,all!作加运算,生成一个只有外边界线的圆端形面2.3.4减运算Subtract减运算就是“删除”母体中一个或多个与子体重合的图素。与加运算不同的是减运算可在不同级图素间进行,但相交部分最多与母体相差一级;例如体体减运算时,其相交部分不能为线,为面或体均可完成运算。减运算结果的最高图素与母体图素相同。减运算完成后,输入图素的处理可采用BOPTN的设置,如采用缺省设置,则输入图素被删除。也可不采用BOPTN的设置,而在减运算的参数中设置保留或删除,该设置高于BOPTN中的设置,并且减图素和被减图素均可设置删除或保留选项。减运算在处理相交图素时可选择共享或分离两种方式。由于减运算可在不同等级图素间进行,其命令较多。(1)同级图素减运算线线减运算:LSBL,NL1,NL2,SEPO,KEEP1,KEEP2面面减运算:ASBA,NA1,NA2,SEPO,KEEP1,KEEP2体体减运算:VSBV,NV1,NV2,SEPO,KEEP1,KEEP2Nx1,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或组件名。其余参数意义类似于同级图素减运算命令中的说明。示例:线减面运算:线与体相减:面与体相减:面与线相减:体与面相减:(3)减运算的命令流示例a.井子框架线先创建
本文标题:2.3 几何模型的布尔运算
链接地址:https://www.777doc.com/doc-3232943 .html