变形域和控制柄方法
使用变形域和控制柄方法进行网格变形时,网格模型被分割成若干个变形子域,位于变形域上的控制柄常常用来控制变形域形状的变化。当控制柄移动时,变形域的形状随之变化,进而影响变形域内部节点位置的分布。变形过程中,网格以一种合乎逻辑的方式变化,即靠近移动控制柄的节点位置变化量大,靠近静止控制柄的节点位置变化量小。处在移动和静止的控制柄之间的网格通过拉伸和压缩过程来向着预期的形状变化。
每个节点相对控制柄的运动量是通过内部计算的影响参数来控制的。有时,计算影响系数需要花费很长时间,但这些影响系数一旦计算完毕,它们会存储起来并立即作用到网格模型上。因此,当控制柄和变形域设置好后,HyperMorph 会花费一定的时间(与变形域的尺寸有关)计算这些控制柄的影响系数。然后在移动控制柄变形网格时就不再需要进行计算,因而实际的变形过程很快就会实现。这种方法的好处就是可以交互式的实现网格变形,即使对大规模的模型,依然有效。
当处理较大规模的变形域时,计算影响因子的过程是非常耗费机时的。对于包含超过 50000 个单元(当然,这个数目可以更改)的变形域来说,HyperMorph 将调用大变形域求解器。大变形域求解器在处理大规模变形域时速度较快,但美中不足的是需要用户在每次网格变形操作时都要启动,因而减缓了网格变形过程。然而,计算大规模变形域影响因子的过程是非常缓慢而且极占内存的,所以在此情况下,大变形域求解器是非常适用的。
通常下,变形域和控制柄分为两组:整体变形域和局部变形域。每个整体变形域与若干个整体控制柄相关联。整体控制柄只会影响到与其相关联的整体变形域内部的节点。整体变形域和整体控制柄在处理大规模网格变形问题时优势较为明显。
局部变形域可以分为五类:一维变形域(1D domains)、二维变形域(2D domains)、三维变形域(3D domains)、边界变形域(edge domains)及通用变形域(general domains)。每个局部变形域与若干个局部控制柄相关联。局部控制柄采用小尺度、参数化的形式实现网格变形。一个网格模型中可以同时包含整体变形域和局部变形域,因而可以实现不同尺度的网格变形操作。一般来说,同时创建两种类型的变形域和控制柄是不必要的。图 7-3 给出了各类变形域的定义方式及在 HyperMesh 前处理界面下的图标。
图 7-3 变形域图标
变形体方法
通过 HyperMorph 的变形体功能,用户可以将整个有限元模型封装至一个拥有八个顶点的六面体空间中,并对其进行各类网格变形操作。完成了封装后,用户可以针对该空间的各个顶点,边和表面进行变形操作,例如移动顶点,将直线边改为曲线边,或将平面改为曲面的方式,对变形域的形态进行改变,进而间接影响到模型的网格形态。多个相邻的 Morph Volume 还可以被连接到一起,实现整体协调变形。通过对被安置在变形域各个顶点的控制柄的位置改变,从而实现功能强大的网格变形工作。
通过体网格变形技术进行网格变形时,仅会影响到位于该变形域内的所有节点。相应的,针对节点与变形域间的关系,用户既可以在节点创建时,即选择其所从属的变形域,亦可在后续工作的任何阶段,将新的节点添加到已有的变形域中。