用于测试AR应用程序的3D打印CAD模型

本文介绍了使用软件建模工具为3D打印准备复杂CAD模型的建议。

目录:

介绍

访问对象以成功测试其检测和跟踪以及在开发期间与内容交互至关重要。本文提供了一个案例研究和工作流程,用于准备用于3D打印的复杂模型,以更好地促进测试对象的分布。

增强现实(AR)应用程序通常会经历多次迭代,需要重新测试对象是否被可靠跟踪,或者对象是否有更改,例如新部件或数字内容是否需要更改。

AR应用程序的开发也可能有来自不同地点的多个利益相关者,他们都参与了AR体验的测试、设计和改进。然而,该对象可能不允许轻松分发和测试。

测试没有对象的模型目标

测试基于模型目标的应用程序有多种方法,包括但不推荐使用对象的图像。

其他方式可以是:

  • 使用物理产品。这提供了最真实的测试结果,但如果产品仍然是一个只有少数可用的原型,它是一个独一无二的大物体,产品位于偏远地区,产品价格等,则可能会变得困难。
  • 使用产品的微型或玩具模型作为缩小模型目标。然而,这些产品可能与实际对象不太相似。
  • 对产品的数字版本使用地平面跟踪。这对于测试用户交互很有用,但您无法看到应用程序在设置中与真实对象的行为。
  • 使用会话录制来自Vuforia Creator应用程序创建对象和预期用户移动的视频,可以在Unity Editor或Vuforia Studio中播放。这提供了一种在开发过程中快速迭代的简单方法,并且很容易共享会话记录。然而,视频也有过时的风险,需要重新访问才能重新捕获对象。会话录制也会阻止新启动的测试,这意味着序列总是以相同的方式开始。

最后一种可能性是3D打印1:1或按比例缩小的产品版本。这种方法允许您在发生更改时重新打印,并且可以在设备和对象上测试体验。主要挑战在于成功打印复杂的3D或CAD模型。

准备

在开始准备CAD模型之前,请考虑模型的可打印性、要使用的软件工具以及它们支持的文件格式。

正确的模型

首先,考虑您的CAD模型。如果它的形状相对简单,壁厚,适合打印机底座,没有运动部件,也没有内部部件,那么它可能已经准备好打印了。

可打印模型的特点是壁厚、悬挑有限(需要打印支架的部件),并且具有流形几何结构的防水性。

无法直接打印的复杂模型的特点是具有薄壁的大型对象(缩小后变得太薄)、复杂的内部、纹理表面和可移动的机构。

例如,

  • 有时,大型产品的一部分是由1mm厚的金属板制成的。当缩小打印比例时,1:10比例模型中的金属厚度只有0.1 mm,对于大多数3D打印机来说,这种金属太薄且易碎。
  • 模型可能具有复杂的内部,在3D程序中很难手动删除。
  • 例如,具有无限薄组件的模型,因为它们被建模为非均匀有理B样条线(NURBS)曲面,并且从未加厚/固化,所以也需要打印修改。
  • 由网格缩减管道生成的非流形或退化网格模型。可能存在相互相交的面、网格中阻止封闭体积的开放边以及连接到两个以上面的边等。这些情况几乎总是会给切片器软件带来问题,从而为3D打印机生成文件。

工具

在本文中,我们提供了一个使用各种3D软件工具的工作流,尽管并非所有这些工具都是必需的,并且您可能对准备CAD模型的软件有其他偏好。

此工作流所需的工具是MeshLab。

  1. 从下载并安装适用于您的操作系统的2023.12.dMeshLab GitHub发布页面.

本文中使用的其他可选软件工具:

文件格式

考虑您将使用哪些文件格式,以及您的CAD模型是否已经是切片器软件(用于准备和配置3D打印文件的工具)支持的文件类型。

还要考虑到一些文件类型保留了比例、纹理、颜色和模型材质,而三维打印并不需要所有这些。

案例研究–CAD模型拖拉机

在本文的这一部分中,我们介绍了一个工作流,以简化和准备一个复杂的CAD模型,用于缩小版本的3D打印。我们的用例只跟踪对象的整体。

复杂性

让我们下载一个GrabCAD的拖拉机型号并将其加载到OnShape和Ultimaker Cura切片器软件中进行检查。

检查OnShape中的CAD模型,我们可以看到底盘系统的细节比我们的应用程序所需的更多,这只涉及外观视图。不必要的细节增加了数据处理时间、打印时间和材料成本。

将未编辑的模型作为OBJ文件导入Ultimaker Cura 5软件,说明这是一个不可打印的模型。左侧图像高亮显示其有问题的几何体。右图是切片后的图像,其中红色表示壳线(外壁),但发动机罩缺少整个零件。打印结果可能有问题。

更改文件格式

第一个任务是获取一个工作文件来进行编辑。这个CAD模型是一个STEP文件,我们需要将其导出为OBJ。其他流行的3D打印格式包括STL、PLY、3MF、FBX等。如果您的模型已经采用了上述格式之一,则可以跳过以下步骤。

  1. 将ASSEMBLY_TRACTOR_01.STEP文件上传到OnShape或其他CAD建模或检查软件中。
    1. 在OnShape中,单击导入文件在中创建下拉菜单并导入CAD模型。
    2. 选择导入到单个文档使用导入外观其他设置是可选的。
    3. 打开文件并打开选项卡管理器从左下角开始。
    4. 右键单击部件并选择导出。在我们的情况下,将格式输入为OBJ,并将分辨率设置为粗略。生成的模型有1.6M个顶点和3.3M个面。

请参见OnShape的技术文档有关使用产品开发平台的更多信息。

编辑掉不必要的零件

让我们将下载的OBJ模型文件导入Blender,以删除与模型目标跟踪和AR应用程序无关的详细信息。

  1. 我们在底盘上添加了一个长方体形状,以掩盖不必要的细节。这也会删除在3D-printed对象上删除支持辅助对象时可能断开的薄弱部分。

需要移除的易碎部件或复杂细节在很大程度上取决于单个模型。如果需要这样的零件,可以增加体积来加强这些零件,以防止它们脱离3D打印。

考虑关闭较小的开口和孔。这些可能会影响MeshLab中生成简化网格的以下工作。只需在现有网格、孔和零件上添加一个体积;此时无需进行高级雕刻或保持网格流形。

MeshLab中的模型简化

在本节中,我们将通过在MeshLab中使用Alpha Wrap和Taubin平滑来简化CAD模型,为3D打印准备模型。Alpha Wrap过滤器读取选定的输入网格,并创建一个具有2流形和水密三角曲面的新网格;假设一个3D球在外表面上滚动以生成单个网格。Alpha Wrap设置中的可配置偏移可确保处理甚至是“开放”曲面(其边仅连接到单个面)。

  1. 打开MeshLab并导入编辑的OBJ文件。
  2. 在下拉菜单中过滤器,选择重新整理、简化和重建->Alpha Wrap.
  3. 输入阿尔法抵消参数。较小的阿尔法值时,“球”越小,计算时间越长。默认值0.02(2%)可快速生成结果。通常,这个结果会太粗糙,但它是重新网格的第一印象。在我们的案例中阿尔法值设置为0.003。这个抵消值保持不变。

    注:尝试不同的Alpha值,直到您确信网格是可打印的,并且模型目标跟踪的真实对象具有足够的近似值。
  4. 可选。根据您的模型,应用平滑过滤器以删除Alpha Wrap过滤器引入的镶嵌面。选择过滤器->平滑->Taubin平滑.
  5. 根据型号,选择过滤器->简化:二次边折叠抽取过滤以删除低曲率区域中的冗余三角形。您通常会更改的主要参数是目标面数减少百分比(0..1).

    注:如果您想在导出的MeshLab模型上使用雕刻工具来填充一些过于脆弱的区域,最好省略“简化:四边形折叠抽取”过滤器步骤。因为这样的雕刻工具更适用于密度更大的网格,其中面具有大约相等长度的边。

  6. 选择文件->导出网格以保存新网格。选择与导入格式相同的格式。

打印您的模型

通过一个简化且严密的3D模型,我们可以打开UltiMaker Cura软件来检查和3D打印模型。可以使用任何用于3D打印的切片器软件,并应根据单位、3D打印机型号、喷嘴和材料进行设置。

  1. 打开UltiMaker Cura并导入网格。
  2. 根据需要缩放模型并确定其方向。记下打印尺寸。这些尺寸将用于保持刻度。
  3. 启用支持右上角下拉菜单中的助手。
    提示:理想的支架数量为0。如果支架被墙包围,那么在狭窄区域拆除支架可能会很困难。
  4. 切片模型。完成后,打开预览视图。
  5. 在图层中预览,我们可以看到浅蓝色的辅助支架,在右侧是内部的横截面,打印为实体。
  6. 继续在3D打印机上三维打印模型。

测试3D打印

之前创建模型目标,考虑您选择的CAD模型和缩放方法。

我们可以使用原始CAD模型生成模型目标。它具有最详细、最清晰的边缘,可能还有纹理贴图,这对于最佳检测和跟踪都很重要。它的比例也正确,这意味着将内容创作到Unity中的模型目标也是按比例的。当我们想要在一个更小的3D打印模型上跟踪和渲染数字内容时,就会出现问题。我们必须缩小模型目标及其数字内容的规模,然后在开发过程中再次缩小。请参阅管理模型目标缩放的最佳实践以获取更深入的指南。

此外,对于原始CAD模型,您可能会遇到模型目标生成器(MTG)要求您执行以下操作由于模型的复杂性,简化了模型,这可能不是所有用例的选项。复杂模型中的模型目标也具有较长的加载时间。相反,我们可以使用从MeshLab导出的简化CAD模型。然而,该模型具有较软的边缘和较少的细节,这可能会使检测和跟踪真实对象变得复杂。而且它也不能解决来回缩放的问题。

注意尺度

处理缩放的代表性物理对象有两种主要方法:可以使用1:1的CAD模型生成模型目标,然后使用比例因子按比例缩小放大部分和模型目标。或者,您可以使用3D打印的匹配尺寸制作缩小的CAD模型,以生成模型目标,然后使用虚拟场景比例因子.

第一种方法对于HoloLens和Magic Leap设备是必要的,因为这些设备不支持Vuforia场景比例因子设置。第二种方法仅缩放“模型目标”,如果已将蒙皮动画和粒子系统作为AR内容的一部分,建议使用此方法。

在大多数情况下,我们建议使用虚拟场景比例因子,因为您可以根据对象的实际比例开发和设计内容。缺点是,它可能需要基于原始CAD模型和1:1 CAD模型生成新的模型目标以进行最终部署

无论哪种情况,我们都必须计算3D打印和真实对象之间的比例因子。

物理对象拖拉机的长度=4.2902m

通过切片器软件测量的3D打印模型的长度_print=0.150m

这意味着比例因子为length_print/length=0.150/4.2902=0.0349或1:28.6013。3D绘制的拖拉机比真实物体小28倍。

如果使用按比例缩放的模型目标,请将其与内容一起缩小到*0.0349。

如果使用缩小的模型目标,请创建内容以进行缩放,然后使用虚拟场景比例因子将模型目标放大到28.6013。如果这不是一个选项,请设计内容以适合按比例缩小的模型目标,然后再进行缩放以匹配实际大小和比例。

在您的设备上进行测试

在设备上构建并运行应用程序,或在中测试模型目标Vuforia Creator应用程序.

提高3D打印效果

如果某些小细节无法通过支持-删除过程,则可以添加进一步的微调以保留这些更精细的细节:

  • 使用一些其他对象“堆积”这些细节的几何体。
  • UltiMaker Cura允许您添加支撑块,以防止在难以到达的区域创建支撑结构。
  • 您还可以通过在CAD软件或类似Blender的工具中加载Alpha Wrapped网格,根据需要将长方体、球体或其他几何体添加到模型中。
  • 连接到三个或更多面的边会导致Alpha包裹过滤器出现问题。这些应该很少,但如果遇到这种情况,最简单的解决方案是将模型加载到Blender中,转到“编辑”模式,然后使用Alt+M选择“分割”,然后选择“按边面”删除所有边连接。然后,每个面都有自己的顶点副本,这就解决了问题。
  • 以较大尺寸打印模型会为较弱的部分添加更多材质,从而增加了移除支撑辅助对象结构的可访问性。

在SLS(选择性激光烧结)打印机上打印模型,而不是在FDM(或SLA)上打印,因此首先不需要任何支持。