去年在准备 Kangaroo 2 的教学过程中我们注意到 SimpleRemesh 组件存在的 BUG 导致软件很容易报错,因此我们给 Daniel Piker(Rhino 原厂开发工程师,也是Kangaroo 的作者)写邮件反馈该问题,春节刚过就收到了他的回复,Daniel 为了解决该问题整个重写了代码并做了大量优化,然后发布了一个新的工具——TriRemesh.新的工具功能更加强大且更容易使用,并且支持 CPU 多核,计算速度更快。Rhino 原厂为了让用户能够尽快使用上这个新工具,直接把它整合到了 Rhino 7.3 的正式版之中。
TriRemesh
新的组件将内置于 Rhino 7 SR3 版本的 Grasshopper 中,因此请联网更新您的 Rhino 7 到最新版。在 Grasshopper 组件栏 Mesh>Triangulation 中可以找到 TriRemesh 组件。该工具可将 Brep(多重曲面)或网格快速转化为高质量的各向同性三角形网格,重新生成的网格由具有相似边长、角度和面积的三角形组成,并且同时输出其对偶网格(Ngon)。
TriRemesh 工具可以自动检测并保留原始形状中尖锐的特征和边界,并生成均匀的网格结构。它从输入 Brep 的边缘推断出特征,以及网格面角度检测特征,因此可以很好地对齐原始形体的边缘,保留面与面之间的折痕特征。
另外在凹形区域中也不会形成条状的拉长单元结构,这通常是大多数 Mesh 转化工具的常见问题。
另外它也支持用户输入特定的曲线或点,让内部网格准确对齐这些内部线或特定的点。
使用 TriRemesh 工具生成的网格是经过结构优化的,通常会提供称为 “5-6-7” 的网格,其中每个内部顶点都被 5、6 或 7 个三角形包围。
TriRemesh 工具还可以同时输出对偶网格。该对偶网格主要由六边形以及一些五边形和七边形组成。并且同样进行了优化,以使这些 Ngon 也具有相似的面积和边长。
使用 TriRemesh 工具生成的对偶网格提取其边界线并配合我们之前介绍过的 Rhino 7 新增工具 MultiPipe ,可以将任意形体轻松转换为 3D 可打印的表面晶格结构,这是一种非常简便快速的方法。
网格结构的优化测试
TriRemesh 工具还提供了目标几何形状的输入功能,允许把初始形状转化的网格结构收缩并包裹到目标几何形状上。即便目标网格上有各种结构问题(表面上有孔洞或包含非流行边缘和重复面的不良网格),它都可以正常进行收缩包裹计算。在传统的网格修复方法中这些都是比较困难的部分,这或许会成为修复有问题网格的一种快速有效的方法。
Daniel 还做了一个收缩包裹的测试:取一个由许多零件和内部细节组成的复杂汽车的网格模型,包括引擎和座椅都在内部,通过非常简单的方法,即将边框 BOX 做为初始几何形状包裹到网格上,就可以形成一个封闭的实体网格。
提示:这是一个很极端的测试,因此您也会看到一些限制和不足,对于像这样的真正复杂的模型,当整体形状上存在非常精细的细节时,必须设置足够小的边缘长度值。这不可避免地会导致计算变慢,该案例计算花费了将近一分钟的时间。
此类问题的处理传统的方式是使用等值面的方法,但是将等值的阈值设置得足够高生成的网格同样会丢失掉例如很小的孔洞等细节。或许将这两种方法结合起来还有一些有趣的可能性,有待进一步的探索测试。
另外,当原始模型上具有开放结构时,如果是一些小孔,那么应该会被平滑覆盖掉,但是对于较大的开口,例如汽车上的车窗开口。被包裹的网格通常在孔洞部分具有较低的三角形质量。未来会对此进行改进,但是当前您可能要在第一次收缩包裹后再做一次 TriRemesh 来解决。
Rhino 原厂会在今年3月继续更新 Kangaroo 2 系统+兴趣课程,其中将会配合案例详细介绍 TriRemesh 使用方法,需要深入学习 Kangroo 的用户请点击这里…
本文完