将线性运动G代码形式化,用于制造工具的不变性检测和差分测试

《Proceedings of the ACM on Programming Languages》:Formalizing Linear Motion G-Code for Invariant Checking and Differential Testing of Fabrication Tools

【字体: 时间:2025年11月07日 来源:Proceedings of the ACM on Programming Languages

编辑推荐:

  3D打印流程类比编译器,提出将G代码映射为立方体集合并转换为近似点云的新算法,用于检测切片错误、比较不同切片器效果及评估网格修复工具,在58个真实模型测试中验证有效。

  

摘要

3D打印的计算制造流程类似于编译器:用户使用计算机辅助设计(CAD)工具设计模型,这些模型会被转换为多边形网格,最终由3D切片软件编译成机器代码。对于传统的编译器和编程语言,已经建立了检查程序不变性的技术。同样,差分测试等方法也常用于发现编译器本身的错误,从而提高其可靠性。
制造流程也可以从类似的技术中受益,但传统方法并不直接适用于该领域使用的表示形式。与传统程序不同,3D模型既以几何对象(如CAD模型或多边形网格)的形式存在,也以最终在硬件上运行的机器代码的形式存在。与传统编译过程一样,机器代码受到许多因素的影响,例如模型本身、所使用的切片软件以及众多用户可配置的参数,这些参数控制着切片过程。
在这项工作中,我们提出了一种新的算法,用于将G代码(许多制造流程中常用的语言)转换为一组长方体,并为这些长方体定义一种近似点云表示形式,以便高效地进行操作。我们的算法开辟了新的应用场景:我们展示了三个用例,说明了它如何实现(1)通过不变性检查定位CAD模型中的错误;(2)在不同切片软件之间进行定量比较;(3)评估网格修复工具的有效性。我们在一个名为GlitchFinder的工具中实现了该算法的原型,并在58个真实的CAD模型上对其进行了测试。测试结果表明,GlitchFinder在识别由微小特征引起的切片问题方面特别有效,能够突出显示常用切片软件(如Cura和PrusaSlicer)对同一模型进行切片时的差异,并能发现网格修复工具(如MeshLab和Meshmixer)在修复过程中引入新错误的情况。
相关新闻
生物通微信公众号
微信
新浪微博
  • 搜索
  • 国际
  • 国内
  • 人物
  • 产业
  • 热点
  • 科普
  • 急聘职位
  • 高薪职位

知名企业招聘

热点排行

    今日动态 | 人才市场 | 新技术专栏 | 中国科学人 | 云展台 | BioHot | 云讲堂直播 | 会展中心 | 特价专栏 | 技术快讯 | 免费试用

    版权所有 生物通

    Copyright© eBiotrade.com, All Rights Reserved

    联系信箱:

    粤ICP备09063491号