-
布尔运算失败的原因及解决方法
在实体建模的
过程中,
理解下列
ANSYS
所用的数
学操作是很有帮助的。
这些知识在遇到实
体退化和不连续处尤为
有用。
例如,
在实体模型布尔运算中遇到退化的错误提示。
p>
数学术语
知识对克服这样的错误会有帮助。
实体模型图元的内在数学表现为经修整过的参数表面。
修整过的
参数化表面包括两部分:
参
数的几何形状和拓扑结构。
参数化几何形状定义模型的基本表面。
参数项是指数学上代表几
何空间的参数空间。图为几何模型与参数模型的关系。非均匀有理
B
p>
样条或
NURBS
用来
定义参数的几何形状。拓扑是指围成模型的几何形状的修整表面。
●退化
布尔运算可能会由于实体退化
而失败。退化由几何形状或拓扑结构所引起。
ANSYS
程序将
退化(引起了布尔运算失败)归结为参数的(几何形状)或拓扑结构的退化。
Degenerate entities are those
whose length, area or volume degenerate to zero
because
of the coincidence of one or
more points or vertices.
用基本
参数空间来表示几何空间进会产生参数的退化。
当参数所表示的“阴影区”与真实的
p>
几何模型的维数不一致时,
就会产生退化。
例如圆锥体的顶点,
几何模型上的单个点却由参
数空间体现为一
个边。这样的一个点称为一个退化边,或简称为退化。
这种退
化本身并没有危害。
包含退化的模型仍可用来进行布尔运算,
可
以成功地进行网格划
分,并产生良好的分析结果。只有当退化使布尔运算出现问题时才需
要注意它的存在。
?
从图形上识别单元退化
用下列所述方法可以验证面或体的退化。如果使用命令输入方法,包括
DE
GEN
命令在内,
会在退化的关键点处出现红星。
?显示面的退化:
命令:
APLOT, , ,
,DEGE
GUI : Main
Menu>Preprocessor>Operate>Show Degeneracy>Plot
Degen Areas
?显示所选体的退化:
命令:
VPLOT, , ,
,DEGE
GUI : Main
Menu>Preprocessor>Operate>Show Degeneracy>Plot
Degen Volus
?
退化的关键点列表
可以选择退化的关键点列表:
?面中参数退化的关键点列表:
命令:
ADGL
GUI : Main
Menu>Preprocessor>Operate>Show Degeneracy>List
Degen Areas
?体中参数退化的关键点列表:
命令:
VDGL
GUI : Main
Menu>Preprocessor>Operate>Show Degeneracy>List
Degen Volus
另一种退化可在布尔运算要生成退化
的边界时被发现。退化的边界是不完全或零面积的圈,
或是不完全或零体积的壳。
这种退化一般指拓扑退化。
如果发现这种退化,
布尔运算会产生
错误信息。
拓扑退化由于在进行布尔运算前并
不存在所以不能画出。
拓扑退化的例子如图和
所示。布尔运算失
败的例子如图所示
。在这个例子中,
不能从长方体中切去〔
p>
VSBV
〕三棱
柱,因为在长方体的上表面
形成退化线
。其它的布尔运算命令诸如
VADD
、
VOVLAP
等对
这个体也
会因出现这种退化而失败。
?
不连续
一
般来讲,不连续是实体图元中的尖的转折点,是由具有不同切线的合并线〔
LCOMB<
/p>
〕或
从
IGES
输入所引起的。图为包含不连续的图元的示意图。
许多实体模型操作支持包含不连续的图元。
但是布尔运算不能直接支持不
连续。
在进行布尔
运算之前将图元在不连续点处或沿不连续线处
将图元分开。
例如,
图表示在进行布尔减操作
< br>的不连续面。在进行布尔减运算之前将
1
面沿线
1
和线
3
的不连续处分
开。
注意:不连续与切线向量的方向和大小有关
●布尔运算失败的其它原因
除退化外
还有其它原因使布尔运算失败。
例如,
切点处的相交区域有时对
于布尔运算是难以
处理的,尤其是对非体素构造的模型。而且共享边界的图元(如两体的
相接面的共同表面)
在进行布尔运算时会有潜在的问题。
几何中
包含了高曲率的小区域或有尖角转接的区域也会
引发这样的问题。
●建议采取的一些正确措施
如果布尔运算失败,可用下列程序对此问题做工作。
构造模型时不必总是遵循这些指导,
可用任何用户想要的方法来构造模型
,
而不会遇到布尔
运算失败。这些准则提供了挽回布尔运算失败
的途径。
调整输入几何形状,利用如下准则:
?尽可能地使用几何体素来生成实体模型。对于非体素生成的模型布尔运算的结果有的不够
准确和高效。
?如果退化发生在可能相交曲线上,尽量避免
生成包含退化的几何体,这样几何体的一些特
殊例子包括:
─未削平的圆锥体
─三边面既不是平
面的也不是在激活的坐标系下的一个有常数坐标的表面。
─逐
渐减少为一个点的倒角面〔
AFILLT
〕
─两条以上引导线相交的蒙皮面〔
ASKIN
〕
─通过绕轴旋转〔
A
ROTAT
,
VROTAT
〕生成的面
或体并与任何输入图元相交。
─通过沿一有弯曲中心的路径拖
拉生成的面或体与任何输入图元相交
?尽量避免对相切的图元
执行布尔运算。类似地,避免对碰巧有相同边界的图元进行布尔运
算。
< br>
?布尔运算包括两个以上输入图元,将操作分解为一系列的对更少输入图元的操
作。例如,
用命令集(
AADD
,
p>
1
,
2
;
AADD
,
5
,
3
;
AADD
,
p>
1
,
4
)代替命令
AADD
,
ALL
。
(这样做
就必须对一系列命令产生输出图元记录布尔运算
的编号。
?如果一系列布尔运算失
败,尝试改变操作的次序。例如,将系列(
AADD
,
1
,
2
;
AADD
,
5
,
3
;
AADD
,
1
,
4
)替换为重新编
号的系列(
AADD
,
4
,
3
;
AADD
,
5
,
2
;
AADD
,
3
,
1
)
。
< br>
?如果布尔运算失败,会得到一个建议用户放宽(增
加)缺省的
1.0E-4
公差值的错误信息。
< br>公差影响布尔运算执行的精度。有时候简单地改变公差并重新执行布尔运算命令就足够了。
而有时需要反过来,
在成功地进行布尔运算之前,
利用
修改的公差还原布尔运算的输入图元。
可用
< br>BTOL
,
PTOL
命令放宽公
差,
PTOL
是新的公差:
-
-
-
-
-
-
-
-
-
上一篇:在党的纪律面前
下一篇:OrcaFlex软件操作指南