一种数控加工仿真过程的快速显示方法_第1页
一种数控加工仿真过程的快速显示方法_第2页
一种数控加工仿真过程的快速显示方法_第3页
一种数控加工仿真过程的快速显示方法_第4页
一种数控加工仿真过程的快速显示方法_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 三轴数控铣床仿真系统图形快速显示方法的研究 张得礼 周来水(南京航空航天大学机电学院CAD/CAM工程研究中心, 南京210016)摘要把工件离散成三角网格,充分利用计算机图形学相关理论,提出了操作方便的三角网格简化方法-LOD方法,在图形显示时,该方法根据图形显示比例系数,把在一个像素范围内的小三角片合并成大三角片;对用LOD方法简化后的非特征区法矢相同的大三角片面进行进一步合并,从而减少图形显示时的浮点运算,加速图形显示速度,提高了仿真效率,最后给出相应的计算机实现的方法,该方法已在三轴数控铣床仿真软件中得到应用。关键词: 铣削加工,仿真,数控中图法分类号:TP391.9:TG547文献

2、标识码:AResearch on The Method for Rapid Graphic Display in Simulate NC MachiningZhang Deli Zhou Laishui (college of mechanical and electrical engineering , Nanjing University of Aeronautic And Astronautic, Nanjing 210016 ,China) AbstractBased on uniform meshes model of workpiece shape, using the theor

3、y of computer graphics, An easily realized LOD method for reduction of triangles is presented, which integrated triangles in one pixel into two bigger triangles according to the coefficient of graphic scale, and reduce the triangles that have equal normal in non-characteristic sections further, thus

4、 float calculation was decreased, time of calculation is saved and efficiency is enhanced greatly , finally , give out the corresponding function programmed.zxy图1 用矩阵网格表示工件上表面Key words: milling , simulation , NC 1、前言 在数控仿真系统中,加工过程的动态实时显示技术是关键,加工过程的动态实时显示速度是衡量一个数控仿真软件优劣的重要标志,在目前比较常用的国内外的CAD/CAM系统中,其数

5、控仿真都是基于图象的,数控加工仿真过程只能在某一固定的角度观察,不能根据观察者的需要任意转换视角,这影响了仿真的真实感。加工工件离散法提出把工件离散成大量的三角片1,通过这些三角片来实现加工工件的放大、缩小和旋转等显示效果;离散的三角片越小,工件的显示效果越好,但是随着三角片的增加,三角片的法矢计算和三角片的显示占用CPU的时间越长,本文提出的LOD方法37解决了在不影响观察精度的情况下,如何快速显示数控加工仿真过程这一难题。同时,在研究和开发过程中将OpenGL图形标准作为开发平台,充分利用OpenGL的双缓存技术提供的先进动画技术4 5 6。2、工件毛坯的离散及其数据结构如图将工件上表面离

6、散成m*n的矩阵网格,为了显示的方便将一个矩形网格划分成两个三角片,对三轴铣床刀具始终是垂直XY面的,只改变工件的Z 向值,而x、y值不变,随着m、n 的增大,图形显示的精度越高,但运算时间大大增加。 工件毛项目基金:高等学校优秀青年教师教学科研奖励计划资助项目.作者简介:张得礼(1973-),男(汉),安徽含山县人,博士研究生, 研究方向:计算机辅助设计及制造。坯的数据结构及方法如下:struct GLpoint GLfloat x, y, z; ;/节点坐标 class CRecord /三角片法矢状态记录类 public:GLpoint v1,v2;/两个三角片的法矢BYTE m_nor

7、malChanged;/两个三角片状态记录变量 BYTE m_drawnFlag;/两个三角片图形刷新记录变量public:CRecord();protected:virtual CRecord();public: const CRecord& operator=(const CRecord& r);void CaculateNormal(GLpoint *p1, GLpoint *p2, GLpoint *p3, GLpoint *pOut);/计算三角片面法矢void DrawTrianglFace(GLpoint*p1,GLpoint*p2,GLpoint* p3,GLp

8、oint* p4);/绘矩阵网格;class CRoughModel protected:float m_minX,m_maxX;float m_minY,m_maxY;float m_minZ,m_maxZ;/工件毛坯的最大、最小加工坐标值float m_dx,m_dy; /X、Y方向的离散精度dx,dyint m_nCol;/X方向的最大索引值int m_nRow;/Y方向的最大索引值 public: CTypedPtrArray<CPtrArray ,CRecord*>m_record;/三角片改变状态的记录数组CArray<GLpoint,GLpoint>m_A

9、rray; /节点坐标数组public :CRoughModel (const GLpoint &a, const GLpoint &b,const float dmx, const float dmy);/建立毛坯模型virtual CRoughModel();public:void SetChanged(int row,int col,float z); void DisplyModel(void);随着工件尺寸的变大,离散精度dx,dy值变小时,毛坯三角网格上节点坐标值将占用大量的内存,这样毛坯的初始化速度很慢,为了节省存储空间和加快毛坯的初始化速度,三角网格上的每个节点

10、X、Y的坐标可以不存储而是通过X、Y方向整型索引值Col、Row来获得:x=minX+Col*dxy=minY+Row*dy只存储Z坐标。在每次图形刷新时,如每个三角片的法矢都重新计算一遍,则要占用大量的CPU时间,所以在每次图形刷新前,记录下法矢改变的三角片,每次图形刷新时只计算法矢改变的三角片的法矢。这样减少了浮点运算的次数。在均匀离散的矩阵网格中,毛坯表面的一个离散点Pi,j周围的局部点如图2 所表示。 其中,i,j为该点在矩阵中的索引值,如果点Pi,j的坐标z值改变,那么它最多影响到周围的6个三角片,如Pi,j-1 Pi,j Pi-1,j-1和Pi,j Pi-1,j-1 Pi-1,j就

11、构成一个记录。如果Pi,j的坐标z值改变,那么需要修改影响记录中的状态改变,并重新计算三角片的法矢。图 2 点Pi,j的局部图Pi,jPi,j-1Pi-1,jPi+1,j+1Pi,j+1Pi+1,jPi-1,j-13提高仿真过程图形显示的速度如图3在加工工件上往往存在一些斜面和平面(称为非特征区),而在同一个斜面或平面上的三角片的法矢相同,我们可以把这些法矢相同的小三角片合并成大的三角片来显示,已合并的三角片用状态变量m_drawnFlag来记录,这样显示速度大大加快。同时在图形的显示中,存在许多三角面片在屏幕上的投影小于一个像素这样的情况,我们可以用下文的LOD方法来合并三角形来加速图形的显

12、示。3.1 非特征区三角形的合并方法为了三角形合并的方便,对同一个非特征区按索引行加以分块,如把图3中的 I-I平面可分成块1、2、3、4,然后对每一块内的三角片再按行或列进行合并,如图 4 如果四边形Pi,jPi+1,jPi+1,j+1Pi,j+1和四边形Pi,j+1Pi+1,j+1Pi+1,j+2Pi,j+2两个面的法矢相等,则用大四边形Pi,jPi+1,j Pi+1,j+2Pi,j+2代替两个小的四边形,大四边形再用两个大的Pi,jPi+1,j Pi+1,j+2和Pi,j Pi+1,j+2Pi,j+2 来显示,而法矢用小三角片的法矢即可。对于一个的非特征区矩阵网格如不用此方法则要显示20

13、00000个小三角片,用此方法后则只要显示2000个大三角片,图形显示的计算量减少1000倍,具体的实现见下文DisplayModel(void)函数。斜面平面图3 已加工工件示意图I-I1234图4 I-I平面分块图Pi,jPi+1,jPi,j+1Pi+1,j+2Pi,j+2Pi+1,j+1图 5 三角网格合并示意图3.2 LOD(Level of Details)方法及其实现 在物体的动态显示中,当观察者距离物体越近时,物体的图象在屏幕上占的像素越多物体的特征看的越明显,当观察者距离物体越远时,物体的图象在屏幕上占的像素越少物体的特征看的越不明显,如再用大量的面积小于一个像素大小的三角片去

14、精确表示该物体则毫无意义。作者根据观察点位置的变化,将三维物体用多种不同的精度显示。当物体的许多三角面片在屏幕上的投影小于一个像素时,我们可以合并这些三角面片而不影响物体的视觉效果7。如图6所示:当三角面1、2、3、4、5、6、7、8 小于一个像素时,其颜色RGB的值就等于该像素颜色RGB的值,用p1p2p4和p2p3p4来代替这八个小三角片,在视觉上毫无差别。下文将详细阐述LOD方法在作者开发的数控仿真系统中的具体实现。定义屏幕观察窗口的大小为glViewPort(0,0,ScreenX=500,ScreenY=500),当屏幕放大系数glViewScale=1.0时,最大实际显示坐标范围为

15、(0.,图6 在一个像素内的三角片13452678P1P2P4P30.,ActualViewX=500.,ActualViewY=500.),则每个像素显示的实际值为minViewX*minViewY*minViewZ=1mm*1mm*1mm,当dx、dy小于1.mm 时,设x=0.1,dy=0.1,构成三角形的三个顶点Z坐标的差值小于0.1mm,投影到XY上,此时,在一个像素范围内有二百个三角片显示,其颜色RGB值相同,这时可把这二百个三角片合并成两个大三角片p1、p2、p3、p4来显示,显示时用其中任意一个小三角形法矢作为大三角片的法矢,如glViewScale=2.0,其它条件不变则最大

16、实际显示坐标范围为(0.,0.,250.,250.),每个像素显示的实际值为0.5mm*0.5mm*0.5mm,则在一个像素范围内的三角片有五十个,其颜色RGB值相同.法矢的处理方法同glViewScale=1.0时相同。在实际的计算中,由于实时性的要求, 加之在本系统中离散的三角片是均匀的,为了简化计算,可根据不同的屏幕放大系数 glViewScale,对三角片设置不同的阈值defined_value),define_value=ScreenX/(ActualViewX*max(dx,dy,maxZ)*glViewScale); maxZ为所有三角片中三个顶点Z 坐标差值的最大值,在工件毛坯

17、建立后,该值只在glViewScale变化时须要重新计算一遍;看下面的具体实现方法:void CRoughModel: DisplayModel(void)for(i=0;i<(m_nRow+1);i+=glViewScale)for(j=0;j<m_nCol+1;j+=glViewScale) k=i*(m_nCol+1)+j;record=m_recordk;if(k>glViewScale)recordPre=m_recordk-glViewScale; else recordPre=m_record0;t=i*(m_nCol+2)+j;p1 =m_Arrayt;p4=

18、m_Arrayt; d=fabs(recordPre->v1-record->v1)+ +fabs(recordPre->v2 -record->v2); while (d<0.0000001) / 非特征区三角形的合并ChangedFlag=TRUE; / 有非特征区三角形的合并 k+=glViewScale; j+=glViewScale; record=m_recordk; recordPre=m_recordk-glViewScale;d=fabs(recordPre->v1-record->v1)+ +fabs(recordPre->v

19、2 -record->v2); if(ChangedFlag) k-=glViewScale; j-=glViewScale;ChangedFlag=FALSE; record=m_recordk; t=i*(m_nCol+2)+j+glViewScale;p2=m_Arrayt; t+=glViewScale*(m_nCol+2); p3 =m_Arrayt;/ P1,P2P3,P4为合并后的两个大三角片的四个顶点 record->DrawTrianglFace( p1, p2, p3, p4); 4 加工实例效果对比 图7和图8分别是屏幕放大系数glViewScale=1和gl

20、ViewScale=2时加工出的一个龙的模型的显示图7 glViewScale=1时显示的效果图图8 glViewScale=2时显示的效果图效果,在视觉上这两个图效果一样,无明显的差别。但是显示的三角片已从原来的4000000个简化到20000个。是未简化前的三角片数量的1%。未简化前加工仿真此文件则须8分钟,简化后则只须1分45秒,图形显示速度提高到未简化前4-5倍。4结论数控加工仿真软件的设计和开发的关键是加工过程的图形显示速度,因此简化运算,提高运算效率,缩短运算时间,是我们必须做的工作,作者提出的图形快速显示方法,使得图形显示速度提高到3-5倍,如在作者开发的数控加工仿真软件中,在相

21、同的条件下,加工同样一个900K的文件,未简化前则须8分钟,简化后则只须1分45秒,且显示效果很好。参考文献(Reference)1 luoKun ,Using Tringle Faceted Model for NC Maching Verification J.Computer-Aided Design &Computer Graphics,2001,13(11),1024-1028.2 牛文搏,刘进等.一种数控铣床的仿真算法J.计算机辅助设计与图形学学报,2002,14(5):464466. Niu Wenbo Liu Jin, etc. Method to Simulation NC MachiningJ, Computer-Aided Design &Computer Graphics,2002,14(5):464466. 3 陈

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论