在使用Abaqus/CAE进行建模、划分网格或定义载荷时,很多工程师都用过一个非常方便的选择功能——By Angle(按角度选择)。特别是在复杂模型中,一个完整区域往往被Partition分割成许多小面。如果逐个点选,不仅效率低,也很容易漏选。这时,By Angle通常可以快速选中一系列连续的面。
那么,By Angle究竟是如何工作的?
以圆柱为例。经过多次Partition后,原本完整的圆柱侧面可能被分割成许多个Face。虽然这些Face仍然共同组成圆柱侧面,但在Abaqus中,它们已经成为彼此独立的几何实体。
如果需要在整个圆柱侧面施加压力,手动选择每个Face会非常麻烦。使用By Angle,只需先选中其中一个面,软件便可以沿着圆柱侧面自动扩展选择。
简单来说,By Angle是一种基于“相邻关系”和“法向夹角阈值”的自动扩展选择方法。其工作过程大致如下:
这里最重要的一点是:角度阈值是针对“相邻面之间的法向变化”设定的,而不是所有面相对于最初选中面的总体角度。
如果用 和 表示两个相邻面的单位法向量,其夹角可以写为:
当 不超过设定的By Angle阈值时,选择继续扩展;当 超过阈值时,选择就在这两个相邻面的公共边处停止。
圆柱侧面虽然整体是弯曲的,但局部是光滑连续的。即使圆柱侧面被分割成多个Face,相邻面在公共边附近的法向变化通常也很小。
例如,相邻面之间的法向夹角依次为 、 和 。如果By Angle阈值设置为 ,这些相邻面都会满足条件,选择便会沿着圆柱侧面不断传播,最终选中整个侧面。
软件并不是把所有面都与最初选中的面比较,而是逐个比较当前面与其相邻面。因此,即使圆柱另一侧的面与起始面法向差异很大,只要传播路径上每一对相邻面的法向夹角都没有超过阈值,选择仍然可以到达那里。
再看一个四棱台。假设先选中其中一个侧面,与它相邻的另一个侧面虽然共享一条公共边,但两个侧面在该棱边处存在明显转折。
如果两个相邻侧面的法向夹角为 ,而By Angle阈值设置为 ,由于
选择会在这条棱边处停止,相邻侧面不会被选中。
如果将阈值提高到大于 ,选择才可能跨过该棱边,继续扩展到下一个侧面。
这个例子说明:两个面相邻,并不意味着它们一定会被By Angle选中。相邻关系只是进行角度判断的前提,真正决定能否继续扩展的是相邻面法向夹角与阈值之间的关系。
Abaqus中的By Angle本质上是一种沿拓扑邻接关系进行的区域扩展算法。它先寻找与当前面共享公共边的相邻面,再判断相邻面之间的法向夹角是否超过设定阈值。
对于圆柱这类局部光滑的曲面,相邻面之间的法向变化较小,选择可以不断传播;对于棱台这类存在明显棱边的模型,相邻面法向夹角可能超过阈值,选择便会在棱边处停止。
因此,By Angle并不是在识别“圆柱面”或“棱台面”,而是在不断判断:
下一个相邻面的法向变化,是否仍在设定的角度阈值以内?