模拟不规则形状:如何导入曲线数据并放样为实体

Hanna Gothäll 2017年 9月 20日

不规则形状可以采用多种不同的文件格式进行导入。例如,我们在之前的一篇博客中讨论过,如何将 STL 文件和 NASTRAN® 网格文件导入到 COMSOL Multiphysics® 软件中。这些文件格式常用于处理生物扫描数据。在此博客系列中,我们将介绍多种在 COMSOL Multiphysics 中处理不规则形状的方法。

不规则形状案例:人体头部

在处理扫描数据时,一种可用的格式是 MRI 或 CT 扫描生成的切片图像中坐标数据的文本文件。现在,让我们来看看这样一个案例:如何利用由扫描人体头部不同平面得到的大量文件或横截面坐标来生成几何。每个坐标文件均描述了特定平面上头部的外轮廓曲线。

此流程可简要概括为以下步骤:

  • 创建每个文本文件的曲线对象
  • 分割曲线的边,保证点在放样方向上对齐
  • 将曲线放样成实体
  • 通过隐藏不必要的边,生成一致的形状

下面,我们将详细说明每一个步骤。

导入曲线

为了能够将文本文件导入插值曲线 特征中,需要将坐标整理成逐节 格式。该格式是 COMSOL Multiphysics 的一种本地格式,将文本文件整理成了三节:分别对应坐标、单元连接关系和数据栏。在本案例中,只需要前两节,这是因为使用上述格式创建几何体时,可以省略数据栏。下方是逐节 格式文件的一个例子:

     %Coordinates
     One to three columns containing x, y (optional), and 
     z (optional)
     %Elements
     Triangulation where each row contains the row indices of the
     points in the Coordinates section that make up one element
     (triangular in 2D, tetrahedral in 3D)
     %Data (funname)
     Column of data values for each point

在本案例中,我们共有 17 个包含三维对象坐标数据的文本文件。每个文本文件都添加了一个插值曲线 特征,共计生成了 17 个曲线对象。闭合曲线 设置的作用是确保创建的曲线对象是闭合的,且一阶和二阶导数处处连续。在 COMSOL Multiphysics 中,对闭合曲线进行放样可以生成实体对象,对开放曲线进行放样可以生成曲面。将相对容差 增加到 0.001 或 0.01,可以生成更加平滑的曲线。通过使用默认公差(即 0),可使曲线的形状更加凹凸不平。在此例中,头部的顶端表示为一个点。

Interpolation Curve Settings in COMSOL Multiphysics and human head model 模拟不规则形状:如何导入曲线数据并放样为实体
插值曲线特征的“设置”窗口(左)和表示头部外壳的全部曲线(右)。相对容差增加到 0.001 或 0.01 后,曲线变得更加平滑。闭合曲线设置保证了曲线变成闭合状态,并且每一处都有连续的一阶和二阶导数。

放样实体的注意事项

现在,我们已经创建了用于表示头部各个横截面轮廓的曲线对象,下一步是使用放样 操作创建实体形状。放样 操作是“设计模块”中的几何建模工具之一,此模块的详细信息可以参考这篇入门介绍博客。在建立放样 操作之前,我们要先确保曲线对象适合作为放样的轮廓使用。为了将曲线或曲面放样为实体,不同的轮廓必须拥有相同数量的边和点。当然,第一个和最后一个对象(分别称为开始轮廓和结束轮廓)是个例外,它们可以是点,比如此例中头部顶端的点。

闭合插值曲线有两个顶点,但是它们的位置是不可选择的。所以上述标准(即中间对象拥有相同数量的边和点)已经满足,因为所有创建的曲线都有两条边。不过,点在轮廓对象中的位置同样很重要。当放样沿曲线向前推进时,它会将放样方向上的所有点和边连接起来。如果这些点没有沿着一条真正的直线排列,那么生成的曲面就可能会扭曲。所以,我们经常需要进一步分割边,以保证精确描述所有的曲面。要实现这一点,我们可以采取两个不同的步骤:基于数据创建曲线,然后将曲线放样成一个对象。

分割曲线的边缘

如何分割边,以及使用哪一个特征才能达到目的,这并不是一门严密的科学,只有经历反复的试验和外观检查,才能决定最佳配置。在这里,我们选择使用分割对象分割边 特征。分割对象 操作的优点是,它支持使用选定平面,对交点位置上的多个曲线对象进行分割。因为一些插值曲线已经包含了在此头部案例正面和背面上完美对齐的点,所以我们在 y = 0 处添加工作平面,然后沿着相同的虚线创建更多的点。

Partitioned curve objects in COMSOL simulation 模拟不规则形状:如何导入曲线数据并放样为实体
y = 0 处使用 工作平面分割一部分曲线。分割对象特征的设置(左)。借助工作平面,高亮为蓝色的曲线对象(右)在两处位置上进行了分割,工作平面由带矩形格线的灰色表示。

分割边 特征会根据指定的相对弧长或者通过投影一个或多个顶点来分割选定的边。在放样曲线时,我们希望顶点整齐地排列,因此投影顶点是个不错的选择。但是,对于某些边,最好指定一个相对弧长,以便更加准确地控制顶点的创建位置。

Human head model vertex projection using COMSOL Multiphysics Partition Edges feature 模拟不规则形状:如何导入曲线数据并放样为实体
分割边特征的“设置”窗口,图片显示了 顶点投影(左)和 弧长(中)的设定类型,以及顶点投影选中的边(右)。

为验证几何对象是否拥有相同数量的边和点,我们单击“图形”窗口上方的选择对象 按钮,在“图形窗口”内选中一个曲线对象,然后单击几何网格 选项卡中的测量 按钮。这个测量的输出会被写入消息 日志。

放样实体

既然点已经大致对齐,下一步便是创建实体。放样 特征包含许多选项,这里我们只需使用最简单的步骤:在轮廓对象 列表中添加全部曲线对象和头部顶端的点。开始和结束轮廓自动由放样 操作确定。在下图左侧,有许多收缩的设置栏(蓝框内)可以对放样进行微调;例如,指定放样方向。本例中未使用收缩的设置栏。

Performing a Loft operation for a human head model in COMSOL Software 模拟不规则形状:如何导入曲线数据并放样为实体
放样操作的“设置”窗口(左),它显示了输入的 轮廓对象,这是本例唯一使用的输入。右侧图像显示了最终得到的实体头部。

分割曲面

通过放样连续的闭合轮廓曲线而形成的表面或实体对象至少拥有两条穿过轮廓曲线顶点的接缝,从而形成了两个面分割。放样操作可能会引入更多的接缝,这取决于不同曲线的顶点对齐情况。如果轮廓曲线中存在不连续的切线,就会引入更多接缝去穿过这些点。当使用放样 操作中的默认设置面分割:最小(上图)时,不会引入额外的接缝,就像本例中情况一样。

如果我们需要进一步分割放样曲面,例如为了方便指派边界条件,可以使用分割选项:栅格。第一个选项沿轮廓曲线的每个顶点来分割曲面,而第二个还会添加轮廓曲线。另一种可行的方法是利用几何 功能区中不同的分割 操作。另一方面,如果我们希望获得更加光滑整洁的外表,可以使用虚拟操作 来创建复合面。忽略边 是可实现该目的的特征之一,不过形成复合面 也能达到相同的最终结果。

Final human head geometry from modeling irregular shapes1 模拟不规则形状:如何导入曲线数据并放样为实体
通过将上一个图像中显示的边添加到 忽略边操作(左),最终的几何体获得了美观平滑的外表(右)。

学习更多创建不规则形状的方法

这篇博文讨论了基于坐标数据创建曲线,然后将曲线放样成实体对象的方法。本系列的后续博客将讨论其他可能使用的文件格式,以及处理 COMSOL Multiphysics 中不规则形状的方法。

下载创建此案例的教程文件:

NASTRAN 是 NASA 的注册商标。


博客分类

加载评论……