三坐标程序编写系统及方法

文档序号:9844182阅读:2057来源:国知局
三坐标程序编写系统及方法
【技术领域】
[0001] 本发明涉及一种编程系统及方法,特别是关于一种三坐标程序编写系统及方法。
【背景技术】
[0002] 三次元脱机编程系统是通过导入待检测产品三维(three-dimensional, 3D)图档 (例如计算机辅助设计(Computer Aided Design, CAD)图档),根据待检测尺寸图纸在计算 机上通过鼠标和键盘进行编程,对于没有3D图档的待测产品,或者3D图档与实际生产出来 的产品差异太大等情况,编程比较复杂且在测量时由于所述的差异而容易造成安全事故。

【发明内容】

[0003] 鉴于以上内容,有必要提供一种三坐标程序编写系统,能够快速且安全可靠地编 写待测产品的三坐标程序。
[0004] 一种三坐标程序编写系统,运行于计算机中,该计算机与一三维扫描仪通讯连接, 该系统包括:接收模块,用于从三维扫描仪接收对一待测产品扫描的三维点云数据;网格 化模块,用于对所接收的待测产品的三维点云数据进行三角网格化处理,以得到所述待测 产品的三维模型;计算模块,用于在所得到的待测产品的三维模型上选取一量测点,计算该 量测点在三维模型上的坐标;创建模块,用于根据上述计算的量测点在三维模型上的坐标 以及所选择的元素类型,创建相关的量测元素;控制模块,用于导入一预设的虚拟测针显示 于计算机的显示装置上,并旋转该虚拟测针的角度与所创建的量测元素的法向一致;所述 控制模块,还用于控制所述虚拟测针从当前坐标向所述量测元素运动;及输出模块,用于输 出所述量测元素的三坐标程序,所述三坐标程序包括所述量测元素的信息以及虚拟测针运 动的路径。
[0005] 此外,还有必要提供一种可快速对三坐标程序编写方法,能够快速且安全可靠地 编写待测产品的三坐标程序。
[0006] -种三坐标程序编写方法,运行于计算机中,该计算机与一三维扫描仪通讯连接, 该方法包括步骤:接收步骤:从三维扫描仪接收对一待测产品扫描的三维点云数据;网格 化步骤:对所接收的待测产品的三维点云数据进行三角网格化处理,以得到所述待测产品 的三维模型;计算步骤:在所得到的待测产品的三维模型上选取一量测点,计算该量测点 在三维模型上的坐标;创建步骤:根据上述计算的量测点在三维模型上的坐标以及所选择 的元素类型,创建相关的量测元素;控制步骤一:导入一预设的虚拟测针显示于计算机的 显示装置上,并旋转该虚拟测针的角度与所创建的量测元素的法向一致;控制步骤二:控 制所述虚拟测针从当前坐标向所述量测元素运动;及输出步骤:输出所述量测元素的三坐 标程序,所述三坐标程序包括所述量测元素的信息以及虚拟测针运动的路径。
[0007] 本发明所述的三坐标程序编写系统及方法,利用待测产品的三维点云数据构建待 测产品的三维模型,通过计算出三维模型的三轴安全面,并对所选的量测点创建对应的测 量元素,控制三维量测机台的虚拟测针基于所计算的三轴安全面向所述测量元素运动以进 行测量,快速地正确地输出测量元素的三坐标程序,且避免了碰撞的发生。
【附图说明】
[0008] 图1为本发明三坐标程序编写系统较佳实施例的系统架构图。
[0009] 图2为本发明三坐标程序编写系统较佳实施例的功能模块图。
[0010] 图3为本发明三坐标程序编写方法较佳实施例的流程图。
[0011] 主要元件符号说明
如下【具体实施方式】将结合上述附图进一步说明本发明。
【具体实施方式】
[0012] 参阅图1所示,是本发明三坐标程序编写系统10 (以下简称编写系统10)较佳实 施例的系统架构图。该三坐标程序编写系统10安装于一台计算机1中。所述计算机1包 括处理器11、存储装置12以及显示装置13。所述处理器11用于执行编写系统10中的各 功能模块。所述的存储装置12用于存储计算机1的各类数据,例如待测工件的点云数据。 所述的显示装置13用于显示计算机1的可视化数据。
[0013] 所述计算机1与一台三维扫描仪2通讯连接。所述三维扫描仪2至少包括一检测 模块20、待测产品22,以及装夹治具24。所述三维扫描仪2利用检测模块20对放置于装夹 治具24上的待测产品22快速地进行三维扫描,并输出该待测产品22的三维点云数据至计 算机1。在本较佳实施例中,所述检测模块20可以是双目CO) (Charge-coupled Device, 电荷耦合元件)检测模块。
[0014] 参阅图2所示,是本发明三坐标程序编写系统较佳实施例的功能模块图。所述三 坐标程序编写系统10包括接收模块100、处理模块101、计算模块102、创建模块103、控制 模块104、及输出模块105。上述各功能模块ΚΚΓ105是完成特定功能的各个程序段,比软 件程序本身更适合于描述软件在计算机设备,如计算机1中的执行过程,因此本发明对软 件程序的描述都以模块描述。
[0015] 所述接收模块100用于从三维扫描仪2接收待测产品22的三维点云数据。
[0016] 所述网格化模块101用于对所接收的待测产品22的三维点云数据进行三角网格 化处理,并对网格化后的点云数据进行精简,以获得待测产品22的三维模型,并显示于显 示装置13上。所述三角网格化就是构造一系列的三角形,组成一个三角网格模型来逼近原 来的模型。每个三角形用其三个顶点坐标和一个法向量来描述。三角网格化常用的方法包 括迭代法、迪式(Delaunay)算法。所述对所网格化后的点云数据的精简包括曲率过滤、均 值过滤等。
[0017] 在本较佳实施例中,所述的网格化模块102采用点云网格化后的三角形外接圆内 没有点与曲面局部曲率一致的原则,并通过包围盒切割点云快速找临近点的方法,对三维 点云进行三角网格化。具体而言,所述三维点云中的任意三个点进行连线组成三角形,所组 成的三角形满足两个条件:条件一,该三角形的外接圆内不能包含其它点;条件二,该三角 形的向量与临近三角形的向量的夹角不能超过预设的曲率阀值(例如,90度)。组成三角形 的方式如下:取三维点云中任意一点为基准,找与该基准点距离最近的第二点,距离要小于 预设的距离阀值,之后第一点与第二点连成线,找连线临近的第三点,该三点连成的三角形 外接圆中不包含点云中的其它点(即除了组成三角形的三点之外的其它点)。当确定该三角 形后,计算该三角形的向量与所有该三角形相邻的三角形的向量的夹角,若所计算的夹角 中有一个夹角大于预设的曲率阀值(例如,90度),则该三角形不合格,舍弃该三角形,然后 重新寻找该三角形临近的第三点,以此为逻辑,直到找到合适的第三点所组成的三角形。由 于三维点云在进行三角网格化后有大量的三角形,为了简化计算,可以精简一些三角形,即 将一些三角形去除,以简化计算,提高运算效率。在本较佳实施例中,所采用的精简的原则 可以是,曲率大的三角形保留的多(例如,曲率为70度到90度的三角形,全部保留),曲率小 的三角形保留的少(例如,曲率为〇度到10度的三角形,随机选择保留百分之三十)。
[0018] 所述计算模块102用于根据上述得到的待测产品22的三维模型,计算得到该三维 模型的三轴安全面。在本较佳实施例中,所述计算模块102通过计算得到三维模型的所有 坐标值中X坐标的最大值与最小值,Y坐标的最大值和最小值,以及Z坐标的最大值和最小 值来计算得到所述三维模型的最大包围盒,并通过一个预设的阀值得到三维模型的三轴安 全面。其中,所述三轴安全面中的点的坐标比所计算的最大包围盒中的点的坐标大一个上 述的阀值。
[0019] 所述计算模块102还用于在所述三维模型上选取一量测点,计算一个量测点在三 维模型上的坐标。在本较佳实施例中,用户可以通过手动输入一量测点的坐标,或利用鼠标 (图中未示出)点击三维模型上的某一点以选取一量测点。所述计算模块102以该量测点相 对于显示装置13上的屏幕法线作为射线;采用空间包围盒算法在该射线周围找出与所述 射线临近的所有三角形,得到上述三角形中与所述射线相交的所有交点,并根据法线方向 最顶点仅有一个交点的原则,计算得到在三维模型上的初步坐标。所述的空间包围盒算法 将射线临近的网格化点云切分成多个小包围盒,在任意一个小包围盒通过标号方法找到与 所述射线临近的所有三角形。由于法线有正方向和反方向,因此,所述射线与三维模型相交 时有很多交点,依据待测产品22最表面的点向外做射线找不到交点的原则,从所有交点筛 选出三维模型最表面的顶点坐标,即为该量测点在所述三维模型上的坐标。
[0020] 所述创建模块103用于根据上述计算的量测点在三维模型上的坐标以及所选择 的元素类型,创建相关的量测元素。在本较佳实施例中,所述创建模块103根据最小二乘原 理并通过拟牛顿迭代方法,将该量测点的坐标及待测产品22的三维模型的数据(例如,与 该量测点临近的三角形)进行拟合,拟合得到所选择的元素类型所对应的量测元素。所述量 测元素包括线、面、圆等。
[0021] 所述控制模块104用于导入一预设的虚拟测针显示于显示装置13上,并旋转该虚 拟测针的角度与所创建的量测元素的法向一致。所述的虚拟测针为一三维量测机台的实际 测针的三维模型。
[0022] 所述控制模块104还用于根据计算的所述三维模型的三轴安全面,控制所述虚拟 测针从当前坐标向所述量测元素运动。由于虚拟测针的运动的基于所述三维模型的三轴安 全面进行的,使得虚拟测针的运动并不会碰撞到所述三维模型。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1