CN101751005B - 通过数控加工程序代码快速生成三维曲面模型的方法 - Google Patents

通过数控加工程序代码快速生成三维曲面模型的方法 Download PDF

Info

Publication number
CN101751005B
CN101751005B CN2008102041782A CN200810204178A CN101751005B CN 101751005 B CN101751005 B CN 101751005B CN 2008102041782 A CN2008102041782 A CN 2008102041782A CN 200810204178 A CN200810204178 A CN 200810204178A CN 101751005 B CN101751005 B CN 101751005B
Authority
CN
China
Prior art keywords
array
coordinate
dimensional
numerical control
point
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN2008102041782A
Other languages
English (en)
Other versions
CN101751005A (zh
Inventor
蒋知峰
张楠
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Electric Automation Group Co ltd
Original Assignee
SHANGHAI KAITONG DIGITAL CONTROL CO Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SHANGHAI KAITONG DIGITAL CONTROL CO Ltd filed Critical SHANGHAI KAITONG DIGITAL CONTROL CO Ltd
Priority to CN2008102041782A priority Critical patent/CN101751005B/zh
Publication of CN101751005A publication Critical patent/CN101751005A/zh
Application granted granted Critical
Publication of CN101751005B publication Critical patent/CN101751005B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Numerical Control (AREA)

Abstract

通过数控加工程序代码快速生成三维曲面模型的方法,属机床数控技术领域。其技术方案是利用数控加工程序代码中的数据,将其中的直线段进行线性插值,填充一个二维网格,将每个网格划分为两个三角形,并对每个三角形的顶点求平均法向量,再利用OpenGL或Direct3D渲染成最终三维模型。本发明的优点是处理速度快,显示效果好。本发明可以应用在数控机床图形编程系统中,也可以集成在数控系统中对数控加工代码进行检测等。

Description

通过数控加工程序代码快速生成三维曲面模型的方法
技术领域
本发明涉及通过数控加工程序代码快速生成三维曲面模型的方法。
背景技术
数控机床是一种装有程序控制系统的自动化机床。该控制系统能够逻辑地处理具有控制编码或其他符号指令规定的程序,并将其译码,从而使机床动作并加工零件。操作人员通过数控装置可在加工零件前预览模型,该模型表面是根据加工时刀具形状、走刀方向、工件形状等切削条件计算出曲面关键点,并以这些理论上精确的点经过计算生成的。目前在数控机床系统中由离散的数据点生成三维曲面的方法有:1.NURBS曲面拟合的方法,通过曲面上离散的点,反求NURBS的控制点和节点法向量;2.利用三角剖分的方法,得到最优三角网,由三角网格生成曲面。第一种方法精度高,曲面光滑度好,但是反求和曲面拼接过程复杂,需要大量计算,不适快速图形显示;第二种方法生成的近似曲面光滑度比前者差,算法复杂度高,对于快速显示处理速度不理想。
发明内容
本发明所要解决的技术问题是提供一种通过数控加工程序代码的分析和处理生成三维曲面模型的方法,以克服现有由离散的数据点生成曲面的方法的不足,快速生成三维曲面模型,使数控加工操作人员在程序运行之前能够便捷地预览加工效果,方便对数控加工代码检查修改和对机床的调整。
本发明的问题是以下技术方案实现的:
通过数控加工程序代码快速生成三维曲面模型的方法,其步骤如下:
a.读取数控加工程序代码,取出刀轨移动坐标点,将坐标点的X、Y、Z值保存到一个一维数组M[N]中,数组的长度N为数控加工程序代码中坐标点的数量;
b.计算出数组M中X、Y坐标的最大值和最小值,得到X和Y坐标的尺寸范围Xrang和Yrang;设定一个曲面显示精度常数C,根据X、Y坐标的尺寸范围和曲面显示精度,创建生成一个二维数组float P[Lx][Ly],这个二维数组中的数组元素总数量L=Lx*Ly,其中Lx与Ly为该数组的尺寸,Lx=Xrang/C;Ly=Yrang/C,均取为整数;用数组M中的Z坐标的最大值来填充整个数组P作为初值,此坐标值相当于被加工物体的表面高度值;由此便获得了一个由二维数组P定义的XY平面上的网格;
c.从数组M中依次取出两个相邻的坐标点A和B,根据步骤b所得到的网格所定义的区块范围对线段AB进行划分以获得若干插值点,所述插值点是通过先求出线段AB在XY平面上的投影直线与由数组P所定义的二维网格的各个交点的X、Y坐标,再根据交点的X、Y坐标得到的;将线段AB的端点和各插值点的Z坐标分别填充到数组P中与各点X、Y坐标相对应的数组元素中;反复执行以上过程,对数组P中所有元素进行填充,在填充的过程中对于已经填充过的数组元素,如果通过插值点所计算出的Z坐标数值比当前数组元素的值要小,则用所计算出的数值替换这个数组元素;如果所计算出的数值大于或等于当前的数组元素,则不进行替换;没有被填充的数组元素保留为初始值,即刀轨加工过程中的最大值;这样数组P中每个数组元素对应一个Z坐标,由此获得由二维数组P定义的一组空间点阵列所描述的曲面模型;
d.将步骤c生成的点阵列中每相邻的三个数据点构成一个三角面,按照法向量的定义计算所有三角面的法向量;
e.初始化所有三角形顶点法向量,取以该点为顶点的所有三角形的面法向量,累加至该点法向量中,最后将所有顶点法向量归一化,只保留向量的方向信息,忽略长度信息;
f.将步骤d得到的三角面数据和步骤e得到的各顶点法向量的数据输入OpenGL或Direct3D三维图形函数库中进行渲染,实现三维图形的显示。
上述通过数控加工程序代码快速生成三维曲面模型的方法,所述一维数组M[N],其中每个元素包含X、Y、Z三个坐标值,为复合类型元素。
上述通过数控加工程序代码快速生成三维曲面模型的方法,所述曲面显示精度常数C,是由用来进行零件加工的刀具直径和形状所决定的,可以由系统的使用者根据所使用刀具的实际情况和对显示效果的要求来设定或修改。
本发明与现有技术相比所具有的优点为,1.处理速度快,使用线性插值的方法,既满足了视觉上的要求,又使处理速度加快;2.显示效果好,使用OpenGL或Direct3D实现3D效果,可以模拟各种材质,采用纹理映射使物体真实感很强,采用显示列表技术,加快显示速度,用户移动观察角度时非常流畅;3.用途广泛,可以应用在数控机床图形编程系统中,也可以集成在数控系统中对数控加工代码进行检测等。
附图说明
下面结合附图和实施方式对本发明作进一步的详细说明:
图1为本发明的实现原理流程图;
图2为本发明中按照网格区域对直线段进行插值的示意图;
图3为本发明中将网格划分为若干三角形的示意图。
具体实施方式
如图1所示是本发明的实现原理流程图,发明中生成三维曲面模型的具体方法为:
步骤1解析数控加工程序代码,取出刀轨移动坐标点。将坐标点(X,Y,Z)保存到一个一维数组M[N]中,其中每个数组元素包含X、Y、Z三个坐标值,为复合类型元素,数组的长度N为数控加工程序代码中坐标点的数量。
步骤2设定一个曲面显示精度常数C,计算出数组M中X、Y坐标的最大值和最小值,得到X和Y坐标的尺寸范围Xrang和Yrang,根据X、Y坐标的尺寸范围和曲面显示精度,创建一个二维数组float P[Lx][Ly]。
其中:曲面显示精度常数C是一个数控系统的全局参数,是由用来进行零件加工的刀具直径和形状所决定的,可以由系统的使用者根据所使用刀具的实际情况和对显示效果的要求来设定或修改;Lx与Ly为该数组的尺寸,Lx=Xrang/C,Ly=Yrang/C,均取为整数;这个二维数组中的数组元素的总数量L=Lx*Ly。
再利用步骤1读取到数组M中的Z坐标的最大值来填充整个数组P作为初值,此坐标值相当于被加工物体的表面高度值。由此便获得了一个由二维数组P定义的XY平面上的网格。
步骤3根据网格对数控加工代码中的数据进行插值并填充二维网络,获得曲面数据。如图2所示,从数组M中依次取出两个相邻的坐标点A和B,进行线性插值。首先求出线段AB在XY平面上的投影直线与由数组P所定义的二维网格的各个交点的X、Y坐标,再根据交点的X、Y坐标得到线段AB上的各插值点。将线段AB的端点和各插值点的Z坐标分别填充到数组P中与各点X、Y坐标相对应的数组元素中。
反复执行以上过程,对数组P中所有元素进行填充。在填充的过程中对于已经填充过的数组元素,如果通过插值点所计算出的Z坐标数值比当前数组元素的值要小,则用所计算出的数值替换这个数组元素;如果所计算出的数值大于或等于当前的数组元素,则不进行替换。没有被填充的数组元素保留为初始值,即刀轨加工过程中的最大值,这样数组P中每个数组元素对应一个Z坐标,由此获得由二维数组P定义的一组空间点阵列所描述的曲面模型。
步骤4计算网格中所有三角面的法向量。如图3所示,设V1(x1,y1,z1),V2(x2,y2,z2),V3(x3,y3,z3)为三角形的三个顶点,由V1,V2,V3三点形成三个向量:向量V1V2,向量V1V3和向量V2V3,则V1V2(x2-x1,y2-y1,z2-z1),V1V3(x3-x1,y3-y1,z3-z1),V2V3(x3-x2,y3-y2,z3-z2)。设三角面的法向量坐标是(x,y,z),根据法向量定义有:
( x 2 - x 1 ) * x + ( y 2 - y 1 ) * y + ( z 2 - z 1 ) * z = 0 ( x 3 - x 1 ) * x + ( y 3 - y 1 ) * y + ( z 3 - z 1 ) * z = 0 ( x 3 - x 2 ) * x + ( y 3 - y 2 ) * y + ( z 3 - z 2 ) * z = 0
根据步骤3得到的曲面数据,取其中任一三角面的三个顶点坐标,便可用以上方程组解出平面法向量的坐标x,y,z,得到三角面的法向量
Figure GSB00000435674600042
步骤5计算网格各顶点的法向量。顶点法向量是与之相邻的所有三角面的法向量的平均值,其计算方法如下:
初始化所有三角形顶点法向量为
Figure GSB00000435674600043
取以该点为顶点的所有三角形的法向量,累加至该点法向量中:
Figure GSB00000435674600044
为以V1点为顶点的三角形的法向量,则:
V → L = U → 1 + U → 2 + · · · · · · + U → n
最后所有顶点法向量归一化,保留向量的方向信息,即:
V → L = V → L / | V → L |
其中
Figure GSB00000435674600052
为向量
Figure GSB00000435674600053
的模。
步骤6最后将步骤4得到的三角面数据和步骤5得到的各顶点法向量的数据输入OpenGL或Direct3D三维图形函数库中进行渲染,实现三维图形的显示。
本发明的方法可以通过数控系统或个人电脑上的软件实现,作为一个独立的模块应用在数控图形编程系统中,可以对生成的加工代码进行实时的显示,方便对加工代码检查修改和对机床的调整。

Claims (3)

1.通过数控加工程序代码快速生成三维曲面模型的方法,其特征在于,它采用如下步骤进行:
a.读取数控加工程序代码,取出刀轨移动坐标点,将坐标点的X、Y、Z值保存到一个一维数组M[N]中,数组的长度N为数控加工程序代码中坐标点的数量;
b.计算出数组M中X、Y坐标的最大值和最小值,得到X和Y坐标的尺寸范围Xrang和Yrang;设定一个曲面显示精度常数C,根据X、Y坐标的尺寸范围和曲面显示精度,创建生成一个二维数组float P[Lx][Ly],这个二维数组中的数组元素总数量L=Lx*Ly,其中Lx与Ly为该数组的尺寸,Lx=Xrang/C;Ly=Yrang/C,均取为整数;用数组M中的Z坐标的最大值来填充整个数组P作为初值,此坐标值相当于被加工物体的表面高度值;由此便获得了一个由二维数组P定义的XY平面上的网格;
c.从数组M中依次取出两个相邻的坐标点A和B,根据步骤b所得到的网格所定义的区块范围对线段AB进行划分以获得若干插值点,所述插值点是通过先求出线段AB在XY平面上的投影直线与由数组P所定义的二维网格的各个交点的X、Y坐标,再根据交点的X、Y坐标得到的;将线段AB的端点和各插值点的Z坐标分别填充到数组P中与各点X、Y坐标相对应的数组元素中;反复执行以上过程,对数组P中所有元素进行填充,在填充的过程中对于已经填充过的数组元素,如果通过插值点所计算出的Z坐标数值比当前数组元素的值要小,则用所计算出的数值替换这个数组元素;如果所计算出的数值大于或等于当前的数组元素,则不进行替换;没有被填充的数组元素保留为初始值,即刀轨加工过程中的最大值;这样数组P中每个数组元素对应一个Z坐标,由此获得由二维数组P定义的一组空间点阵列所描述的曲面模型;
d.将步骤c生成的点阵列中每相邻的三个数据点构成一个三角面,按照法向量的定义计算所有三角面的法向量;
e.初始化所有三角形顶点法向量,取以该点为顶点的所有三角形的面法向量,累加至该点法向量中,最后将所有顶点法向量归一化,只保留向量的方向信息,忽略长度信息;
f.将步骤d得到的三角面数据和步骤e得到的各顶点法向量的数据输入OpenGL或Direct3D三维图形函数库中进行渲染,实现三维图形的显示。
2.根据权利要求1所述的通过数控加工程序代码快速生成三维曲面模型的方法,其特征在于,所述一维数组M[N],其中每个元素包含X、Y、Z三个坐标值,为复合类型元素。
3.根据权利要求1所述的通过数控加工程序代码快速生成三维曲面模型的方法,其特征在于,所述曲面显示精度常数C,是由用来进行零件加工的刀具直径和形状所决定的,可以由系统的使用者根据所使用刀具的实际情况和对显示效果的要求来设定或修改。
CN2008102041782A 2008-12-08 2008-12-08 通过数控加工程序代码快速生成三维曲面模型的方法 Active CN101751005B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008102041782A CN101751005B (zh) 2008-12-08 2008-12-08 通过数控加工程序代码快速生成三维曲面模型的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008102041782A CN101751005B (zh) 2008-12-08 2008-12-08 通过数控加工程序代码快速生成三维曲面模型的方法

Publications (2)

Publication Number Publication Date
CN101751005A CN101751005A (zh) 2010-06-23
CN101751005B true CN101751005B (zh) 2011-05-11

Family

ID=42478071

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008102041782A Active CN101751005B (zh) 2008-12-08 2008-12-08 通过数控加工程序代码快速生成三维曲面模型的方法

Country Status (1)

Country Link
CN (1) CN101751005B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102809943A (zh) * 2011-05-30 2012-12-05 苏州巴米特信息科技有限公司 一种工控智能方法
CN102809938A (zh) * 2011-05-30 2012-12-05 苏州巴米特信息科技有限公司 一种高效率自动化生产的方法
CN102495583B (zh) * 2011-11-28 2014-01-15 杭州晨远自动化科技有限公司 多维激光切割设备的数控系统及其控制方法
CN106201402A (zh) * 2016-07-11 2016-12-07 西安木牛能源技术服务有限公司 适配计算机及输出设备性能数据的3d模型推送方法
CN106094733B (zh) * 2016-07-25 2019-06-14 上海柏楚电子科技股份有限公司 一种用于数控系统基于误差测定的伺服参数自整定方法
CN109191570B (zh) * 2018-09-29 2023-08-22 网易(杭州)网络有限公司 游戏角色脸部模型的调整方法、装置、处理器及终端
CN112489000A (zh) * 2020-11-20 2021-03-12 天津朗硕机器人科技有限公司 一种自主可重构零件表面质量检测系统
CN112462691B (zh) * 2020-11-25 2022-07-01 苏州谷夫道自动化科技有限公司 基于OpenGL的多通道数控系统三维仿真的方法及其系统
CN113267689A (zh) * 2021-04-21 2021-08-17 中国人民解放军海军工程大学 无线电能传输电、磁、热及温升测试系统、测试方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1621984A (zh) * 2004-12-06 2005-06-01 沈阳工业大学 螺旋曲面数控包络铣削方法及其集成控制系统
CN1967423A (zh) * 2006-11-10 2007-05-23 大连理工大学 一种螺旋线制导的曲面数控加工方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1621984A (zh) * 2004-12-06 2005-06-01 沈阳工业大学 螺旋曲面数控包络铣削方法及其集成控制系统
CN1967423A (zh) * 2006-11-10 2007-05-23 大连理工大学 一种螺旋线制导的曲面数控加工方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JP特开2002-222008A 2002.08.09
JP特开平10-228306A 1998.08.25

Also Published As

Publication number Publication date
CN101751005A (zh) 2010-06-23

Similar Documents

Publication Publication Date Title
CN101751005B (zh) 通过数控加工程序代码快速生成三维曲面模型的方法
EP2486462B1 (en) Method, computer system and computer program product for machining simulation and for visually presenting such simulation
CN101890523B (zh) 利用自适应采样距离场仿真数控铣削的方法
CN106934111B (zh) 一种基于地形数据的工程三维实体建模方法及其建模装置
EP2254092B1 (en) Method for reconstructing a distance field of a swept volume at a sample point
Zhang et al. Numerical control machining simulation: a comprehensive survey
CN106709975B (zh) 一种交互式三维人脸表情动画编辑方法、系统及扩展方法
CN113593030B (zh) 基于三维模型的地质剖面图生成方法、系统、终端及介质
US20130054182A1 (en) Tool path display apparatus having display unit for acceleration or jerk of tool tip point
KR101659780B1 (ko) 3차원 지리 공간 시스템에서 2차원 도면 데이터를 지구 구면 공간에 표현하는 방법
Ren et al. Real-time simulation and visualization of robotic belt grinding processes
CN102629391A (zh) 基于数字图形介质的三维空间结构图形切割及切片方法
US9409272B2 (en) Tool path display apparatus for machine tool
KR20130137695A (ko) 형상 계측 방법
CN107168516A (zh) 基于vr及手势交互技术的全球气候矢量场数据可视化方法
Karunakaran et al. Octree-based NC simulation system for optimization of feed rate in milling using instantaneous force model
KR20220013410A (ko) 3차원 포인트 클라우드를 기반한 초기 시야각 제어 및 프레젠테이션 방법 및 시스템
Zhang et al. Design and development of an in situ machining simulation system using augmented reality technology
Karunakaran et al. A solid model-based off-line adaptive controller for feed rate scheduling for milling process
Giorgini et al. Visualization of agv in virtual reality and collision detection with large scale point clouds
CN102033513A (zh) 一种计算机辅助离散几何规划方法与系统
Kiswanto et al. Development of augmented reality (AR) for machining simulation of 3-axis CNC milling
Pan et al. Development of rapid prototyping slicing software based on STL model
Bouhadja et al. Survey on simulation methods in multi-axis machining
Aras et al. State-of-the-art in geometric modeling for virtual machining

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20200407

Address after: 201615 room 211, building 21, No. 1158, Zhongxin Road, Jiuting Town, Songjiang District, Shanghai

Patentee after: Shanghai Electric Group Automation Engineering Co.,Ltd.

Address before: 200233 No. 470, Guiping Road, Shanghai, Xuhui District

Patentee before: SHANGHAI CAPITAL NUMERICAL CONTROL Co.,Ltd.

TR01 Transfer of patent right
CP03 Change of name, title or address

Address after: 201615 room 213-3, building 21, no.1158, Jiuting Central Road, Jiuting Town, Songjiang District, Shanghai

Patentee after: Shanghai Electric Automation Group Co.,Ltd.

Address before: 201615 room 211, building 21, 1158 Central Road, Jiuting Town, Songjiang District, Shanghai

Patentee before: Shanghai Electric Group Automation Engineering Co.,Ltd.

CP03 Change of name, title or address