InverseCSG: Automatic Conversion of 3D Models to CSG Trees

图1.我们提供了一个以网格文件(左)为输入并输出其构造实体几何(CSG)表示形式的系统。 这三个关键思想是:a)使用精心设计的点样本来引导纯离散搜索问题(点,左中),b)分治算法来分割问题以确保成功(颜色,左中),以及 c)使用程序综合技术来解决每个段中的硬离散搜索问题。 输出的CSG结构(右中)可以正确推断出50多个实体图元和18个布尔运算符。 提取一部分解决方案(红色框)以进行演示(右)。 

摘要

尽管计算机辅助设计是许多现代生产流水线的主要部分,但通常生成的设计文件却描述了原始几何形状。在这种表示方式中丢失的是生成这些设计的过程。在本文中,我们提出了一种以构造实体几何(CSG)语言对工程3D模型进行逆向工程的方法。观察到CSG是形式语法,我们将此逆CSG问题公式化为程序综合问题。我们的解决方案是一种将几何处理与最新程序合成技术结合在一起的算法。在此方案中,使用几何处理将CSG树的混合离散域和连续域转换为现代程序合成器擅长的纯离散域。我们在几个不同的示例上演示了我们算法的效率和可扩展性,其中包括超过100个原始部分的示例。我们证明了我们的算法能够找到接近基本事实的简单程序,并证明了该方法在网格重新编辑中的适用性。最后,我们将该方法与现有技术进行了比较。我们证明,在产生的CSG紧凑性和运行时方面,我们的算法在以前的方法中占主导地位,并且可以处理比任何以前的方法复杂得多的输入网格。

1.介绍

在过去的几十年中,计算机辅助设计(CAD)软件已成为许多现代大规模生产流水线设计的关键部分。 CAD工具在设计上是参数化的,允许设计人员创建易于修改的形状。 这使工程师可以遍历设计参数以提高对象的性能或适应现有设计,以便可以在新方案中重用它们。 因此,对于将参数化CAD表示法用于面向制造的设计探索和优化算法,人们越来越感兴趣[Schulz et al. 2017; Shugrina et al. 2015]。

不幸的是,发布的模型很少能使用CAD程序。建设性的参数表示是CAD系统的内部功能,通常仅允许将设计导出为3D网格或边界表示(B-Rep)。 结果,存在大量重要的传统模型,这些模型自创建以来的几年中就失去了原始的过程定义(procedural definitions )。 此外,许多工艺品根本不是在CAD系统中最初设计的,并且更多产品在车间进行更改(undergo shop floor changes),使原始CAD文件不准确。 对于此类模型,唯一可用的形状表示形式是制造设计的3D扫描,由于扫描过程中的瑕疵,该3D扫描必然会包含噪声。

从3D形状逆向工程CAD模型的新技术,诸如蒙特卡洛采样方法和遗传算法等吸引了许多研究人员的兴趣。 任何技术的核心都是表达力和简洁的表现形式。 参数表示法的自然选择是构造实体几何(CSG),因为它是现代CAD系统中众所周知的,广为接受的主要产品,并且其表示形式紧凑。 CSG将几何形状编码为树,这些树是通过将布尔运算符递归地应用于原始形状而构建的[Requicha and Rossignac 1992]。 在过去的20年中,将3D模型自动转换为CSG树的理论得到了广泛的研究。

但是,当前的领先技术无法很好地扩展对于大问题[Fayolle and Pasko 2016]或无法产生紧凑表示([Buchele and Crawford 2004]。 此外,与可能来自低分辨率网格或嘈杂的3D扫描的3D模型相反,这些方法假定输入形状是精确的B-Rep。 在本文中,我们基于CSG只是计算机程序的一个类,提出了一种可逆的CAD模型的新的可扩展方法。 这意味着生成CSG树的过程可被视为程序综合问题。

程序合成是一个过程,通过该过程可以从计算机预期行为的描述中生成计算机程序。这些技术试图生成不仅满足其规范的程序,而且尽可能地做到这一点。事实证明,程序综合在许多问题领域均有效,包括综合数据库的实体匹配规则[Singh等。 2017],推导excel公式[Gulwani等。 2012],以及生物学实验设计[Koksal等。 2013]。我们的工作基于基于约束的综合(constraint-based synthesis,),这是综合算法的一个特殊的类,其工作方式是象征性地表示候选程序的空间,并将在该空间中寻找正确程序固定为约束满足问题[Solar-Lezama 2008]。通过利用现代约束求解器的功能,基于约束的方法可以扩展到较大的搜索空间,并且可以通过简单地将其包含在搜索空间中而轻松扩展为覆盖不同的形状基元集。这与单纯的演绎方法相反,后者从幼稚的有效解决方案开始,并应用演绎​​规则来提高程序的质量(通常以程序的长度来衡量)。在没有为每个原语(primitive)量身定制的规则的帮助下,这些方法很难找到最佳解决方案。

应用基于约束的程序综合技术的来完成逆向工程CAD模型的任务有三个主要挑战。首先,最具可扩展性的基于约束的综合系统通过将问题简化为布尔可满足性(SAT)(纯离散问题)来工作。这非常适合发现CSG模型的布尔结构,但是CAD模型还涉及连续参数(例如,原始形状的位置和范围)。其次,要合成的程序的正确性自然地定义为几何约束,因为由合成的CSG程序描述的3D形状必须在空间上占据与输入网格内部包含的体积相同的体积。但是,此要求太复杂而不能用作程序合成的基础,因此我们需要将此高级要求转换为对程序行为的一组约束,合成器可以使用这些约束来有效地修剪可能的程序的空间。第三,嘈杂的输入(例如,从扫描生成的网格)会在规范方面(specification)与我们限制的原始形状产生不一致,这可能导致无法满足的矛盾约束。

在本文中,我们针对这些挑战提供了完整的以及可扩展的流水线(pipeline),用于从可以在各个级别进行近似的噪声数据生成紧凑的CSG树。通过将搜索分为两个步骤,我们解决了混合连续和离散搜索问题以及噪声问题:首先,我们使用基于RANSAC和图割的健壮原始检测方法来推断原始形状的位置和方向,它解决了有噪声输入的情况下的连续搜索问题。固定基元(primitives)的位置和方向后,剩下的搜索问题将完全是离散的,我们可以使用Sketch(基于SAT解决方案的最先进的程序合成工具)解决此问题[Solar-Lezama 2008]。为了产生适合程序综合的约束,我们利用规范的相交项[Shapiro and Vossler 1991]。我们使用由50个模型组成的CAD库进行了广泛的实验。数据集,CAD文件和源代码可随本文公开获得。

在这项工作中,我们贡献了以下内容:

  • 一种将逆CSG问题的连续方面与组合方面相分离的公式,使我们能够利用成熟的程序综合技术。
  • 实施完整的流水线(pipeline),该流水线以不同的近似级别从嘈杂的输入生成CSG树。
  • 经验证据表明,我们的方法可以为几种复杂的模型合成CSG程序,证明了我们算法的效率,可扩展性和鲁棒性,以及其在网格重新编辑中的直接应用。

2.相关工作

我们的工作借鉴了先前有关参数化CAD建模,逆过程建模,逆向工程CAD,程序合成和图元(primitive)检测的工作思路。

使用参数化CAD建模。参数化CAD系统允许设计人员将几何定义为一系列依赖于一组参数值的程序的执行[Farin et al. 2002]。该参数表示法定义并限制了修改形状的方式,从而使其可以保留结构和其他有意义的特征,例如制造考虑因素。 Koyama et al. [2015]使用CAD参数化可制造​​连接器的空间。同样,Shugrina等。 [2015]和Schulz等。 [2017]使用参数化CAD模型进行面向制造的设计优化。这些最新的研究认为,直接使用CAD模型而不是对输入3D网格进行自动参数化的算法具有优势[Bokeloh等,2003年。 2012; Jacobson等。 2011;郑等。 2011]包括:(1)更大和更有意义的几何变化(相对于某些尺寸),以及(2)自动显示关系约束,这些关系约束可用于理解功能并支持多种制造方法。但是,在这些工作中,将参数模型作为输入,并假定由专家工程师精心指定。

最近有一些提取可编辑3D的工作结构或显示不包含CAD结构的输入的约束。 Chen等。 [2013]允许从图像进行几何重新编辑。 同样,徐等。 [2016]提出了一种交互式方法,用于从多视图图像中提取机制的功能信息。 但是,在这

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值