实训总结
这一周的实训锻炼了我们小组团结合作的能力,培养了我们要细心耐心的性格,在保护人身安全的情况下顺利的完成了实训的操作目标,完成了高质量的产品。
在这次的实训中,我们既有优点,也有不足的地方。首先,我们的优势主要从以下几个方面来体现:
第一,我们在一开始就遇上了撞刀,学会了如何处理和发生原因,以后避免了再次发生;
第二,我们小组五个人,大家团结在一起互相帮助
第三,整个结果是我们集体智慧的结晶;
我们的不足有以下几点:
第一,部分同学有些粗心大意
第二,上手速度不是很快
通过这次的实训我们小组得到的经验有:
第一,细节决定成败,要理解清楚一些简单的概念;
第二,做事情要有耐心,没有耐心什么也做不成
第三,要吸取别人的经验,取长补短
组员评价
在本周的实训过程中,我组组员秉持着安全生产,团结合作的原则顺利的完成了实训的操作目标。然而在我们第一次接触机床自己动手的时候就撞刀了,虽然这一撞使得我们都有点惊慌失措,幸运的是没有造成人身伤害和什么损失,却让大家都知道了做事情要细心耐心,更是要团结在一起共同学习共同进步,在保证自己的安全的前提下,高效率的做出保质保量的成品。
零件图纸及成品
加工程序
实训小结
为期一周的数控编程与加工技术的实训马上就要结束了,这短短的一周中,我通过不断地练习,获得了大量的知识和经验。在实训刚开始的第一天,由于是第一次实实在在的操作机床,对自己技术的不自信使得我在刚接触机床的时候显得十分的紧张,生怕搞坏机床,在老师的细心指导和自己的慢慢尝试下才渐渐的敢于去做,最终做出了不错的零件。
总的来说,这次实训对我来说十分重要的,它从生理上和心理上都对我以后的学习,实习,工作都产生了影响。生理上,我通过这五天掌握了机床的操作方法,自己也学会了处理一些简单问题。我觉得在以后学校学习时间里也恐怕不会再有这样的这么近距离的操作机床的机会,所以我格外的珍惜这次实训的短短一个星期,更格外的珍惜通过我自己的努力所做出的零件。在实训期间,虽然我们之前有学过一些理论的知识,但是俗话说实践才能出真理,所以我觉得这是一次理论与实践相结合的好机会,又是将全面地检验我们的所学习知识水平和上课的认真程度。数控编程与加工技术的实训是培养我实践能力的最好途径。离开了课堂严谨的环境,让我们深刻的感受到车间的工作气氛。同时也更加感受到了当一名车间工人的心情,使我们更加清醒地认识到自己所肩负的责任。
很快我们就要步入社会,面临就业了,就业单位的老师傅们肯定不会像学校老师那样一步一步的教导我们更不会像老师一样耐心的指导我们,更多的是需要我们自己去观察、自主的去学习。当今社会,越来越多的企业需要软技能优秀的人才,而不是只会死读书的书呆子,自己知道自己的缺点,使自己追求更多的知识,更多的技能,不断地更新和进步自己,才能不被社会所淘汰,不具备这项能力就难以胜任来自未来的挑战。随着科学技术的迅猛发展,新技术的广泛应用,有很多领域是我们未曾接触过的,只有敢于去尝试,勤于去学习才能有所突破,有所创新。就像我们我操作的机床,虽然它的危险性很大,但是要求每个同学都要去操作而且要加工出产品,这样就锻炼了大家敢于尝试的勇气和细心耐心的性格。数控加工实训所带给我们的不仅仅是我们所学习到的那些操作技能,更多的则需要我们每个人在实训结束后根据自己的情况去感悟,去反思,然后有所收获,这才是实训的真正目的。
对我们来说,数控加工实训是一次很好的学习、锻炼的机会,让我体会最深的是理论联系实际,实践是检验真理的唯一标准。理论知识固然重要,可是实际的不会操作一切都是空谈,仿佛是纸上谈兵。只真正做到理论与实践的相结合,将理论真正用到实践中去,才能更好的将自己的能力展现出来,和自己的团队配合默契,才能保证在未来的社会竞争中有自己的位置,不会被社会趋势的洪流所淘汰。
实训小结
本学期的第二个礼拜是我们机电贯通班的数控加工实训周。
在此之前,我从来没有操作过真正的机床,虽然在之前的中专有一门数控加工技术的课程,也只是结合教材讲解一些基本的操作指令以及在模拟仿真机床上做过零件。
关于模拟仿真系统的操作,我可以说是得心应手。写程序自然不用多说,敲敲键盘几十行程序就打完了。装上事先定义的毛胚和刀,进行对刀。完成对刀后模拟运行一次,看一下走刀轨迹合不合理。没问题的话就直接自动运行,加个速大概十几秒后能看到工件就这么被做出来了。
用成语去形容一个通晓理论,却没有去真正实践过的人,我们会说他不过是纸上谈兵。之前在仿真系统上的操作,其实也可以用纸上谈兵来形容。
一、键盘鼠标?机床上没有!
在模拟仿真系统上输入程序有几种方法,我最常用的就是用键盘输入。二十六个英文字母,方向键,数字小键盘,delete键,“;”键,insert键这些数控编程上用到的按键对于我来说十分熟悉,只要懂得编程原理,就和上网聊天一般。操作面板则是另外一种设计,它把你需要用到的按键以一种相对密集的方式排列在面板上,对于像我这样的新手来说需要学习和适应一下各个按键的作用以及手轮的操作。毕竟是第一次接触机床,看着飞速旋转的毛胚,总还是会有些畏首畏尾,老师没讲过的按钮绝对不去触碰。在有了自己独立对刀,使用手轮进行端面的切削等操作之后,渐渐地对运行车床有了感觉,能够熟练地完成一些简单的手动操作。
二、在“事故”中成长
之前说到要验证程序的正确与否,要让机床模拟运行一次,确认走刀轨迹无误之后再进行加工。我们小组在做第一个零件的时候,也是先模拟运行了一次,确认程序正确之后循环启动开始加工。刀距离工件越来越近,到了起刀点本应该降低进给速度,而刀却没有要停下来的意思,向着工件直奔而去,接触的瞬间大堆金属屑与火花交织着向外喷射。这一刀直接导致了毛胚总长缩短了四分之一,幸好组长及时拍下了急停按钮才没有酿成更加严重的后果。事后我们询问了老师,得知撞刀的原因是因为之前模拟运行的时候锁定了机床却没有返回参考点,机床自动以锁定时的那个坐标开始加工,从而导致了撞刀事故的发生。有了这次的经验教训,我们每次模拟运行之后都会加入一步返回参考点。从此这类“事故”再也没发生过。
“三百六十行,行行出状元”在这短短一周的数控加工实训中,我掌握了一些操作机床的知识及理论。也体会到了一名数控机床操作员的辛苦。俗话说:“基础不牢,地动山摇。”虽然自己并不是数控专业的,但精髓确实相通的,要成为一名合格的一线工人,不能仅仅局限于课本上的知识,我们要把眼界放宽,不断吸纳新知识。为自己的人生打下坚实的基础。
实训小结
为期一周的实训结束了,本次实训,是对我能力的进一步锻炼,也是一种考验。从中获得的诸多收获,也是很可贵的,是非常有意义的。疲劳之余,还有些许欣慰,收获了许多关于我们专业有用的知识,这些成果可能会成为我成功路上的垫脚石。
本次实训我们我们学习的主要内容包括车床的换刀,对刀,工件的加工处理,对刀过程中,横截面对刀花费了我大量的时间,以后要在这方面下功夫才行,作为这次实训的成果,我自己完成一个完整的工件。
在这次的实训中,我归纳出了以下几点总结:
一丶不要轻易的求助与他人,不懂的的确是要积极的向他人提问,但是,一味的求助于他人,到头来只会把学的全都忘光。
二丶提高工作的主动性和积极性,要敢于尝试和改进,他人只看成果,自己独享过程,只有主动出击才能学有所得,不可以事事都待别人来催你才动。
三丶合理运用自己的时间,这是我感觉最重要的一点,因为没能合理分配我们自己的时间,导致最后几个同学完成工件的时间过于紧张,评分下降,这在以后是绝对不可以再次发生的。
四丶学无止境,精益求精,往往我们完成工件之后,沉浸在喜悦之中,完全忘了还有精度这件事,虽然误差不可避免,但是误差最小程度的减少,能提高最后的评分,有能力的话最好把工件的完成度做到最高,可以多向其他做完的同学借鉴。
五丶压力是最好的缓解剂,在松散的生活中,我们往往会犯一些非常低级的错误,在工作要一丝不苟对待自己工作,给自己施压,就如同往机器里加油一样重要。
还有一些事情需要极力避免:
一丶与自己的组员发生不必要的争吵,可能你的组员比你的动作慢些,或者在加工的过程中发生撞刀或者飞轮等意外,这种时候尽量不要与其争吵。
二丶进度虽然重要,但要注意安全,安全第一,在加工过程中,盲目的自信可能会害了你,比如加工过程中一定要记得拉上安全门,不论加工的是什么样的工件。
三丶要严格遵守加工守则,也许你是个熟练工,但是人有失手马有失蹄,谁也不知道加工过程中会发生什么样的意外状况,严格遵守守则固然不会错。
这次实训不仅使我学到了知识,丰富了经验。也帮助我缩小了实践和理论的差距,使我对系统编程有了进一步了解。这次实训将会有利于我更好的适应以后的工作。我会把握和珍惜实训的机会,在未来的工作中我会把学到的理论知识和实践经验不断的应用到实际工作中,为实现理想而努力。最后,我要感谢学院组织的这次十分有意义的实训,使我们学到了很多,也领悟了很多。同时,也要感谢为这次实训默默付出的老师,是她辛苦的汗水使这次实训得以完美结束。
实训小结
为时一周的数控实训周转眼过去,回想这一周让我学到了很多。
以前在课堂上学习数控加工大部分都是理论知识,所以我很珍惜这次实习机会,认真的听老师的讲解和介绍,观察每一个机械的构造和零件,以及学习它的实用方法,和理论知识相结合,才能理解的更透彻。
以下几点是我在实训种总结出来的几点如下:
(1)熟悉机床操作面板显示器和操作键盘组成.其常用键的作用如下:A编辑方式的作用:新建程序、编辑程序、修改程序、输入程序、删除程序(编辑程序-程序-输入O__-ZOB键)。自动方式:运行程序对零件进行加工。录入方式MDI:手动输入-程序键-翻页键-切换MDI界面。手轮按钮:按下后可以用手轮移动X,Z轴的位置。单端运行:运行单段程序。急停按钮和复位键作用差不多
(2)、对刀
工件和刀具装夹完毕,驱动主轴旋转,移动刀架至工件试切一段外圆。然后保持X坐标不变移动Z轴刀具离开工件,测量出该段外圆的直径。将其输入到相应的刀具参数中的刀长中,系统会自动用刀具当前X坐标减去试切出的那段外圆直径,即得到工件坐标系X原点的位置。再移动刀具试切工件一端端面,然后保持Z轴不变移动X轴刀具远离工件,在相应刀具参数中的刀宽中输入Z0,系统会自动将此时刀具的Z坐标减去刚才输入的数值,即得工件坐标系Z原点的位置。对螺纹刀时的方法和对外圆车刀的方法差不多,也先车个外圆向Z轴方向退刀,量起外圆值输入刀具参数,对Z轴时不需要车端面,只需先启动主轴,让刀尖接触端面再向X轴向退刀,调出刀补输入Z0
(3)加工
先根据图纸要求确定加工工艺,加工路线,编写程序,再将编好的程序输入数控CNC系统并仔细检查,确定无误后装夹工件,再对刀。对好刀后就可以调出程序,按下自动和运行按钮,关好防护门让机床自动加工。同时操作者不能离开机床,手拿专用工具去处理铁丝,如果机床出现什么异常马上按下急停按钮,预防损坏机床和对操作者造成伤害。
通过这次实习我们了解了现代机械制造工业的生产方式和工艺过程。熟悉工程材料主要成形方法和主要机械加工方法及其所用主要设备的工作原理和典型结构、工夹量具的使用以及安全操作技术。了解机械制造工艺知识和新工艺、新技术、新设备在机械制造中的应用。在工程材料主要成形加工方法和主要机械加工方法上,具有初步的独立操作技能。在了解、熟悉和掌握一定的工程基础知识和操作技能过程中,培养、提高和加强了我们的工程实践能力、创新意识和创新能力。这次实习,让我们明白做事要认真小心细致,不得有半点马虎。同时也培养了我们坚强不屈的本质,不到最后一秒决不放弃的毅力!培养和锻炼了劳动观点、质量和经济观念,强化遵守劳动纪律、遵守安全技术规则和爱护国家财产的自觉性,提高了我们的整体综合素质。在整个实习过程中,老师对我们的纪律要求非常严格,制订了学生实习守则,同时加强清理机床场地、遵守各工种的安全操作规程等要求,对学生的综合工程素质培养起到了较好的促进作用。
生平第一次有种“学以致用”的感觉,内心很有成就感,也真切的体会到真理必须要用实践去检验,不亲自去动手试验一下。有很多东西是书上没有的,只有在实践中才能体会得到,纸上谈兵只会让人走进误区,实践才是永远的老师。它带给我们的不仅仅是经验,它还让我们知道什么叫工作精神和严谨认真的作风。在以后的学习生涯中我更应该真人学习,将来成为一个出色的专业人才,这次实习让我懂得什么叫“纸上得来终觉浅,投身实践览真知”。对学生的综合工程素质培养起到了较好的促进作用。
实训小结
为期一周的数控加工实习转眼就结束了,但是带给我的感受却永远的留在了我的心。总的来说,这次为期一周的实习活动是一次有趣的,且必给了我今后的学习工作上的重要的经验。
随着科学的迅猛发展,新技术的广泛应用,会有很多领域是我们未曾接触过的,只有敢于去尝试才能有所突破,有所创新。就像我们接触到的数控机床,虽然它的危险性很大,但是要求每个同学都要去操作而且要加工出产品,这样就锻炼了大家敢于尝试的勇气。数控加工实习带给我们的,不全是我们所接触到的那些操作技能,也不仅仅是通过几项工种所要求我们锻炼的几种能力,更多的则需要我们每个人在实习结束后根据自己的情况去感悟,去反思,有所收获,使这次实习达到了他的真正目的。
对我们来说,数控加工实习是一次很好的学习、锻炼的机会,甚至是我们生活态度的教育的一次机会!在这次实训中,让我体会最深的是理论联系实际,实践是检验真理的唯一标准。理论知识固然重要,可是无实践的理论就是空谈。真正做到理论与实践的相结合,将理论真正用到实践中去,才能更好的将自己的才华展现出来。在实习过程中,老师耐心地给我们讲解数控软件上面每个指令的使用,在老师的指导下,我们很快就上手了,踏入了数控这个门槛,还适当地给我们布置些作业,我们也积极认真地对待,认真完成每一次老师布置下来的任务。 在这次车床操作过程中,但是由于时间较短,没能熟练的掌握编程。以后要认真学习,提高编程水平,并加强操作水平的提高。
总之,本次数控实训确实比以前提高了水平,尤其在实际操作方面,遗憾的是时间有些短。通过本次实训我也发现了自己的不足,主要是操作水平以及实践经验方面有欠缺。两周的数控实训带给我们的,不全是我们所接触到的那些操作技能,也不仅仅是通过几项工种所要求我们锻炼的几种能力,更多的则需要我们每个人在实训结束后根据自己的情况去感悟,去反思,勤时自勉,有所收获,使这次习实达到了它的真正目的。
《:t删鲤092一
⑩天洋大尊
一■k一●■■0■爿j0■¨■■¨c____
学科专业:让簋盟直圈董盛硕士学位论文
作者姓名:韭重
指导教师:墨盍勇塾撞
壬津大学研究生院
2005年I2月
中文摘要
该文以三轴数控加工中心为研究对象,结合作者的实际工作情况,论述了面向中、高职学校的数控机床操作培训软件的开发。
主要内容包括:
1.构建了数控机床操作培训软件的总体结构,并对该系统的界面和主要模块的功能进行了总体设计;
2.在介绍计算机内部三维形体是如何建立和开发的基础上,完成了本软件的机床几何模型的建立,实现了对加工环境的仿真;
3.在对数控系统研究的基础上,讨论了Nc代码解译器的实现技术以及插补指令的算法;
4.在对基于图像空间的模型和基于物体空间的CSG模型介绍的基础上,讨论了本软件中刀具和毛坯体所采用的离散模型以及切削过程的求交算法;
在上述技术研究的基础上,作者参与开发了一套数控机床操作培训软件,解决了本校在数控机床实验、实训教学中设备不足的问题,取得了较好的效果。关键词:数控机床、仿真、培训软件、插补算法、求交算法
ABSTRACT
ThiSdissertationisfocnsedurIontheresearchof
a
Tllree—axisNumericalContml
MachineCenter,confirmedtheauthor’sworkingtires.discussingthedevelopmentof
NCTrainingSystemhavebeencon币leted.●Designing
oriented
secondaryandhighvocationalsch001.Thefollowing
thewhole.theinterface
theframework
ofNCTrainingSystem
as
on
between
●
theconsumerandthecomputer
well
as
thefunctionsof
themainobjeet
in
partsarealsodesigned.
Based
on
theconstructionanddevelopmentfor
a
Tl】ree-Dimension
to
computer,thedesignofageometrymodelandsimulationenvironmenthavehecllrealized.
●0n
theworking
on
thebaseoftheresearchoftheNC
machine.it
laystheemphasis
the
●
implementationtechniqueofNCcodeinterpreterandinterpolationalgorithm.OnthegroundofthediscnssionofDi)【elmodelbasedonimage∞aceandCSG
based
Oil
objectspace,thediscretemodel
as
asa
favorablemethod
as
forthe
modelingofcuttingtoolandW0rkpiecealgorithmarc
wellthesurfaceintersection
discussed.
author
Withthe
resuIts
are
techniqueresearchmentionedabove,thedeveloped
a
NC
simulationtrainingsystem,solvingthelackofteachingequipment.Theexecuting
verywell.
Keywords:NCMachine、Simulation、TrainingSystem、InterpolationAlgorithm,IntersectionAlgorithm
Ⅱ
独创性声明
本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的研究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得盘鲞盘茔或其他教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。
学位论文作者签名:弥下军签字日期:岵年?;月刁日
学位论文版权使用授权书
本学位论文作者完全了解盘洼盘堂有关保留、使用学位论文的规定。特授权鑫盗盘堂可以将学位论文的全部或部分内容编入有关数据库进行检索,并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校向国家有关部门或机构送交论文的复印件和磁盘。
(保密的学位论文在解密后适用本授权说明)
学位论文作者签名:影霞导师签名码峨签字日期:咕年,2月1日签字日期:参∥年p月2刁日
第1章绪论
第一章绪论
1.1引言
数字控制机床(NumericalControlMachineT001)简称数控机床(Nc),是当今世界机器制造业中实现机电一体化的先进设备。它利用微电子、计算机等技术对复杂零件实现中、小批多品种的柔性自动化加工“1。对于形状复杂、精密、小批、多品种的零件的加工,具有适应性强、加工精度高、加工质量稳定和生产效率高的优点。数控机床的普及程度,已日渐成为衡量一个国家制造业水平的重要标志之一。
采用数控机床加工已成为机械制造业的主要方向。数控机床的普及,势必需要大量高素质的数控机床操作人员。如何能高质量、高效率和低费_Hj的培训机床操作人员成为亟待解决的问题之一。而计算机仿真培训系统是随着计算机技术的发展而新兴的高技术领域,在计算机仿真系统上培训操作者是一种低费用、高效率的科学训练手段,因此设计和开发数控加工教学培训用的仿真系统无疑是解决数控机床操作训练问题的较好途径。有鉴于此,拟设计和开发一个数控仿真系统。1,能模拟实际数控机床的操作过程,进行模拟加工,让学员在仿真环境下进行操作训练。因此,设计和开发数控仿真系统对于培训数控机床的操作者有着重大的实际意义。
1.2数控培训的实际情况和对数控仿真软件的需求
随着我国大力发展装备制造业,引起了数控技术人才的紧缺,全国许多院校纷纷上了数控专业,并花巨资购置了数控机床,但相关教师和技术人员的缺乏以及应用到实训中的数控设备数量的不足,严重制约了数控培训人数的增加,也影响了数控技能训练的效果。
在数控培训和数控技能训练中,学员上机床进行实践操作是必不可少的。但目前的实际情况却存在如下几个问题:
(1)数控机床的数量与学生数量相比,相差很大。
数控机床价格较高,一台生产型的数控车床,价格在20万左右;一台生产型的加工中心,价格在40万以上。为了数控技能训练买入数量较多的数控设备是不可能的,这将花费大量的资金。一般学校拥有数控车和加工中心的数量基本上在10台以下,在中职学校,只有l ̄2台数控机床是很普遍的情况。但一个班级的人数通常为30-40人,每次训练,只能3个人以上的学生轮流使用数控机床。很多中职学校甚至是30人使用一台数控机床。在这种情况下,数控技能训练的效果可想而知。
第1章绪论
(2)数控机床的实际利用率很低。
数控中级以下的培训,学生基本上是初次接触数控机床,初级培训内容往往占用很多的机时。假设一个学生熟悉数控系统面板和机床面板需要8个学时,由于是3人轮流使用,则需要24学时,才能轮一圈;假设一个学生熟悉数控程序的输入,编辑和调用等功能,需要4个学时,由于是3人轮流使用,则需要12学时,才能轮一圈。而在这段时问内,机床实际上是没有开动的,数控机床的实际利用率很低。
(3)数控机床事故发生率较高。
学生在培训初期,数控机床事故发生率很高。尽管每班均配备了多名指导教师,但还是出现多起碰撞机床的事故,严重影响了数控机床的精度。
(4)培训周期长。
因为机床数量上的不足,为了保证培训效果,只能是拉长培训的周期。计算机仿真培训系统是一种新兴的高科技领域,在各行业人员培训方面起着重要的作用。仿真技术的发展使得数控机床仿真培训软件的开发研制成为可能。
采用数控仿真技术编制的软件…,在计算机上培训数控机床的操作。可以大幅度的降低数控机床培训的成本,并且能在保证培训效果的基础上,缩短培训时间。相对于传统方法而言,具有低成本、高效率等优点。一台高配置的微机加上操作系统和仿真软件的价格不会超过万元,一个培训机房二十多台电脑,可同时培iJll--十多人,而且不怕误操作,但其总成本不过20万元。因此,非常适于学校进行数控实验课教学和数控操作技能的训练。正是在这种需求的推动下,应用数控加工仿真技术来编制软件就成为当前研究的一个热点。
数控机床仿真培训软件具有以下特点:
(1)非常强调实时性。系统必须对用户的操作做出及时响应,如用户发出主轴转,暂停加工等操作,加工场景中的三维物体必须立即做出相应的改变‘1”。
(2)不仅要提供加工的三维图形仿真,而且也要提供控制系统的仿真。界面上不仅要有显示机床的三维场景窗I=l,而且还要有机床控制面板,仿CRT显示器的窗口。底层还要仿真控制命令的传递。这些需要对数控机床有较完整深入的了解,才能设计出模块化较好的系统。
第1章绪论
(3)良好的交互性。加工过程必须连续、平滑,能随时对工件进行旋转,缩放,平移等操作,让用户从各个角度观察加工过程。这要求系统有相当高的执行效率。另外,系统应该能对用户的误操作给出提示。
(4)要考虑用户的多样性。目前机床的种类很多,用户可能有不同的要求。为了仿真环境的真实性,必须考虑机床控制面板和代码解释能够根据用户的需求而进行修改。
同时,相对于其它类型的数控仿真系统来说,这类系统对精度要求并不是很高,不要求进行工件的误差分析。
1.3数控加工仿真技术的发展状况
1991年美国国家关键技术委员会向美国总统递交的一份报告,列出了90年代影响美国经济与安全的2l项关键技术,建模与仿真就是其中之一。80年代后期,计算机仿真在应用领域、仿真对象、仿真目的等方面都发生了十分重大的转变。
目前仿真技术的应用具有以下特点和趋势:
(1)仿真技术的应用范围空前的扩大了。在仿真的对象及目的方面。已由研究制造对象(产品)的动力学特性,运动学特性、研究产品的加工、装配过程,扩大到研究制造系统的设计和运行.并进一步扩大到后勤供应、库存管璋、产品升发过程的组织、产品测试等,涉及到制造企业的各个方面。
(2)网络技术结合所带来的仿真的分布性。仿真的分布性是由制造的分布性决定的。敏捷制造、虚拟企业等概念本身就有基于网络实现异地协作的含义。
(3)与图形和传感器技术相结合。
(4)仿真技术应用的集成化。即综台运用仿真技术,形成可运行的产品开发和制造环境。
数控加工仿真技术是把计算机仿真技术引入到零件的数控加工当中““,可以形象、直观的模拟数控加工的过程。“仿真”一词译自英文Simulation,另一个曾用的译名是“模拟”。伴随着计算机技术与建模技术的发展,数控仿真技术已成为能够预测加工过程表现、产品质量及加工效率的一种有效方法…。
当前的数控仿真系统主要可分为两类,一类是着重在Nc代码验证和三维图形显示效果上,现在大部分CAD/CAM系统中的仿真功能都属于这一类“…。这类仿真一般三维效果很好,可仿真加工很复杂的工件,有的系统还可以在加工过程中变换视角。另一类是着重仿真数控机床本身的操作,力图使
第1章绪论
学员在虚拟的机床操作中,熟悉实际机床的操作。本文探讨的培训系统即属于后者。
国外在数控加工过程仿真方面做了许多工作,美国Maryland大学开发了用于培训数控操作人员的虚拟数控机床仿真器o”。作为该计划的一部分,美国NIST也开展了虚拟机床的研究。韩国Turbo—TEK公司开发出面向培训的虚拟数控铣削加工环境,能够实现数控加工的几何仿真并配有声音信息。日本SONY公司研制的FREDAkl系统可对球头铣刀加工自由曲面进行三维仿真,并进行干涉和碰撞检查。
国内在这方面也开展了诸多研究工作,并取得重要成果。如华中理工大学开发的NCPVSS系统,具有数控铣削加工过程仿真功能。即通过生成刀具轨迹,由三维动画显示数控加工过程,以此发现数控程序中的错误。同济大学研制的数控程序微机动画仿真系统,以二维图形方式动态模拟加工过程,能满足生产现场实时性要求。哈尔滨大学的NCMPS系统,可建立集成的数控加工仿真环境,面向多轴数控加工中心,在图形工作站上实时显示三维多轴数控加工过程。清华大学CIMS工程研究中心开发的“通用加工过程仿真器”己在多家企业得到应用。
数控加工过程模拟仿真包括几何仿真和物理仿真m1两个部分。几何仿真将刀具与零件视为仅具几何形状的刚体,不考虑切削参数、切削力及其它因素对切削加工的影响。只是对数控程序进行翻译,产生刀具位置数据,并以此数据驱动机床运动部件和刀架运动,刀具对工件进行虚拟切削。物理仿真包括加工精度分析,切削过程的热变形,切削力作用下的系统弹性变形、夹紧变形.以及机床的静态和动态分析等。本文探讨的培训系统只进行几何仿真。
1.4课题来源和研究内容
1.4.1课题来源
随着计算机仿真技术的发展和应用的深入,仿真技术已广泛应用于制造业的仿真、评估工艺计划和设备以及新产品设计。但是,大部分仿真系统都是彼此独立的,都是针对产品生命周期中的各个阶段的功能需要而建立的特定仿真模型,是为某个阶段或其中的某个过程服务,因而产品和制造工程的建模能力不够全面,仿真功能并不完善。随着制造业的发展,在几何仿真中仅仅建立刀具和工件的几何模型已不能满足虚拟制造的要求,必须建立加工环境模型,包括夹具、工作台和虚拟机床。所以,在虚拟制造技术的研究
第1章绪论
中,建立虚拟机床的设计模型,研究基于系统的机床仿真,具有很重要的意义。
笔者所在的学校作为天津市重点发展数控专业的中职院校,在对学生进行数控机床中级操作技能训练中发现用实际的数控机床进行培训不仅成本高,而且效率低。
本课题针对当前现状提出开发一种数控加工仿真软件,使其不仅能够进行刀具轨迹的快速几何仿真而且可以进行实体切削仿真并可提供丰富的观察和报警手段,实现仿真数据的精确记录、测量、统计和控制。希望能用软件模拟实际的加工操作来替代部分实际机床的培训内容,本系统就是根据这种需求,并考虑了同类的数控操作人员培训机构的实际情况而研究开发的。
1.4.2课题的主要研究内容
虚拟机床与实际机床一样01,可以认为是一组互相连接的活动部件的集合,它们完成要求的相对运动,提供工件和刀具系统上相关点的瞬间空间位置关系。因为机床的类型各式各样,品种千变万化,要想能够表达各种机床,就需要采用模块化的原理,定制各种标准的模块,这样经过少量的修改就可以建立各种机床模型。
厂
、
/,
、
虚拟机床
运动
毛坯夹具刀具模型
。。。。。。。。____——
几何运动仿真
l零件图纸H数控程序卜
\
模型
●。。。。。。,__。——
@拟机床几何模司
/
[
\
零件几何形状仿真
/
图卜1虚拟机床的基本框架模型
本课题研究虚拟三轴数控加工中心,图卜1所示为虚拟机床加工系统的基本框架以及该系统与其它虚拟制造资源的联系,清楚地展现了虚拟机床加工系统要研究的基本内容。
本课题研究的主要内容为以下三个部分:
(1)虚拟数控加工中心系统的开发。这一部分包括三个子模块““:
①虚拟机床几何模型的建立。②虚拟机床运动模型的建立。
第1章绪论
③工件、夹具和刀具模型的建立。
(2)数控系统的仿真。包括NC指令的解析,指令的执行等内容。
(3)加工过程仿真。包括毛坯与各种刀具扫描体的求交算法等内容
1.5本文的章节安排
本论文论述了虚拟三轴数控加工中心的研究与开发。主要内容有系统设计的思路和方法、仿真加工的几何建模方法、建模方案及数控加工中的求交算法。论文具体章节安排如下:
第一章绪论
介绍了数控加工仿真技术的发展状况,课题的来源等内容,并对本论文的基本内容作了说明。
第二章数控机床操作培训软件的总体规划
介绍了数控机床操作培训软件的总体结构设计,虚拟数控机床的界面和软件的主要模块的介绍。
第三章虚拟机床的建模
介绍了计算机内三维形体的表达方法,OpenGL三维图形编程,虚拟机床的类的设计以及如何使用openGL来建立虚拟机床的几何模型
第四章虚拟机床CNC系统中插补指令的算法
介绍了虚拟机床CNC系统的软件结构和模块的划分,Nc代码解释器的内容,仿真系统中插补指令的算法。
第五章加工仿真中的求交算法
介绍了加工仿真中工件的几何建模,优化离散矢量模型的建立和工件加工过程中的求交算法等内容。
第六章工作总结与未来展望本章对论文工作进行总结并对未来的工作提出展望。
第2章数控机床操作培训软件的总体规划
第二章数控机床操作培训软件的总体规划
对于数控加工仿真系统这样复杂系统的研究,传统的面向过程的方法(如结构化方法、功能分解方法等)很难满足其要求,而现代仿真技术的发展趋势之一是面向对象技术。将面向对象技术引入数控加工仿真系统的研究与开发中“1,将提高数控加工过程仿真系统研究的质量。本系统是以Visualc++6.0开发环境为支撑,运用可视性和面向对象的程序设计方法开发的一个具有Windows界面支持的适用于数控加工中心的三维图形仿真系统。2.1数控机床操作培训软件的总体结构设计
一个好的数控机床操作培训软件应该满足以下几个方面的要求:
(1)具有与真实数控机床运动完全相同的三维加工仿真功能;
(2)在结构上与实际机床具有一定的可比性、可重用性和可重组性;
(3)仿真系统应当具有比较好的算法、以实现最佳的运行效果,满足用户的需求。因此数控仿真系统要不断提高算法的运算速度、改进图形的显示效果、完善软件系统所具有的功能等。
数控机床操作培训软件是由许多面向对象的功能模块组成的。各功能模块并不是完全孤立的,尤其是在模块的接口设计、数据链路传输和机床的实时控制等方面更是需要各功能模块的协调工作,所以应首先对整个仿真系统的总体结构进行分析和规划,在这样的基础之上才能顺利开展其他工作。
数控机床操作培训软件的总体结构如图2-i所示。
机床、刀具和毛坯建模
数控系统的仿真图2一l数控机床操作培训软件的总体结构图
第2章数控机床操作培训软件的总体规划
虚拟的数控机床是由数控机床本体、刀具、工件和夹具组成。数控加工的过程是机床在Nc代码的驱动下带动刀具对固定在工作台上的工件进行切削加工的过程。数控机床操作培训软件是对Nc代码驱动刀具加工工件的全过程仿真。要实现这样的仿真,必须建立机床、刀具、工件的几何模型,在几何模型的基础上实现对数控机床各坐标轴的运动控制n”。
由于这个软件的复杂程度比较高,一个人不可能完成所有工作,况且这类专业程度比较高的软件,必须有精通数控机床系统和操作的人员来参与合作完成。下面介绍的内容是本人参与的部分。
2.2数控机床操作培训软件的界面设计和实现
2.2.1数控机床操作培训软件的界面设计要考虑的内容有:
①作为Windows软件,标准的菜单应该具有。一些仿真不了的机床操作(例如安装刀具,夹紧毛坯等),分类后,用下拉菜单的方式,完成其操作,这部分的内容由实际机床的操作训练来完成。
②在计算机的屏幕要显示虚拟数控机床,虚拟加工时,可以通过旋转,放大,平移等操作观察到机床与刀具切削毛坯的动作。
机床建模的内容请参考第三章的内容。
虚拟加工的内容请参考第五章的内容。
③计算机的屏幕要显示数控系统和机床操作的面板。
用户操作虚拟数控系统面板上的按钮,可输入Nc指令和刀具补偿值等内容,从虚拟的CRT屏幕上,可看到输入的结果,工件的当前位置和移动状态,也可从CRT屏幕中,实时显示出来。
根据用户需要,必要时候可以隐藏数控系统和机床操作面板。
如图2—2所示为数控机床操作培训软件的界面。
第2章数控机床操作培训软件的总体规划
2.2.2软件菜单部分的功能简介
主菜单:
(1)文件
(2)视图
(3)机床
(4)零件
(5)测量
C6)系统管理
(7)帮助
文件菜单的说明:
(1)新建项目:每次进入仿真系统,就算是一个新建项目,如果进入系统
后,选择该项目,则初始化仿真系统。
(2)打开项目:打开以前保存的项目文件,包括机床,毛坯,夹具,刀
具,用户坐标系,用户程序等内容。
(3)保存项目:保存用户的项目文件,包括机床,毛坯,夹具,刀具,用
户坐标系,用户程序等内容。
(4)另存项目:换名保存用户的项目文件,包括机床,毛坯,夹具,刀
具,用户坐标系,用户程序等内容。
(5)范例…:给用户的一些例子,
(6)导入毛坯:导入step或stp格式的实体零件。
(7)导出零件:将用户加工完成的零件,以stp格式导出。
(8)退出:退出仿真系统。
视图菜单的说明:
(1)显示全部:将机床和零件以正等测图的方式,完整的显示在机床窗口
中。
(2)显示平移:将机床和零件以鼠标方式进行平移。
(3)显示旋转:将机床和零件以鼠标方式进行旋转。
(4)显示放大:将机床和零件以鼠标方式利用窗口进行放大。
(5)显示缩小:将机床和零件以鼠标方式利用窗口进行缩小。
(6)前视图:将机床和零件以前视投影的方式显示。
(7)俯视图:将机床和零件以俯视投影的方式显示。(8)左视图:将机床和零件以左视投影的方式显示。
第2章数控机床操作培训软件的总体规划
(9)右视图:将机床和零件以右视投影的方式显示。
(10)选项::提供例如是否显示机床外罩等选择内容。
机床菜单的说明:
(1)选择机床:定义所要仿真的机床。
(2)定义刀具:定义所需要的刀具
(3)使用寻边器:使用寻边器找正XY坐标
(4)卸下寻边器:卸下寻边器
(5)定义量块:定义使用量块的高度
(6)使用量块:使用定义好的量块
(7)收回量块:收回量块
(8)DNC传输:模拟计算机传输程序
零件菜单的说明:
(1)定义夹具:提供可装夹圆柱形的虎钳,普通虎钳和真空夹具。(2)放置夹具:将夹具固定在机床上,放置夹具时,可以移动夹具。(3)定义毛坯:定义零件毛坯,包括圆柱形零件和矩形零件。
(4)放置零件:将零件放置在夹具上,放置零件时,可以移动零件。(5)更换零件:更换一个新的零件。
测量菜单的说明:
(1)截面图的测量
(2)三坐标测量
系统管理菜单的说明:
(1)用户管理
(2)刀库的管理
(3)夹具的管理
(4)系统设置
帮助菜单的说明:
(1)系统帮助(2)系统说明
第2章数控机床操作培训软件的总体规划
菜单的生成可利用VC的AppWizard来创建基于Document/View结构的应用程序框架。在生成的主框架窗口对象中,实现对主框架窗口的设置,包括标题栏、菜单栏以及客户视图区域的初始化。这部分的内容就可以完成了。2.2.3用户视图区的生成
在虚拟机床的设计中需要有两个视图类,一个是虚拟操作面板,另一个是虚拟机床视图,需要在视图窗口中同时显示这两个视图窗口,这样就需要在主框架窗口对象中实现对视图窗口的切分。切分窗口是通过类CSplitterWnd来实现的,对Windows来说,espolitterWnd对象是一个真正的窗口,它完全占据了框架窗口的客户视图区域,而视图窗口则占据了切分窗口的窗格区域。在主框架窗口类的说明MainFrntH中声明一个公共属性的CSplitterWnd对象inwndSplittcr,然后编辑CMainFrame类的OnCreateClient事件处理程序,就实现了视图区域的切分。
下面是生成用户视图区的部分程序:
BOOLCMainFrame::OnCreateCIient(LPCREATESTRUCT
CCreateContext+pComexd)lpes,
{
//创建一行两列的分区视图
if(!m_wndSplitter.CreateStatic(this,1,2,WScHILDIWS-ⅥSIBLE))
{
TRACE(‘'Faliedtotreatstaticsplitter.ha'’);
returnFALSE;
}
CRcctrect;
GetClientRect(&rect);
Csizesize=rezt.Siz《);
Size.cx=l15;
,/为操作面板创建视图
if(!m_WndSplitter.CreateView(0,0,RUNTIME_CLASS(CPanelView),
size,pContex0)
{
TRACE(‘'Failed
retumFALSE;tocleatpanelview.u”);
)
//为虚拟机床创建视图
if(!m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(CVMTView),
CSize(0,O),pContext))
{ll
第2章数控机床操作培训软件的总体规划
TRACE(“Failed
returntocreatVmtView.Xn”);FALSE;
}
m_splitterWnd.SetActivePane(O,1,(CView+)m_splitterWnd.GetPane(O,1));returnTRUE;
2.3数控机床操作培训软件主要模块介绍
1.虚拟机床几何模型的建模
这一部分是采用模块化设计来建立虚拟机床几何模型““,首先要求对机床进行模块划分与设计。根据机床的结构、功能以及各部分的连接关系,进行模块的划分。在模块的划分中,按照分级模块化的原理,对设计的机床可以进行任意的结构和功能的划分。为了进行模块化设汁,必须将具体的机床抽象化,建立虚拟机床中抽象元素之间的关系,使虚拟机床的设计具有较强的通用性。但是虚拟机床和实际机床的组成还是有所不同,对于一些与仿真无关的部件,如液压装置、照明电气系统等,则在虚拟机床中不予考虑,从而简化仿真模型。
2.虚拟机床运动模型的建模
虚拟机床运动模型涉及数控机床零部件、工件、刀具和夹具的几何位置关系和运动关系“”,这种几何位置关系和运动关系可以通过向量合成求得。数控机床零部件的运动包括直线运动和旋转运动,它具有层次性的相对运动关系,每一个运动对应一个机床零部件,执行零部件的运动是相对于机床基础零部件的各层运动合成的结果。
3.工件、夹具和刀具模型的建立
工件的建模在虚拟数控加工中占有十分重要的地位,其建模过程如下:定义工件形体;对工件形体进行坐标变换;工件的形体离散。刀具建模是虚拟数控加工的必要条件,其建模过程如下:定义刀具形体;对刀具形体进行坐标变换。“;刀具形体离散。夹具建模是虚拟数控加工的一个重要环节,夹具在工作台上的初始安装可通过将夹具坐标系与图形坐标系的原点重叠来实现,实际安装位置可通过对产品相对图形坐标原点进行平移变换得到…1。
在实际加工中,加工中心带有自己的刀具库,以便于在加工中进行换刀操作。然而对于仿真系统来说,机床刀具的种类繁多,形状也千差万别,让一个特定的仿真系统保存所有刀具的三维模型是不现实的,也是没有必要的。我们可以对刀具进行分类分析,建立参数化的数据库系统,将刀具库建成一个共享库。
第2章数控机床操作培训软件的总体规划
在本软件中,是选择MicrosoftAccess2000建立数据库文件,应用DAO进行数据存取操作,将刀具分为球头刀、平底刀和圆角刀三种来建立刀具库表,刀具库表对各种刀具类型的标识及刀具半径和长度等属性进行了描述,并提供了管理所需的添加、删除、修改等各种功能,这样可以保持刀具库的不断扩充和更新,用户可以根据自己的需要来定义刀具的类型,有助于提高设计者和使用者的建模技术和设计水平。
4.数控系统的仿真
虚拟机床的数控系统在功能模块上与实际机床的CNC软件系统在结构上和软件的控制功能的层面上是一致的。只是控制对象由虚拟的数控机床代替了实际的由硬件结构组成的数控机床。数控指令的解析和执行,是由数控系统来完成。虚拟机床的数控系统,在软件开发初期,还不能支持所有的Nc指令,但随着软件开发工作的深入,这部分的内容将随着软件的升级,而逐渐完善。
5.虚拟操作面板的构造
本软件的虚拟操作面板是模仿实际数控机床的操作面板制作而成的。虚拟面板上具有与真实机床类似的按钮、旋钮、开关、指示灯及其它控制部件,这些功能可以用装载位图的按钮来构造,用户可以通过鼠标来操作虚拟面板。由于Vc++控件具有封装性和继承性,因此虚拟面板的设计具有开放性,容易实现控制面板的修改和扩充。图2-2中的虚拟面板由两部分组成:①数控系统面板,即虚拟面板上方的显示屏和各种功能键;②机床操作面板,即虚拟面板下方的一些按钮、旋钮。面板上的按钮具有两种状态,按下和弹起时有亮灯来标示,各种仿真操作都是通过虚拟面板来控制的。这部分的内容,在用户使用本软件时,需要根据用户所有的具体机床的面板来定制。
6.加工过程仿真
数控加工过程的仿真是虚拟机床加工仿真的核心啪1。本软件的数控加工仿真属于几何仿真,它不考虑切削参数、切削力等因素的影响,只仿真刀具一工件几何体的运动;它包括刀具的进给仿真、工件的运动仿真、机床运动仿真以及由毛坯到产品材料去除过程的仿真。仿真过程中可以提供多方位观察方法和控制手段,可以多位置截面观察、旋转、缩放,可以单步、中断、终止、速度控制等仿真过程控制手段。可提供仿真结果,通过虚拟测量可得到过切、欠切、碰撞等信息。
第3章虚拟机床的建模
第三章虚拟机床的建模
3.1三维形体的表示方法
要想在计算机屏幕上产生一个三维形体图像,首先必须在计算机内构造并表示出该三维形体的模型,然后通过投影变换、视图变换及真实图形生成技术等在屏幕上产生出图像。在计算机内表示、构造三维形体并进行运算的技术,称为几何造型技术。三维几何造型的理论与技术是计算机科学、计算几何学与交互式图形显示技术的完美结合。形体在计算机内常用的表示方式有线框模型、表面模型和实体模型三种。
1.线框建模
线框建模是CAD/CAM中开发应用最早的建模方法,它用顶点和边棱线的有限集合来表示和建立物体的计算机内部模型。线框模型数据结构的关键在于正确地描述每一线框的棱边,点表描述每个顶点的编号和坐标,边表说明每一棱边起点和终点的编号。实际上,物体是边表和点表相应的三维映射。线框模型具有很好的交互作图功能,用于构图的图素是点、线、圆、圆弧和B样条曲线等。
线框建模具有数据结构简单、运算速度快的特点,但它也存在一些问题:一个线框模型可能被解释为若干个有效的几何体,对于形状复杂的零件,常常会导致加工轨迹数量增大,刀具轨迹非常拥挤,仿真中无法分辨刀具当前位置。线框模型无法实现对结构体的消隐处理,即不可能渲染得到具有真实感的产品图像;无法进行碰撞等干涉检查,与现在的仿真概念相去甚远,所以现在已很少采用线框建模方法进行加工过程仿真,但作为一种仿真方式,这种方法可供用户在一些简单情况下选用。
2.表面建模
表面建模是将物体分解为组成物体的表面、边线和顶点,用顶点、边线和表面的有限集合来表示和建立物体的计算机内部模型。表面模型的数据结构是在线框模型数据结构的基础上增加面的有关信息与连接指针,其中还有表面特征码,各条棱边除了给出连接指针外,还给出方向、可见不可见信息等。
表面模型中的几何形体表面可以由若干面片组成,这些面片可以是平面、解析曲面(如球面、柱面、锥面等),参数曲面(Bezier、B样条曲面片等)。“。利用表面模型,可以对物体作剖面、消隐、着色、表面积计算、曲面求交、Nc刀具轨迹生成、获得NC加工所需要的表面信息等,有助于对零14
第3章虚拟机床的建模
件进行渲染等处理,有助于CAM系统直接提取有关面的信息生成数控机床的加工指令,因此,大多数cAD/cAM系统中都具备曲面建模的功能。
表面模型虽然比线框模型具有较丰富的形体信息,可以描述任何复杂的结构体,但它并未指出该物体是实心还是空心,无法区别面的哪一侧是体内、哪一侧是体外,因此,表面模型仅适用于描述物体的外壳,不宜用作表示零件的一般方法。若要想处理完整的三维形体,最终必须用实体模型。
3.实体建模
实体建模研究的重点是如何用简单几何体构造复杂组合实体,如何方便地定义形状简单的几何体,如何经过适当的布尔集合运算构造出所需的复杂几何体,并最终在图形设备上输出各种视图。七十年代以来,大体上有六类完整的表示实体模型方法”…。如单元分解法、空间枚举法、射线表示法、半空间表示法、构造实体几何法和边界表示法。大多数CAD系统同时采用CSG和B-rep两种实体造型系统。下面本文就实体造型中使用最多的边界表示法、扫描表示法、构造实体几何法作一个简单介绍。
(1)边界表示法
边界表示法(BoundaryRepresentation),即B—rep法,它是以形体表面的细节,即以项点、边、面等几何元素及其相互间的联接关系表示形体,其边界的表面必须是连续的,物体的边界是所有面的并集,每一个面又可通过边和顶点来表示。边界表示法强调实体外表的细节。详细记录构成实体的所有几何信息和拓扑信息,可以直接取得实体的各个组成而、而的边界以及各个顶点的定义数据,有利于以边和面为基础的各种几何运算和操作,从而使得图形显示、有限元网格划分、表面积计算等功能更易于实现。但边界表示法的缺点是数据量大,数据关系复杂,数据库中管理困难,对实体几何特性的整体描述能力弱,不能反映实体的构造过程和特点,也不能记录实体组成元素的原始特性。
用实体的边界来表示实体,要在计算机内实现,就需要建立相关的数据结构。因为边界表示的概念不仅能用来表示三维空间的平面多边形,还应该能延伸到表示一个面、一条边。即一个多面体可用构成边界的一系列平面多边形来表示,而一个多边形又可用构成其边界的一系列边来表示,一条边又可用两点来表示。所以,要用实体的边界信息来有效表示一个实体,必须正确表示出实体边界的拓扑信息及几何信息。所谓拓扑信息,就是指面、边、点之间的连接关系、邻近关系及边界关系,而几何信息指的是面、边、点的位置及大小等几何数据。由于要频繁的对实体的面、边、点进行查找和修改,并希望能尽快地把结果显现出来,因此,如何设计一个方便对实体进行
第3章虚拟机床的建模
面、边、点的存放、查找和修改的数据结构,就是一个十分关键的问题了,必需妥善的加以解决。
现在国内、国际上用得较多的大多是翼边数据结构和对称数据结构,或是它们的变形。这些数据结构的特点是,用边界表示实体,数据量比较多,所使用的存储空间也较大,但有一个突出的优点就是实体的面、环、边、点的信息都直接表示出来了,因而,集合的运算结果就可以直接继续参加集合运算,而且也便于显示或图形输出。但如果在仿真软件的图形仿真中,采用这种表示方法,当涉及到集合的三维布尔运算时,运算量就会变得非常巨大,不仅影响了效率,难以达到仿真的实时性要求,而且也影响了可靠性。所以,在本软件系统中,不采用这种方法来表示机床的形体。
(2)扫描表示法
该方法也是一个得到比较广泛应用的表示三维实体的方法。它的基本原理比较简单,就是空间中的一个点、一条边或一个面沿着某一路径扫描时,所形成的轨迹将定义一个一维的、二维或三维的物体。在这里,表示一个物体需要两个要素,其一是做扫描运动的物体,其二是扫描运动的轨迹。在三维实体的表示中,应用最多的是平移扫描和旋转扫描两种。平移扫描是指做扫描运动的物体沿某一直线做扫描运动生成实体的方法,其特点是扫描得到的物体都有相同的截面。旋转扫描是指扫描体沿某一旋转轴做旋转扫描生成实体的方法,用该法构成的物体都是轴对称的,这是旋转扫描法的特点。
在扫描表示法中,由于三维空间的实体和曲面可分别由二维平面和曲线通过平移扫描或旋转扫描来实现,因此,只需定义二维平面及曲线即可.这对于许多领域的工程设计人员来说都是很方便的。在三维物体的表示中,扫描表示法往往是必不可少的输入手段,应用颇为广泛。
在本软件中,数控刀具的表达就采用了扫描表示法。
(3)构造实体几何法
构造的实体几何法(ConstructiveSolidGeometry),简称CSG法,也是在实体的表示、构造中得到广泛应用的一种方法。它的基本思想是将简单的实体(又称体素)通过集合运算合成所需要的物体。CSG是用体素(如长方体、圆柱、正棱柱、球、圆环等)拼合物体的有效表示法,它将物体的组成结构与有序的二叉树联系起来,形成CSG树,紧凑地描述物体的几何模型。CSG的树根表示物体;非叶子节点是运算符(运动算子,如平移、旋转等;正则化集合算子,如交、并、差等);叶子节点一般代表基本体素或扩展体素(如变截面扫描体,边界表示法表示的物体)。
第3章虚拟机床的建模
在构造的实体几何法中,如果体素设置比较齐全,那么,通过集合运算,可以构造出很多种不同的符合需要的复杂实体,而且它所产生的物体的有效性是由体素的有效性和集合运算的正则性自动保证的,它可以唯一的定义一个物体,并支持对这个物体的一切几何性质的运算,覆盖区域比较宽是这种方法的优点。此外,用户还可以通过输入或调用简单体素来直观而方便地构造三维实体。因而,这种方法在现有的大多数实体造型系统中作为输入手段而得到广泛应用。
这一方法也有它的局限性,它只定义了所表示物体的构造方式,即不反映物体的面、边、顶点等有关的边界信息。这种物体的隐式模型(unevaluatedmodel)或过程模型(proceduralmodel)的表示方法在数控加工仿真过程中随着对它的布尔操作的增加,物体将变得越来越复杂;集合运算的中间结果很难再用简单的代数方程来表示。因而不能继续参与集合运算,而且这种方法用于输出也不很方便。因此单纯用结构的实体几何法存在着难以克服的困难,为了解决这一困难,往往在用这种方法实现实体的定义和输入以后,将其转换为边界表示,再进行集合运算和显示输出,这是实体造型系统中常用的一种方法。
综上所述,考虑到虚拟机床的几何模型较为复杂,在运动仿真中需要做大量的平移、旋转等变换,而且要求仿真动画的实时性、平滑性较高,而CSG法在构造复杂三维实体模型时简洁方便,以体素为单元的各种坐标变换计算迅速,能够满足动画仿真的要求,所以本系统采用CSG法构造虚拟机床的三维几何模型。
3.2OpenGL三维图形编程
3.2.1OpenGL简介
GraphicsopenGL是SGI公司(siliconIncorporated)在图形工作站上
开发的高质量图像接口。GL是GRAPHICLLBRARY的缩写,意思是“图形库”。用openGL可以在Pc机上开发复杂的三维图形,微软在Visualc++中已提供了三个openGL的函数库(glu32.1ib,glau.1ib,OpenGL32.1ib),可以使我们方便地编程,简单、快速地生成美观、漂亮的三维图形。
OpenGL是一种图形与硬件的接口。它包括了120个图形函数,可以用这些函数来建立三维模型和进行三维实时交互。与其他图形程序设计接口不同,OpenGL提供了十分清晰明了的图形函数,利用OpenGL的图形处理能力和1670万种色彩的调色板很快地设计出三维图形以及三维交互软件。
第3章虚拟机床的建模
OpenGL强有力的图形函数不要求软件开发者把三维物体模型的数据写成固定的数据格式,这样开发者不但可以直接使用自己的数据,而且可以利用其他不同格式的数据源。这种灵活性极大地节省了时间,提高了软件的开发效率。
OpenGL提供一种直观的编程环境,它提供的一系列函数大大地简化了三维图形程序。
(1)OpenGL提供一系列的三维图形单元供开发者调用。
(2)OpenGL提供一系列的图形变换函数。
(3)OpenGL提供一系列的外部设备访问函数,可以方便地访问鼠标、键盘、空间球、数据手套等。这种直观的三维图形开发环境体现了OpenGL的技术优势。
OpenGL实现二维和二维的高级图形技术,在性能上异常优越,它包括建模、变换、光线处理、色彩处理、动画以及更先进的能力,如纹理映射、物体运动模糊等。OpenGL在硬件、窗口、操作系统方面是相互独立的。因此,许多计算机公司已经把OpenGL集成到各种窗口和操作系统中,其中操作系统包括UNIX、WindowsNT、DOS、Windows等。为了实现一个完整功能的图形处理系统,设计一个与OpenGL相关的系统结构为:其最底层是图形硬件,第二层为操作系统,第三层为窗口系统,第四层为openGL,第五层为应用软件。
OpenGL作为一个性能优越的图形应用程序设计界面(API)而适合于广泛的计算环境,从个人计算机到工作站和超级计算机,OpenGL都能实现高性能的三维图形功能。并且OpenGL应用程序还具有广泛的移植性,许多计算机公司已采用它作为三维图形应用程序设计界面。Op?enGL已成为目前的三维图形开发标准。
3.2.2
VisualVC++6.0环境下基于OpenGL的编程步骤c++6.0是Microsoft公司推出的编程软件,它支持Win32平台应用程序的开发,采用可视化、智能化新技术,具有极为强大的编程功能。
在VC++6.0开发环境下开发OpenGL应用程序需解决OpenGL与vc++6.0窗口系统的接口问题,主要是为OpenGL创建适当的图形操作描述表并设置正确的像素格式。此外就是要将openGL编程与VC++6.0事件编程相结合,在VC++6.0事件处理程序中利用OpenGL进行图形绘制,从而真正地将OpenGL融入到程序中,使之与程序的其他部分有机地结合成为一个整体。在下面是用VC++6.0编写OpenGL程序的基本步骤:
第3章虚拟机床的建模
(1)利用盯CAppWizard建立一个单文档应用程序框架。在文档视图结构中,视图负责窗口中内容的显示,因此所有的OpenGL绘制工作应放在视图类中进行。
(2)打开资源编辑器对程序界面上的菜单、对话框等资源进行必要的修改。
(3)在程序中包含进OpenGL的头文件和库函数文件。在视图类C~View的头文件~View.h中,包含有关OpenGL的头文件,如下:
#include”gl\91.h”
#include”gl\glu.h”.
其中91.h文件是OpenGL必不可少的,glu.h文件表示要用到OpenGL实用库函数。
(4)利用ClassWizard进行OpenGL所必须的初始化工作。OpenGL的初始化工作包括:设置象素格式、建立绘制描述表以及初始化OpenGL投影观察体系等工作。通过象素格式的设置,规定了openGL对象素进行操作的基本方式。绘制描述表指明了Windows进行图形显示的基本属性。
(5)根据用户对程序的功能要求,利用vc++6.0中的各种编辑工具,给视图类C~View或其它类,添加具有相应功能的成员函数,以及进行相应的事件处理。运用OpenGL建立实体几何模型以及实现动画最示等功能,均在这部分完成,这是程序开发的核心内容。
(6)利用VC++6.0的编译工具,进行程序的编译、链接及调试等工作。3.3虚拟机床的类的设计
数控机床操作培训软件是采用面向对象的方法来建立虚拟机床的几何模型,其核心和基本内容是抽象对象类,并建立对象类之间的关联。对象类的划分是否合理,对象类之间的联系是否恰当,一方面影响系统功能,另一方面也直接关系到系统实现起来的难易程度。
对象类的设计是一个对客观世界抽象和提炼的过程。数控机床的结构虽然复杂,但它们都是由结构和功能相对独立的数量较为固定的部件(或称为模块)组成,这些部件可以被视为对象,图3-1为数控机床的对象模型。虚拟机床是由主轴、立柱、床身、工作台、控制面板、刀头等组成。它和实际的数控机床的组成稍有差别,对一些与仿真无关的部件,如液压系统、电气系统等,在几何建模中可以不予考虑,以简化模型。
第3章虚拟机床的建模
图3-1虚拟机床对象模型
虚拟机床各部件类的定义如下:
class
class
class
class
class
classChuangsheng{):Lizhu{}:Zhuzhou{}:Daozuo(}:Daoju{)://床身类//立柱类//主轴类//刀座类//刀具类Gongzuotai()://工作台类
在这些类中,封装了各个部件的几何数据,完成了各部件的三维图形绘制及运动控制。下面以立柱类为例说明类的定义。
classLizhu
{
public:
float1,w’h:
float
float
void//立柱的长宽高//左面的点//右面的点//运动控制11l[20][33:112[20][3]:Move(floatX,floatY,floatZ);
Lizhu0://初始化各顶点坐标
Virtual’Lizhu0:
Protected:
voidDraw()://绘制立柱
):
3.4用OpenGL建立虚拟机床的几何模型
目前用于三维几何造型的交互式建模工具有很多,如AutoCAD、UG、Pro/E、3DSMAX等,它们都能很方便的建立各种复杂物体模型,但这些软件有一个共同的问题,它们不是针对仿真应用的,它们主要是作为三维造型和20
第3章虚拟机床的建模
绘图之用,作为程序设计人员很难进行程序底层开发,以实现对各实体模块的控制,完成实时动态仿真。在这一点上,or)enGL作为一个图形引擎,有着无可比拟的优势,程序设计人员可以在底层通过调用OpenGL各坐标变换函数实现对各三维实体模块的分别控制,实现动画仿真功能。这是本系统采用OpenGL作为建模及仿真工具的一个主要原因。当然我们在实际工作中,也可以用前面提到的交互式建模工具完成对虚拟机床各部件模块的建模,然后将其存储为某种通用的图形数据格式(如3DS,OBJ,DXF等文件格式)输出,供0penGL应用程序调用。下面就OpenGL进行虚拟机床几何建模的方法及步骤做一论述。
(1)虚拟机床几何建模的程序流程图如图3—2所示。
图3-2虚拟机床几何建模程序流程图
(2)创建op?enGL绘制环境
完成了对视图窗口的初始化后,在or)enGL绘图环境初始化使用OpenGL函数库之前,需要以特定的过程进行初始化。因为OpenGL函数库和操作系统无关,它有自己的独特设计,与Windows的图形设备接口GDI模型以及多数MFC应用程序的建立方法不太一致。OpenGL为Windows提供了一系列的API函数。
第3章虚拟机床的建模
在Windows下用GDI作图必须通过设备描述表Dc(DeviceContext)调用相应的函数。用openGL作图也类似,or}enGL函数是通过绘制描述表RC(RenderingContext)完成三维图形的绘制。下面简要介绍一下Win32下使用OpenGL函数库特殊的初始化过程。
首先,必须重新设置画图窗口的象素格式,使其符合OpenGL对象素格式的需要。为此需声明一个PIxELFORMATDEscRIPTOR结构的变量pfd,并适当地设置某些结构成员的值,使其支持OpenGL及其颜色模式。变量的声明见后面SetWindowPixelFormat0函数的描述。在结构pfd定义完毕后,调用ChoosePixelFormat0函数确定pfd结构是否存在,如果返【旦I值为TRUE,则调用SetPixelFormat0为设备描述表Dc设置象素格式。
完成了象素格式的重新设置后,需要为openGL建立绘制描述表RC(RenderingContext)。绘制描述表Rc的作用类似于Windows设备描述表Dc。只有建立了绘制描述表Rc后,openGL才能调用绘图命令在窗口中做出图形。Win32API提供了几个操作绘制描述表的函数,包括建立、复制、使用、删除、查询等,它们都以wgl为词头.绘制描述表是以线程为单位的.每一个线程必须使用一个绘制描述表作为当前着色上下文才能执行OpenGL绘图命令.
霄91createcontext()是建立绘制描述表的函数,它以一个设备描述表Dc句柄为参数,返回一个与此设备描述表相联的绘制描述表句柄。再以此两句柄为参数调用函数wglMakeCurrent()使绘制描述表成为线程当前使用的绘制描述表,完成Windows下openGL绘图环境的初始化过程。具体程序如下:
IntCVMTView::Oncreate(LPCREATESTRUCTlpcreatestruct)
{
if(CView::OnCreate(1pCreateStruct)一1)
return一1:
//得到视图的窗口句柄和设备描述表
m_hWnd=GetSafeHwnd0:
hDC=::GetDC(m_hWnd):
//设置像素格式
if(SetwindowPixelFo瑚at(hDc)==FALSE)
return一1:
//创建OpenGL绘制描述表
if(CreateViewGLContext(hDc)==FALSE)return一1:
第3章虚拟机床的建模
//建立实体类对象,初始化投影、视点参数
return0:
)
BO(LCⅦTYiew::SetWindowPixelFormat(HDChDC)PIXELFORMATDESCRIPTOR={
Sizeef(PIxELFORMATDEScRIPTOR),
1,//数据结构大小//数据结构版本号
//缓冲区可以在窗口表面绘制
//缓冲区支持OpenGL绘图
//,睫用双缓存
//使像素格式为平面或立体PFD_DPAwTOWINDOWSPFDSUPPORTOPENGLIPFD-DoUBLEBUFFERPFD_STEREo—DONTcARE,
PFDJYPERG队,
32,//RGBA颜色模式//:'32-bit颜色深度
//颜色位8,16,8,8,8,O,
O,
0,
64,//没有非透明度缓存//,忽略非透明度位//64bits累加缓存
16,16,16,.O,
32,
8,
O,//:备颜色累加位//32-一bit深度缓存//8-bit模板缓存//:无辅助缓存
f/i层FFD_MAINjL^№,
O,
0,0,0//保留//不设置层、可见性
//使Dc支持的像素格式与给定的pdf给定的像素格式匹配intm_GLPixlIndex=ChoosePixelFormat(hDC,&pfd):if(mGLPixel删?
f
m_GLPixelIndex=l:
if(DescribePixelFormat(hDC,m_GLPixelIndex,
sizeof(PIXELFORMATDESCRIPTOR),&pfd)==O)
returnFALSE:
第3章虚拟机床的建模
J
//设置像素格式
If(SetPixelFormat(hDC,m_GLPixelIndex,&pfd))
returnFALSE:
returnTRUE:
}BOOLCVMTView::CreateViewGLContext(HDchDC){
//创建绘制描述表
mhGLcontext=wglCreateContext(hDC):
if(m_hGLcontext==NULL)
returnFALSE;
//使之成为当前绘制描述表
if(wglMakeCurrent(hDC。m_hGLcontext)==FALSE)
returnFALSE:
returnTRUE:
}
(3)绘制各部件模型
在or-enGL中没有三维实心体的概念,所有的几何物体最终都是由一定顺序的顶点组成的面来描述的。通过调用glVertex0函数,来定义一个二维或三维或者一个用齐次坐标定义的顶点。连续的调用顶点定义函数可以生成一系列顶点、线或多边形等,在openGL中所有被定义的顶点必须放在glBegin0和glEnd()函数之问,才能正确地表达一个几何图元和物体,否则OpenGL不完成任何操作。通过设置glBegin0的参数可以指定生成不同类型的几何图元。例如利用定义的一系列顶点,可以生成多段线段、非闭合折线、多个简单填充多边形、连续填充三角形、连续填充四边形等。OpenGL正是通过这些基本图元构造出复杂实体的。在这些基本图元中,因为大多数OpenGL硬件部针对三角形进行了特殊的优化,所以利用连续三角形面片来拟合所需光滑曲面,进而构造实体的方法是应用最多的。
要实现用小平面拟合空间曲面,还需要指定小面片项点的法向量。在实际应用中,可以根据不同的情况选择合适的方法计算曲面上各点的法向量。OpenGL本身并未提供计算法向量的函数,只是提供了指定法向量的函数glNormal0,法向量的计算由程序设计人员自己完成,这样就使程序设计人员有很大的灵活性。法向量计算完后,再将它指定给每个顶点即可。对于一般的多边形,可以利用不在同一条直线上的3个顶点pl、p2、p3,计算又积(P卜P2]×[P2一P3],再将其单位化,就可求得该多边形的法向量。如果希望
第3章虚拟机床的建模
得到多边形各个顶点的法向量,只需将顶点周围多变形的法向量相加,然后单位化,即可得到该顶点的法向量。
用OpenGL绘制空间曲面的一般步骤是首先将要绘制的空间曲面分割为一系列小三角形面片,求出各小三角形面片的顶点坐标及法向量,然后调用OpenGL绘制图元命令按顺序绘制出这一列小三角形面片,即可绘制出所需空间曲面,按此方法绘制出实体的各个面,可得到所需实体几何模型。下面以绘制机床立柱为例演示绘制虚拟机床各部件三维模型过程:
VoidLizhu::draw0
ml[]={0,0,1}://定义各平面法向量
m2[]={0,0,-i}:
m3[]={1,0,0}:
m4口=(-I,0,0):;
m5[]=f0,l,0}:
m6[]=(0,一1,0):
//绘制前面
//绘制连续填充三角形序列
//定义各项点坐标{GLfloatGLfloatGLfloatGLfloatGLfloatGLfloatglNormal3fv(m1):glBegin(GL_TRIANGLE_STRIP):glVertex3fv(111[O]):
glVertex3fv(1Il[17]):
glVertex3fv(112[03):
glVertex3fv(112[17]):
glEndO;
glNormal3fv(m2)://绘制后面
glBegin(GL_TRIANGLE—STRIP):
glVertex3fv(111[3]):
glVertex3fv(111[16]):
glVertex3fv(112[3]):
glVertex3fv(112[16]):
glEnd():
glNormal3fv(m3)://绘制右面
glBegin(GL_TRIANGLESTRIP):
glVertex3fv(1l1[18]):
glVertex3fv(111[17]):glVertex3fv(112[19]);
第3章虚拟机床的建模
glVertex3fv(112[16])
glEnd0:
glNormal3fv(m4)://绘制左面
glBegin(GLTRIANGLE—STRIP):
glVertex3fv(112[18]):
glVertex3fv(112[17]):
glVertex3fv(112[19]):
glVertex3fv(112[16]):
glEnd0:
glNormal3fv(mS);//绘制上面
glBegin(GLTRIANGLE_STRIP):
glVertex3fv(111[16]):
glVertex3fv(11l[17]):
glVertex3fv(112[16]):
glVertex3fv(112[17]):
glEnd0:
glNormal3fv(m6)://绘制下面
glBegin(GL_TRIANGLE_STRIP):
glVertex3fv(111[O]):
glVertex3fv(11l[1]):
glVertex3fv(112[0]):
glVertex3fv(112[1]):
glEnd0:
按上述方法可以绘制出虚拟机床的各部件的几何模型,每个部件的顶点坐标赋值由其类的构造函数完成,绘制由各部件类的Draw0函数实现,图3—3为虚拟机床的立柱的三维几何模型。
第3章虚拟机床的建模
图3-3虚拟机床的立柱的几何模型
(4)虚拟机床的组装
建立了虚拟机床各部件的三维模型后,就可以采用CSG法构造虚拟机床了。前面在虚拟机床各部件建模时,采用自顶向下的方法将其分解为各功能部件,同样在建立虚拟机床的几何模型是,也可以使用自底向上的构造方法重构一个虚拟机床。虚拟机床几何模型的对象类结构主要是组装结构,它是以部件为基础的对象类形成的组装结构,这是实际数控机床本身由上向下逐层分解的装配关系决定的。
如图3-4所示,为虚拟机床的装配模型。
数控机床部件
部件树
装配约束
运动参数有序零件零件树装配约束运动参数有序基本体基本单元局部操作机床树装配关系有序
图3—4虚拟机床的装配模型
虚拟机床通过3个层次的聚集关系,由基本体对象组成。因而可用3个层次的结构树描述相应的组成对象:机床树、部件树和零件树。零件树处于最底层,描述零件对基本体的聚集关系。部件树在零件树之上,描述部件对零件的聚集关系,机床树处于最上层,描述机床对部件的聚集关系。
27
第3章虚拟机床的建模
基于以上虚拟机床装配模型的实现函数DrawScene0如下所示voidCMoveView::DrawScene()
{
glMatrixMode(GL_MODELVIEW):
glLoadldentity():
Chaangsheng.Draw0://画床身
//将立柱局部坐标系转为世界举标系
//将刀架局部坐标系转为立柱坐标系gLTranslated(750,300,O):Lizhu.Draw0:
Zhuzhou.Draw0://画立柱//画主轴
//画刀座
//画刀具
0;glTranslated(0,750,0):Daozuo.Draw0:Daoju.Draw0:glLoadldentity
glTranslated(0,0,800):
Gongzuotaidizuo.Draw//将工作台局部坐标系转为世界坐标系//画工作台底座0:
如图3—5所示,为虚拟机床装配完成后的几何模型。
图3-5虚拟机床模型
第四章虚拟机床CNC系统及插补指令的算法
第四章虚拟机床CNC系统及插补指令算法
4.1虚拟机床CNC系统简介
虚拟机床的CNC系统与实际数控机床的CNC系统在结构上和软件的控制功能的层面上是一致的,只是控制对象由虚拟的数控机床代替了实际的由硬件结构组成的数控机床。
4.1.1CNC系统的软件结构
CNC系统是一个多任务的实时控制系统,即要求系统可以快速处理和响应外部信息。常见的数控系统软件结构有两种:前后台型结构和中断型结构。在前后台型的CNC系统软件中,整个系统软件分为两大部分:前台程序和后台程序。前台程序是一个实时中断服务程序,承担了全部的实时功能,实现与机床动作直接相关的功能,如插补\位置控制、机床相关逻辑和监控等。背景程序是CNC系统的主程序,主要功能是根据控制面板上的开关命令所确定的系统工作方式,进行任务调度,处理一些实时性要求不高的工作,如输入、译码、数据预处理等插补准备工作和相关的管理工作。
在后台程序循环运行的过程中,前台程序以实时中断的方式,按照一定的周期不断插入,二者密切配合,共同完成数控系统要求的全部功能。如图4—1所示。
实
时
审
断
程
序
图4.1背景程序和实时中断程序的关系
背景程序进行插补前的准备和任务的管理调度工作。程序结构如图4—2所示。
在背景程序中完成系统初始化后,操作者就可以操作虚拟机床的操作面板,CNC系统根据用户选择的工作模式,进入相应的服务程序。服务程序执行完毕后,又返回背景程序的开始部分,进行重复循环。
第四章虚拟机床CNC系统及插补指令的算法
操作者操作机床面板输入加工程序
CNC系统(解释NC指令)
辅助代码
翠姜4.1.2M代码解释IT、s等其他代码解释驱动虚拟机床虚拟零件加工图4.2背景程序的结构CNC系统模块的划分
目前,尽管数控系统从系统的设计方法到系统的实现方式千差万别,但是其基本原理和软件的组成都是类似的““,只是在局部的功能上有差异。在对现有的数控系统和仿真系统需求进行仔细而全面分析的基础上,总结现有CNC系统控制结构的共同特征,并对其进行适当的归类和抽象,将数控系统针对仿真系统划分为以下几个基本的功能模块。
(1)人机交互界面模块
人机交互界而模块主要完成在系统运行前和运行中系统参数的修改和设定,如设定系统工作模式,图形显示模式,系统初始化设定,坐标偏置设定,Nc代码的查错显示等。
(2)Nc代码编辑器
NC代码编辑器实现对Nc程序文件的编辑、修改与存储。Nc代码文件可以在编辑界面上手工编写,也可以通过NC代码编辑器由外部读入Nc程序文件,由用户对其编辑、修改和调试。
(3)NC代码解释器
NC代码解释器负责将NC代码指令中给出的各种信息如刀具信息、刀具位置信息和控制机床运动的相关信息等进行分离提取,转换成系统能够识别的信息,并将其存在相应的数据结构中。并进行刀具的补偿、插补、坐标计算等一系列数据处理。
(4)运动仿真控制子模块
第四章虚拟机床CNC系统及插补指令的算法
这个模块根据用户的操作手动控制各运动部件的运动,或者把Nc代码解释器得到的刀具信息、刀位加工信息以及控制机床部件运动的有关命令和状态信息传递给相应的仿真模块,实时控制仿真过程的执行。
由于这一部分的模块很多,涉及到的算法也很多。下面的内容是本人参与完成的部分工作的内容。
4.2NC代码解释器
G代码程序由一系列指令组成,是Nc加工中的重要文件。数控机床的数控系统以此来控制机床的各种运动,进而完成对零件的加工。G代码程序可以由CAM软件自动生成也可以由手工编制而成,这里介绍本软件对Nc代码处理过程,主要包括Nc代码的编辑、修改及解释等内容。
Nc代码解释器是数控系统中的一个很重要的模块。对程序进行译码的方式主要有两种:编译和解释。编译系统速度快,结构复杂;解释系统速度慢,结构简单。目前,绝大多数的数控系统都采用解释方式对数控加工程序进行译码。因为数控系统虽然是一个系统实时性要求比较高的应用程序,但其主要的实时性任务是插补及位置控制,译码并不需要非常快的速度,尽管速度越快越好“…。而且这里并不像一般的编译系统那样,直接生成可执行的二进制目标代码,而是产生了一种中间代码,之后再由解释程序解释执行。严格来说,这并不是一种编译系统。
考虑到实际情况和简化结构的需要,我们采用解释方式进行译码,相应的程序称为Nc代码解释器。由于不同数控系统生产商所采用的数控代码标准与国际标准可能不太一致,在本软件系统完成的初期就要和所有数控系统兼容暂时比较困难。为了解决这个问题,我们这里先选择的足使用面较广的FANUC系统来对Nc代码进行解释。
在整个数控系统中,解释器作为一个单独的模块,其输入是G代码文件,输出是刀补程序和插补程序可以识别的数据流。它需要实现以下功能:
(1)语法检查:语法检查的任务主要是进行程序格式的检查。如查看同组代码段是否出现在同一行上,程序中括号是否匹配,控制关键字是否一致等。
(2)数据格式转换:将读入的程序行转化为加工块结构,并将从加工块中提取的运动信息按一定的顺序发送给刀补程序。
(3)控制结构处理:解释器需要根据具体条件选择合适的执行路径以实现预定的控制逻辑。
第四章虚拟机床CNC系统及插补指令的算法
Nc代码解释器的开发实现是在vc++软件平台上进行的,在执行某行指令前,需将该行指令中所包含的信息翻译到一个程序结构中,其数据结构定义如下:
typedefstructInterpolation{
CstringmCurGType://当前G指令的类型
Cstringm_CurMType://当前M指令的类犁
doublemdEndX,m_dEndY,m_dEndZ;//当前G代码中的数据信息(点坐标)
doublemdRadiu//当前G代码中的数据信息(圆弧半径)
intmIh://选择哪个原点,默认是第一个
intnl|{孔具号
intm_iF,m_iS://进给速度、主轴转速
}:
Nc代码解释器流程图4-3所示。
否
是
图4_3Nc代码解释流程图
第四章虚拟机床CNC系统及插补指令的算法
基于Pc机的数控系统是数控系统发展的趋势,Pc中有丰富的软硬件资源,具有很大的灵活性。该系统就是利用了Pc机中软硬件资源实现的,它采用标准Pc硬件,利用了现代操作系统的虚拟内存管理特性,多任务特性以及vc++语言的可移植性和强大的表达功能,实现了对G代码各项功能进行解释,全部代码用标准vc++语言写成,具备良好的开放性和跨平台特性。在数控系统中,将解释器作为一个线程,它通过共享内存和其它线程交互,具有良好的模块化特性,结构简单,功能强,效率高“”。
4.3插补指令的算法
在机床的实际加工中,被加工工件的轮廓形状千差万别,各式各样。严格来说,为了满足几何尺寸精度的要求,刀具中心轨迹应该准确地依照工件的轮廓形状来生成。然而,对于简单的曲线,数控装置易于实现,但对于较复杂的形状,若直接生成,势必会使算法变得很复杂,计算机的工作量也相应地大大增加。因此,实际应用中,常常采用--+段直线或者圆弧去进行逼近。具有直线和圆弧插补功能的CNC系统,通过零件加工程序得到直线的起点和终点,或者圆弧的起点、终点,顺时针圆弧还是逆时针圆弧以及圆心相对于圆弧起点的偏移量,以及轮廓进给速度和刀具参数。所谓插补就是指数据密化的过程。插补的任务就是在一段零件轮廓的起点和终点之间,计算出若干个中间点的坐标值。由于每个中间点计算所占用的时间直接影响系统的控制速度,各中间点的计算精度将影响零件的加工精度,所以插补算法对CNC系统的性能指标至关重要。可以说插补程序是CNC系统控制软件的核心。
4.3.1运动轨迹的插补原理
机床数控系统的轮廓控制,即怎样控制刀具或工件的运动轨迹,是通过插补实现的,插补程序的运算时间和计算精度影响着整个CNC系统的性能指标。“。插补原理在数控技术中的位置不言而喻。插补的任务就是按照进给速度的要求,在轮廓起点和终点之间计算出若干中间点的坐标值。
插补是计算机数控中最重要的计算任务。插补计算又必须是实时的,即必须在有限的时间内完成计算任务。因此,人们一直在努力探求一种简单而有效的插补算法。目前使用的插补算法有两大类:一类是脉冲增量插补;另一类是数据采样插补””。
(1)脉冲增量插补,主要为各坐标轴进行脉冲分配计算。其特点是每次插补的结束产生一个行程增量,以一个脉冲的方式输出。这种插补方法控制精度和进给速度较低,主要应用在以步进电机作为驱动装置的开环控制系统
第四章虚拟机床CNC系统及插补指令的算法
中。脉冲增量插补算法中较为成熟并得到广泛应用的有:逐点比较法、数字积分法(DDA)和比较积分法等。
(2)数据采样插补,又称时间标量插补或数字增量插补。它的特点是计算出插补周期内各个坐标轴的增量值,适用于交流电机伺服驱动的数控系统。插补程序计算出增量值后,还需继续算出跟随误差和速度指令,输出给伺服系统。一般而言插补周期和位置采样周期一致,也可以不一致。通常插补周期是采样周期的整数倍。采用数据采样插补算法后,插补程序的时间负荷已不再是限制进给速度的主要原因,速度上限将取决于圆弧弦线误差以及伺服系统的特性。
4.3.2空间直线插补算法
逐点比较插补法仅在平行于x轴、Y轴的方向上运动,函数简单,执行速度快,但插补精度不高”“。数字积分法可灵活的实现各种函数的插补和多坐标直线的插补,但是由于溢出脉冲频率与被积函数值大小有关,所以存在着速度调节不便的缺点。比较积分法则集逐点比较法插补和数字积分法插补与一身。能够实现各种函数和多坐标插补,且插补精度高,直线插补误差小于1个脉冲当量,易于调速、运算简单。因此本系统采用比较积分法实现对直线的插补。
(1)比较积分法原理
设有已知直线方程
Y="reX
Xe(公式4--1)
求微分,可得
孚:丝d]cx。(公式4-2)
由矩形公式求积,可得
x-Iy-I
∑Y。=∑t
l=O(公式4-3)j=o
此式表明,X方向每发一个进给脉冲,相当于积分值增加一个量儿;Y方向每发一个进给脉冲,积分值增加一个量t。为了得到直线,必须使两个积分值相等。在时间轴上分别做出轴与轴的脉冲序列,如图4-4所示。
第四章虚拟机床CNC系统及插补指令的算法
X
.A、,足、,A、,A、.^
t
。
Y
A、,A、,A、.A、,A.
t
.
P曰d—d
古姥艋^k的暗)dI席葡f
把时间间隔作为积分增量,x轴上每隔一段BONy。发出一个脉冲,就得到一个时间间隔y。:Y轴上每隔一个时间t发出一个脉冲,就得到一个时间间隔t。当x轴发出x个脉冲后,有
∑Y。=Y。+儿+儿+儿+..…
同样,当Y轴发出Y个脉冲后,有
y-]
(公式4—4)
∑t=工。+以+t+t十¨…
i=o
(公式4-5)
要实现直线插补,必须始终保持上述两个积分式相等。因此,参照逐点比较法,这里引入一个判别函数F,令
x-i
v-i
F=∑Y。一∑t
若x轴进给一步,则
Fl“=F:+Yc
(公式4-6)
(公式4—7)(公式4—8)(公式4-9)
若Y轴进给一步,则只“=E—X,
若X轴和Y轴同时进给,则
C+l=只一工。+儿
根据F可以确定两轴的脉冲的分配关系。下面介绍用比较积分来实现空间直线的插补。
(2)空间直线插补
设一空间直线的起点坐标为(O,0,O),终点坐标为(t,以,z。),根据比较积分法原理,若X轴是三个坐标中脉冲间隔最小的,则取X轴为基准轴,分别在xY平面和xZ平面内作判别函数。
E+.=F—t+咒C“=E—x。+z。
在xY平面上根据判别函数F,有F≥0,则x、Y都进给一步F<0,则x进给一步,Y不进给
(公式4—10)(公式4一11)
第四章虚拟机床CNC系统及插补指令的算法
在xz平面上根据判别函数F,有
F’≥0,则x、z都进给一步
F’<0,则x进给一步,z不进给
在xY和xZ平面上同时进行脉冲分配即可实现三坐标直线插补。
(3)程序实现及流程图
在程序实现中首先要判断哪一个坐标的增量值最大,保证增量大的坐标每次计算处理时都有进给,而其它坐标是根据插补计算确定有无进给,在进给时再判断迸给方向,进给后再修改计数长度,判断是否到达终点。本软件系统采用Vc++语言编制直线插补程序,实现对空间直线的插补。下面是该算法的部分程序。
VoidChaBuOneLine0//空间直线插补函数
{
//终点判别
intwhich://标记坐标值最大的坐标方向
BOOLFlagX,FlagY,FlagZ;//确定每次进给时的运动方向,为1时intCount:double
double//表示正方向进给,为0时表示负方向进给Ex,Ey,Ez://记录坐标的增量绝对值Mx,My,Mz,Max://设置坐标积分器,Max用来与各方向的积
分值进
//比较,确定该坐标是否需要进给
if(Count<=O)return:
switch(which)//判断哪个坐标最大
{
case()://x坐标值为最大增量值
//x轴运动
//Y轴积分if(FlagX)move—xn():elsemove-xp0My+=Ey;
If(My>=Max)
{
My-=Max://Y轴各分值大于最大增量值
If(F1agY)move—yn0:
elsemove—yP()://Y轴运动
//z轴积分}Mz+=Ez:
If(Mz>=Max)
{
Mz一=Max://z轴积分值大于最大增量值
0://z轴运动If(FlagZ)move—zn():elsemove—zp
}
第四章虚拟机床CNC系统及插补指令的算法
Count——:
Break:
case1://y坐标值为最大增量值if(FlagY)move—yn0:elsenlove—YP()://Y轴运动Case3:
If(FlagZ)move—zn0:elsemove—zp0://z轴运动}
Return;
}
空间直线插补的软件流程图见图4—5所示。图4-5空间直线插补软件流程图
第四章虚拟机床cNc系统及插补指令的算法
4.3.3圆弧插补算法
目前常用的圆弧插补方法有逐点比较法、最小偏差法““、数字积分法等,就插补的精度而言,最小偏差法的插补精度最高,但用最小偏差法编程时,要根据网弧的顺逆、所在象限的不同而采用不同的公式来编制各自的子程序;插补时,要根据所给原始数据判断圆弧的顺逆及所在的象限,以便调用相应的子程序。另外,当圆弧跨象限时,需要用坐标变换或将圆弧分段,使每一段圆弧只位于一个象限内,这必将增加程序的运行时间,同时由于基于最小偏差法要进行多次的偏差计算及比较,这都影响了程序的执行速度。本系统以最小偏差法原理为插补算法,将四个象限的插补公式统一化,进行统一编程,从而提高了插补的精度和程序的运行速度。
(1)偏差判别函数
Y
O
X
图4-6第一象限圆弧
当圆弧位于第一象限内时(如图4-6所示)。设半径为R,圆心在原点,圆弧起点坐标为S(‘,只),终点坐标为E(J。,儿),当插补第n步时插补点为只(J。,y。),则第n+l步将有两个可能的插补点B(Xn,y。+1),C(x-1,Y。)它们与理想圆弧的径向偏差分别为
△口:k+眈+1)2划I(公式4-12)
(公式4-13)△c:k—1)2+z一月z}
建立偏差判别函数:
‘=z:+y:一R2
y¨2y。(公式4一14)当只≥0时,△C≤AB,下一步沿一X方向进给到c点,矗+l=J。-I,
E+l=C一2工。+l(公式4—15)当只<0时,△C>AB,下一步沿+y方向进给到B点,_+。=Xn,y。+l=y。+1
只+。=E+耖。+1
嚣(公式4一16)
第四章虚拟机床CNC系统及插补指令的算法
对于圆弧起点s(as,Y,),由于《+Z=R2,可得
Fo=一‘+以+l
(公式4—17)
依此类推,可得四象限圆弧插补的计算公式,见表4-1和表4-2所示。
象限第一象限
第二象限
dx=d。一2x。+ldy=d。一2y。+1
第三象限
dr=d。q-2x。+1
第网象限
dx=d。+2x。+ldy=d。+2y#+1
出=屯一2x.+1
偏差计算
dy=d。+2y。+1
咖=d.一2y。+1
Ad=ldy|_l刮
削别条件进给方向
膏^“
Ad=IdyI-l叫
△d≥0
一y
Ad=ldyLI刮
△d≥O
+X
6d=I别一I剥
Ad≥0
+y
Ad≥0△d<0
+,
△d<O△d<0
—y
△d<0
+J
X。一1y一
‘
Y。+1
‘一1
yn
‘
Y。一1
‘+1
y一
‘
Y。一1
‘+1
y一
‘
Y。+1
Y^+1
d。“dr
咖
dx
咖
dx
咖
dx
砂
表4.2顺圆弧插补计算公式表
簸阻
第一象限
第一象限
dr=d。+2x。+tdy=d。+2y。+l
第三象限
第凹象限
出=d。+2x。+l
偏差计算
出=d。一2xn+1
dy=d。+2y。+1
dr=以一2x。+1
dy=d。一2y。+1
咖=d。一2y。+l
△d=I别一I别
判别条件进给方向
甜=fdy。-I剁
△d≥O
+y
Ad=I砂LI刮
△d≥0
一z
Ad=ldyL捌
△d20
一,
甜≥O
+工
埘<0
一y
△d<O
+工
△d<0
+y
△d<O
%“
YH+1
‘+1
y一
‘
Y。一1
以
Y。+l
X.+1J。一1y一
‘
Y。+1
X^
‘一1
Y。+1
虬Y。一l
d^+ldr
咖
出
咖
dx
咖
dx
咖
(2)插补公式的统一
从表面上看,四个象限的插补公式各不相同,但仔细研究发现,四象限偏差计算公式只是某些符号不同,总结这些公式的规律,可采用如下解决方式:
构造一个取符号函数:
@>o)1
J
劬∽=
.H∞一,
O=o)}
(公式4—18)
@<o)l
第四章虚拟机床CNC系统及插补指令的算法
根据起始点坐标,利用取符号函数取出起点坐标的符号,就可以自动决定迸给方向,所用插补计算公式也就自动决定,而不需要判断圆弧所在象
限。
设符号判别参数S。和s。,对于顺圆弧有
S。=sf『gn(y,)S。=一sign(x,)对于逆圆弧有
(公式4-19)(公式4-20)
S。=哪切O,)
S。=sign(x,)
这样,可得四个象限的统一插补公式为:
(公式4—21)(公式4-22)
lt=di+2&?■+1{d,=dt+2%’乃+1
(公式4—23)
p=川一川
进给方向为:
sⅡx
(△d≥0)
Sy,y(Ad<01可得坐标计算公式:
卜弘城l(甜>o)
【Yl+1
2Yi
(公式4—24)
J
0竺贡麓}c酣删
Y,=0,对于起点s2%us4,都有‘=0、y,≠0。
(公式4-25)
这里的符号函数仅考虑起点落在象限内的情况,对于起点在坐标轴上的情况,作如下处理(如图4—7所示):对于起点S。%us,,其坐标都为‘≠0、
Y
L
Y
s2
s2
S1
f
o
S1
x
s4
.
f
S1
o
SI
JI
x’
s4
(a)逆圆弧插补
图4-7起点在坐标轴上的符号参数定义
(b)顺圆弧插扑
帅
第四章虚拟机床CNC系统及插补指令的算法
根据插补方向可知:当圆弧为逆时针方向时(图4—7a),S.归于第一象限,s:归于第二象限,s,归于第三象限,S。归于第四象限;当圆弧为顺时针方向时(图4—7b),S。归于第四象限,s:归于第一象限,S,归于第二象限,8。归于第三象限。因此,可将符号参数扩展为:
对于逆时针圆弧:
驴。-唰sign(yt,;爱嚣
&=№-agn。(只x,;爱嚣
对于顺时针圆弧:(公式4—26)(公式4-27)
耻{篡:)%,竺)}
&={=裁;墨舞
全部进行了统一。
(3)过象限处理和插补终点判断(公式4—28)(公式4-29)至此,四象限圆弧插补并包括起点在象限边界上的情况,其插补公式已
由以上分析可知,无论是顺圆弧还是逆圆弧,在x轴两侧的x坐标进给方向相反,符号参数S。相差一个符号,而Y坐标进给方向相同,s。符号保持不变;在y轴两侧的Y坐标进给方向相反,符号参数S。相差一个符号,而y坐标进给方向相同,s。符号保持不变。由此可得出结论:对于跨象限的圆弧插补,插补点每经过一次x轴,x坐标进给方向改变一次,符号参数s。改变一次符号;插补点每经过一次y轴,y坐标进给方向改变一次,符号参数s,。改变一次符号。用公式表述如下:
当x=0时,S。=一Sy,;当Y=0时,S。=-S。;
插补的终点判别采用直接比较当前点坐标与终点坐标的方法,具体的终点判_jj0条件为:
xl—xt=0tYi—yc=0
式中,‘、Yt为当前点坐标,X。、Y。为圆弧终点坐标。
由于终点的判别将降低插补的速度,所以对圆弧跨象限时,没必要每走一步都进行终点判断,而只是在当前点与终点在同一象限且终点又在当前点前方时才进行终点判别。仿照起点S的符号判别参数构造终点E的符号判别参数s。、s。为:对于逆时针圆弧:
第四章虚拟机床CNE系统及插补指令的算法
蜘弋慧之器焱
&=骺器譬舞
对于顺时针圆弧:(公式4-30)(公式4—31)
&=。s。劬ign。(ty,;爱:斟
跌=-sign(xl’。譬鲫
条件。(公式4-32)(公式4—33)这里,当s。=-S。与S。=S。作为测试当前点与终点是否在同一象限的
判断终点是否在当前点的前方,需要引入从当前点到终点的矢量P,其在x、Y轴的分量为只、只,如果只、只的方向与当前点所在象限的插补方向分别相等,则表明终点在当前点的前方。定义符号判别参数如下:
S,=sign(x,一葺)
S”=sign(y,一Yf)
的前方的条件。(公式4-34)(公式4—35)这里,当S。=%与s。=S,作为测试从插补方向看终点是否在当前点
因此,判断终点判别的条件为:S。=S。,S。=Sy,,S。=&,S。=S。同时成立。
(4)程序实现及流程图
在程序实现中首先要判断圆弧所在的平面,这里定义圆弧起点和终点时已把其转换为XOY平面内的圆弧。下面是该算法的部分程序。
voidChaBuOneArc()(//圆弧插补程序函数
doubleXs,Ys,Xe,Ye://定义圆弧的起点和终点
//记录偏差函数及最小偏差
//定义起点符号判别参数
//定义终点符号判别参数
//定义当前点符号判别参数doubleX=Xs,Y=Ys:doubledx,dy,Dxy:intintSxs—sign(Y),Sys=sign(X):Sxe=-sign(Ye),Sye=sign(Xe):int
intSxp2sign(Xe—X),Syp=sign(Ye—Y):chaBucurVeType://定义圆弧顺逆类型,顺圆弧为l,逆圆弧为2
//记录圆弧类型标志,顺圆弧为0,逆圆弧为1
Flag=l:BOOLFlag;If(ChaBuCurVeType==2)Flag-=();else
if(Flag==O)
第四章虚拟机床CNC系统及插补指令的算法
{Sxs=-Sxs:Sys=一Sys:
Sxe=一Sxe:Sye=-Sye://符号判别参数取反)
if(Sxs==O)Sxs=一sign(x):
if(Sxe==O)Sxe=sign(Y):
if(Sye==O)Sye=sign(Ye):
Loop;
dx=d+2半Sxs术X木step+step木step:
dy=d+2謇Sys丰Y木step+step车step://插补点在Y轴上时if(Sys==O)Sys=一signfY)://插补点在x轴上时
Dxy=fabs(dx)一fabs(dy):
if(fabs(X-Xe)<step)8&fabs(y-Ye)<step)return://插补完毕,退出elsegotoLoop;//继续循环插补
)
四象限圆弧插补编程的流程图如图4-8所示。图4-8四个象限圆弧插补程序流程图
第五章加工仿真中的求交算法
第五章加工仿真中的求交算法
数控加工仿真中的核心问题就是加工过程中的图形模拟、加工过程以及加工后零件的检验效果。而加工仿真中的几何建模是本系统的核心问题之一,加工模型是否恰当对整个系统工作的效率和性能起着决定性的作用。
在本系统中,加工仿真中的几何建模主要集中在三个部分:毛坯体建模、工件体建模和刀具体建模。其中毛坯是加工对象,工件是加工目标,刀具是加工工具。加工仿真就是模拟实际过程中刀具体沿着刀具轨迹切削运动的过程,计算刀具运动产生的包络体与毛坯体的布尔减,从而实现了切削过程的模拟。在这个过程中,随着毛坯体不断被切削,毛坯体不断接近工件体,最终不断接近乃至达到加工目标。
5.1工件、刀具和毛坯的几何建模方法
加工仿真中的几何建模技术是随着几何建模技术的发展而发展起来的,它包括定性的图形显示与定量的数据测量两个方面。按物体几何模型的复杂程度不同可分为线框模型、表面模型、实体模型、基于图像空间模型和离散矢量模型。前面章节已经介绍了线框模型、表面模型和实体模型,这里就不赘述了。下面介绍基于图像空间模型和离散矢量模型
5.1.1基于图像空间建模
图像空间建模方法是使用类似图形消隐的z—buffer思想,将工件和刀具按屏幕的像素离散为z—buffer结构,切削过程简化为沿视线方向上的一维布尔运算…。它根据平行透视原理,将视线方向与屏幕垂直,沿视线方向将毛坯和刀具离散,使计算机屏幕上的每一个象素点都对应唯一的一条视线,刀具切削毛坯的过程中,从屏幕上发出的某一条视线与工件体或刀具体如果存在交点,则利用这些交点将工件体和刀具体沿着视线方向离散,由于将工件和刀具赋予了不同的颜色,这些交点在屏幕上显示的就是这个象素点处的颜色。我们看到的是窗口坐标下z坐标值最大的那个交点的颜色值,其他交点都被覆盖了,这样在屏幕上就表示出它们的位置关系。每次切削完成后要根据切削情况修改工件的几何数据。
利用图像空间离散思想,VanHook…1对其数据结构和算法作了改进,将实体按图像空间的像素(pixel)离散。在每一个屏幕像素点上,将刀具和毛坯表示为一个长方体单元,并把它称为nexel结构,这样,刀具切削毛坯的过程就变为两套Dexel“”结构的比较问题,具体的算法如下(如图5-1所示):
第五章加工仿真中的求交算法
(1)只有刀具,显示刀具;
(2)毛坯遮挡刀具,显示毛坯;
(3)刀具切削毛坯后部,更新毛坯的Dexel结构,显示毛坯;
(4)刀具切削毛坯中部,更新原Dexel结构,创建新的Dexel结构并连接在原Dexel后,显示毛坯;
(5)刀具切削毛坯前部,更新毛坯的Dexel结构,显示刀具;
(6)刀具遮挡毛坯,显示刀具;
(7)只有毛坯,显示毛坯:
视向
图5-1Dexel结构方法说明
这种算法计算量小,实时性好,仿真中的显示效果也比较好。但该算法也有很大的局限性。由于当视点确定后,算法的数据结构也就确定了,如果想改变视点从另外一个方向来观察时,则需要重新计算数据。它是采用计算机屏幕作为基准面,所以它将完全依赖于视图。在建模的同时,只是记录了工件、刀具等在屏幕上的位置关系,并没有任何零件的几何信息,所以导致仿真结果的非连续性,无法对仿真结果进行旋转、平移、缩放等操作。另外,在求Dexel结构时,视线与毛坯求交的位置不同,有可能出现错误情况。同时,Dexel网格的密度也决定了仿真显示的精度,所以若采用均匀分布的Dexel结构可能导致因像素划分而形成的工件表面不均匀,影响加工仿真的结果。美国的VERICUT数控仿真软件即采用了此方法。
5.1.2离散矢量建模
由于实体建模方法需进行大量的布尔求交运算,而基于图像空间的方法无法对加工结果进行旋转、放缩等操作也无法进行精确的误差检验。针对以上缺陷提出了离散矢量建模方法,这种方法最早源于Chappel提出来的一种“点一矢量”法。离散矢量建模方法的原理如图5—2所示““。
将零件表面按照一定的方式以一定精度进行离散,用这些离散点来代替曲面,计算每一个离散点在原曲面处的法矢,从该点沿法矢方向的直线与所
第五章加工仿真中的求交算法
定义的毛坯边界或与零件别的表面相交,交点与原离散点之间的距离的最小值为该离散点法矢的初始长度。仿真计算时,从该离散点出发并沿该点法矢方向的直线与刀具运动形成的刀具包络体相交,如果交点到离散点的距离小于原来的法矢长度,则用交点距离代替原来的法矢长度,否则保留原来的法矢长度值。这样重复这个求交过程直到刀具切削加工完成,通过这些离散点的矢量值不断减少来模拟仿真加工过程中刀具切削毛坯体的材料去除过程。
(A)(B)
图5-2离散矢量法
通常,采用三角片或四边片将这些毛坯法矢的终点依次连接,重构出加工表面,进行加工仿真显示,显示毛坯和加工的结果。显示的原理与真实感图形显示原理相同。
采用离散矢量建模方法的仿真加工过程实际上就是刀具扫描体与毛坯体的求交及毛坯体的数据更新过程。因此,采用一定方式离散出的用于求交计算的数学模型成为此法的关键。而建立此模型存在着一个仿真精度与仿真速度的矛盾“”。一般来说,当采用较高的离散精度时,就可以取得比较好的仿真显示效果,但同时会产生复杂的数据,从而影响仿真的速度,这里离散精度是指所选离散点的疏密程度。此外,离散矢量法的误差主要是跟离散点的疏密程度有直接关系,所以离散方式的选取对于此法有很重要的作用。早期,Chappel提出了在零件表面上均匀选择一组点作为毛坯离散点进行计算。在1990年,01iver结合了图像空间的方法,提出利用图像空间投影的方法来获得离散点。Jerard提出的一种离散矢量方法则综合考虑了精度、刀具尺寸与形状及零件表面的曲率等因素,在离散曲面上来选取离散点,是一个较好的离散矢量建模方法。离散矢量建模方法可用于对数控机床3轴到5轴的加工仿真。这种建模方法计算精确,易于进行加工的检测。但这种方法需要精确计算刀具扫描体,然后再计算离散矢量与刀具扫描体的求交。这些运算比较复杂,尤其对于4、5轴的加工仿真,刀具的运动不只是一种平动,还有刀轴的摆动,刀具运动的包络体和求交计算都十分复杂。所以,离
第五章加工仿真中的求交算法
散矢量与刀具扫描体的求交算法的效率是提高整个系统运行速度的关键因素。
离散矢量建模方法的时间复杂度和计算精确度可以通过控制离散精度的大小来实现。同时整个计算过程都是在同一数据模型空间下完成,不会产生依赖于计算机屏幕的问题,可观察性与零件几何连续性都较好,因此被许多仿真软件所采用。本系统也采用了此方法。
5.2毛坯体与刀具的几何模型
5.2.1毛坯体建模
图5-3用矩阵网格表示上表面
如图5—3所示,加工中心在进行三轴加工时,刀具在X轴、Y轴和z轴产生移动,被加工的毛坯可视为立方体。将毛坯的上表面表示成坍>n的矩阵网格,每个交叉点称为节点,其x坐标和Y坐标是固定不变的,改变的是它的深度(z坐标),在仿真过程中,通过不断地改变节点的深度来表达毛坯被加工的实际情况。增加m和n可加大矩阵网格的密度,以提高仿真精度。但是随着精度的提高,执行速度也会降低,而且由于受计算机显示器象素的限制,当网格密度超过象素的密度时,对仿真结果影响不大。
如果实际的毛坯表面尺寸为a×b,采用m>n的网格划分,可定义系统误差6=nla)【f旦.一b1来衡量仿真精度。\肌以/
5.2.2刀具的几何模型
铣刀在加工过程中高速自转,但其平动却较缓慢,因此可将铣刀高速自转时的形状认为是铣刀的真实形状。如图5-4所示,为最为常见的三种铣刀形状。
第五章加工仿真中的求交算法
㈢叫睹
(b)(c)
图5-4常见的铣刀形状
如图5_4所示,a是半径为R的球头刀,刀心为球心;b是平底刀,为圆柱体,刀心为底面圆心;c是圆鼻刀,由半径为r的圆绕刀心以R为半径旋转而成。实际上是个圆环面的一部分。
铣刀的运动轨迹是由直线段组成的,每一段由刀心的起点和终点来描述,计算机隔△t时间计算一次铣刀在此时间中的运动轨迹,修改铣刀所经过的节点的深度,并重新构成当前毛坯的形状,显示结果,整个仿真过程就是一个计算机不断计算、修改节点深度的过程。如何准确、快速地计算修改节点深度,是决定实时仿真效果好坏的关键。
5.3求交算法
5.3.1节点的筛选
在一个△t时间间隔中,铣刀走过了一段直线距离,只有那些位于轨迹面上的节点才考虑对其深度的修改,称这些点为修改点。显然,在一次计算中,修改点只是所有节点的一小部分,因此,首先要识剧哪些是修改点。
铣刀走过一段直线,其轨迹面在x—Y平面上的投影为矩形和两个半圆合成的区域,为了计算简单,可以平移变换坐标系,如图5—5所示。
Y
R
厂弋、j
\5/。/’。、!
.r、、一8/’
_R
图5-5轨迹面X-Y平面上的投影档
第五章加工仿真中的求交算法
其中,S是铣刀起点在X-Y平面上的投影,E是铣刀终点在X-Y平面上的投影,s与E之间的距离为2L,原点是S与E的中点,对任意节点P(X,Y),满足以下条件之一则其成为修改点:
(1)-R≤Y≤R
(2)一R≤Y≤R
(3)一R≤Y≤Rand—L≤X≤L:andandlPSlsR;lPEl≤R;
5.3.2修改点的深度计算
在以下的论述中,e(x,Y,z)是修改点,它的z坐标称为深度,s(x,Y,z)和剧kY,z)分别是刀心的起点和终点,n是平行于sE的单位向量,即刀的移动方向。
(1)球头刀的求交算法
球头刀的轨迹面由一段圆柱面和两个球面相切而成,如图5-6所示,对于一个修改点,要修改其深度.就必须明确地知道它究竟是落在中间的圆柱面上还是两头的球面上,然后做相应的深度修改。
面
图5书球头刀轨迹面纵剖图
设PG,Y,z)是一个修改点,它的X,Y坐标是已知的。圆柱面sE的方程为:
ICr—s)?nI=R
S+tn,t是参数(公式5-1)将P代入后可以得到P在圆柱面上的坐标,直线SE的参数方程为(公式5-2)将解出的P代入方程陋+m)一卅.n=0,可以算出参数t,此时有
a.t<0,则P点处于轨迹面起点处的球面上,由方程p一别=R解出P点的深度z;
第五章加工仿真中的求交算法
b.0≤t≤SE,则P点处于轨迹面中的圆柱面上,不需要重新计算深度;
C.t>SE,则P点处于轨迹面终点处的球面上,由方程p一驯=刚辑出P点的深度Z;
(2)平底刀的求交算法
平底刀的轨迹面有这样一个性质:被平面Z=Z。所截,是一个半径为R的圆,如图5-7所示。
圈5-7平底刀轨迹面纵剖图
设sE与X--Y平面的夹角为0,修改点为PG,y,z),则
a.若P与s的水平距离小于R,P的深度应该为与S一样;
一一
b.若P与S的水平距离不小于R,那么由方程l(P—s卜兰;≥.nI=R,smHII可以得出P的深度z。
(3)圆鼻刀的求交算法
圆鼻刀的轨迹是三种刀中最为复杂的一种,它实际上是一个圆环运动的包络面的一部分,在圆环上,法方向与x垂直的曲线构成了轨迹面的母线,设圆环中心在原点,则圆环方程为,=,@,卢)
=}
k钞、=∽嗽廿叫P||l邮,+咄明仞∞幽Ⅲ(公式5—3)
圆环上的点在母线上的条件为n?(名,rp)=0,
即Ⅳ?(C08口?cos],,sinor?cosfl,sinp)=0,
所以,母线方程为
fx=【(胄一r)+rcosfl】?COSa
z_,s卢l(公式5—4)忪鼬。4’,.{y2KR-:r:)+,srco卢sin卢卜8讪口}fn1
【n?(cosor?cos/,,sjlla?cos],,sin卢)=0J
第五章加工仿真中的求交算法
轨迹面方程为,=l+tn,t是参数,n=0,b,c)
X=【(R—r)+,cos卢】?COSa-ta
Y=【(R一,)+,cos卢】?sina一曲
z=rsinB—tc(公式5-5)
cos口?cosfl+6?sina?cosfl+c?sin8=O
为方便计算,将起点s置于原点,如图5-8所示。
毛坯表面
I—下疆I,、|,
.?一./W平Ⅱ
R~‘:夕’
图5-8圆鼻刀轨迹面纵剖图
对任意修改点P(J,y)坐标已知,修改其深度时要特别注意在轨迹两头的修改,具体算法如下:
Stepl.若P和s的水平距离小于R,则分别利用圆环方程和轨迹面方程得到两个深度值,P的深度取最深的一个(即Z值最小的那个);
Step2.若P和E的水平距离大于R,则分别利用圆环方程和轨迹面方程得到两个深度值,P的深度取最浅的一个(即Z值最大者);
Step3.若非情况Stepl和Step2用轨迹面方程得到P的深度Z;
5.4实例结果
如图5—9所示,是球头铣刀切割后的结果。毛坯的尺寸是lOOmm×lOOmm×50mm,矩阵网格为512x512,系统误差为6=O.0001953mm,在图中可以清楚地看到两刀轨迹间的界限。
第五章加工仿真中的求交算法
图5-9球头刀铣削结果
图5-lO轨迹面的局部细节
图5-10是图5-9的局部放大图,显示了铣刀轨迹面的局部细节。
由于矩阵网路只是构建了物体的“骨架”,要想在计算机上使物体具有真实感,还需考虑光线的处理。对每一个节点,为其定义一个法向量,在修改节点深度的同时修改法向量的值,就可以在仿真中加入对光线的处理了。
在加工中心仿真中,除了对仿真的精度有要求外,还要能够随时对加工过程加以控制。在本算法中,改变矩阵网格的密度就可以提高仿真精度。对一般的需求512×512的网格密度已够用了。由于采用了矩阵}。4格表示加工工件,因此,对工件的放缩、旋转操作可以使用Or?enGL的矩阵变换函数,编程方面的处理,简单很多。
52
第六章工作总结与未来展望
第六章工作总结与未来展望
6.1工作总结
数控机床操作培训软件是在分析实际使用的数控机床的操作方式和编程原理的基础上,采用面向对象的结构化程序设计语言开发的一套用于数控机床实验教学的软件系统。本课题充分考虑了当前虚拟制造技术、数控加工仿真技术的发展。实践教学证明,该系统基本能满足用户对数控加工仿真系统的要求,为数控操作人员提供了强有力的辅助工具。目前该系统已经用于实际教学中,解决了数控教学设备不足的问题,取得了较好的教学效果。
具体来讲,课题工作主要集中在以下几个方面:
(1)构建了数控机床操作培训软件的总体结构,并对该系统的界面和主要模块的功能进行了总体设计。
(2)虚拟机床控制面板的构造
数控机床的类型各式各样,不同类型机床的控制面板结构和功能也不一样。本系统参考了本校已有的三轴加工中心,采用面向对象的程序设计思想,以VC++作为开发工具,构造虚拟机床的控制面板,虚拟面板上具有与真实机床类似的按钮、旋钮、开关、指示灯及其它控制部件,这些部件的功能可以用装载位图的按钮来构造,用户可以通过鼠标来操作虚拟面板。由于vc++控件具有封装性和继承性,因此虚拟机床的面板的设计具有开放性,容易实现控制面板的修改和扩充。
(3)虚拟机床的数控系统的仿真
由于各数控系统厂家制订的数控代码标准与国际标准不完全一致,我们在深入研究机床所配置的FANUC系统的基础上,在计算机内部实现了对FANUC系统常用功能的仿真。以FANUC系统为准对Nc代码进行解释,将其转换为本仿真系统能够识别并进行仿真的指令。该仿真系统提供了Nc代码编辑器,配合虚拟机床的控制面板,可以在编辑界面上手工编写Nc程序,并对其编辑、修改和调试,也可以读入由CAM软件编制的Nc程序,Nc代码编辑器可以对Nc程序进行检错,主要检查Nc代码的语法错误、非法代码和数字的使用等错误。
(4)实时地数控加工过程的动态仿真模型的建立
本系统实现了刀具运动的动画显示效果。在加工过程仿真中,系统根据毛坯几何信息和刀具运动轨迹信息实现刀具的运动,可以提供多方位观察方法和控制手段,可以多位置观察、旋转、缩放,可以实现单步、中断、停止和速度控制等仿真过程控制功能。
6.2未来工作展望
本仿真系统虽然较好的实现了设计者的意图,能够完成加工中心三维加工过程的仿真,由于时间和工作量太大等客观因素的影响,该系统的部分内容在设计时没有考虑完全,因此还存在一些不足,具体表现在以下几个方面:
(1)只实现了常用功能的仿真。
(2)只支持常用的数控指令。
(3)仿真中的图形显示效果不是很理想。
上述问题,说明该系统还存在不完善的地方,许多功能模块还有待进一步扩展。因此,下一步工作需要解决的问题有:
(1)仿真系统中采用离散矢量模型进行网格划分,网格划分细,则仿真数据量大,计算和显示的速度慢,网格划分粗,则显示效果差。因此,应该对该模型进行优化或重新选型,以提高仿真的速度。
(2)本系统的仿真模型比较简单,对于刀具、毛坯等都只是一种简化的模型,对于加工中的干涉和碰撞检查也进行了简化,而实际工作中的加工环境要相对复杂的多。因此本软件应该逐步实现与实际加工环境的不断接近,以便更真实地实现对数控机床加工过程的模拟。
(3)本课题只讨论了3轴的数控加工仿真,而对于4轴、5轴的仿真并没有涉及到。因为4轴、5轴的刀具体运动不仅包括刀具体的平移,同时还存在着刀轴的转动。这都构成了4轴、5轴仿真的困难。但考虑到未来5轴机床将逐步普及,而5轴机床比3轴机床更少,这将给教学和培iJll带来更严峻的问题,因此,继续深入研究本课题有很大的意义。
参考文献
[1]朱名铨,张树生等编著,虚拟制造系统与实现,西安:西北工业大学出版社,2001[2]卢继平,郑力等,虚拟机床建模与仿真,计算机集成制造系统,1999(3):21~24[3]张铁军,袁哲俊等,虚拟机床加工系统研究,制造技术与机床,1999(12):16--18[4]张铁军等,虚拟加工系统中机床结构的描述及实现,航空制造技术,2000(2):16~20[5]刘伟雄,数控加工理论与编程技术,北京:机械工业出版社,2000[6]王印芬,三维数控加工仿真的应用研究,北京航空航天大学硕士论文,2000[7]韩向利等,直线与刀具扫描体求交算法及其应用研究,计算机辅助设计与图形学学报,1997(2):123~129
[8]闰中飚,数控切削加工仿真研究与实现,北京航空航天大学硕士学位论文,2001[9]王启义等,基于虚拟制造的数控车nolo工仿真技术,大连铁道学院学报,2000(3):49~55
[10]CAD/CAMSolutions,—hte://M.CN—SYS.com/cad-cam.html,200—06—03
Conception
Conf,1978
ne[11]熊光楞,王昕,仿真技术在制造业中的应用与发展,系统仿真学报,1999(3):145~152[12]贾延林主编,模块化设计,北京:机械工业出版社,1993[133Y.Ito,Y.Yoshida.De.signofHierarchicalModularConstruction.Proc.ofInt.MTDR[14]DVragov.StructureAnalysisofMachiToolLayout,MachineandTooling,
1982(10)
[15]YSatio.Ylto,ComputerAidedDraughtingSystemforMachineToolStructures.Proc.ofInt,MTDRConf,1981
[16]杨润党等,虚拟数控加工过程的建模与仿真,机床与液压,2001(6):96~98[17]杨国哲,葛研军,王宛山,虚拟机床的建模研究,机械设计与制造,2002(3):53~54
[18]刀余勤科等,虚拟数控机床技术及其应用,制造业自动化,2001(9):14~16[19]葛敬霞等,虚拟切削加工系统研究,现代制造工程,2002(8):30~31
[20]韩明,模块化设计数控机床结构运动仿真系统的建模,组合机床与自动化加工技术,1999(3):8~1I
[21]罗圆智等,数控加工仿真系统的研究与实现,武汉化工学院学报,2001(2):64~66[22]桧祥翔,席平,数控加工仿真系统中刀具库的建立,机械工程师,2003(4):19~21[23]陈洪军等,组合夹具装配虚拟设计,机械设计与制造,2000(6):39~41[24]彭海涛等,数控加工G代码程序的仿真检查,软件天地,2001(3):56~59[25]张承瑞等,数控G代码解释器的设计与实现,山东大学学报(工学版),2002(6):564568
[26]钟对琳等,教学用数控插补仿真系统,机械设计与制造,2003(3):62~4M[27]任晓春主编,数控技术,北京:机械工业出版社,2001[28]朱建忠,吉训进,一种新的数控系统圆弧插补判别法,机床与液压,2001(5):87
[29]冯冰等,一种快速高精度的圆弧插补方法,广西民族学院学报,2000(3):197~199[30]
[31]
[32]毕毓杰主编,机床数控技术,北京:机械工业出版社,2000姚英学,蔡颖主编,计算机辅助设计与制造,北京:高等教育出版社,2002ByoungK.Choi.RobertB.Jerard.SculpturedSurfaceMachiningTheory
AndApplication.KluwerAcademicPublishers,1998
[33]赵继政等,基于图像空间的数控加工图形仿真,中国机械工程,1998(5):28~31[34]
[35]闫中飚等,基于留量模型的加工仿真技术,工程图学学报,2001(1):31~38高明,基于优化离散矢量模型的数据控加工仿真的研究与实现,北京航空航天大学硕
士论文,2002
[36]Olive.JH,eta1.directdimensionalNCverification[J].ComputerAided
Design,1990,22(1).3-9
[37]HsuPL.YangWT.Realtime3Dsimulationof3-axisnullingusingisometrk
projection[J].Computer
[38]AidedDesign,1993.25(4):235—243NCmachining
VisualKawashimaY,ItohK,eta1.Aflexiblequantitativemethodforverificationusingaspace—divisionbasedmodel[J].The
Computer,1991.7:149-157
[39]WangW.WangK.Geometricmodelingforsweptvolumeofmoving
ComputerGraphicssolids[J].IEEEandApplicationa.1986.6(12):8-17
simulation[J].[40]QiaoVongmei,ZhangDinghua,ZhangMiaoeta1.AreviewofNC
JournalofComputer-AidedDesign&ComputerGraphics,1995,7(4):3ll一315(inchinese)
[41]FangXiang,Peng
NCOunsheng.Thecutterenvelopesurfacecalculationofmulti—axismachining[J].JournalofComputer—AidedDesign&Computer
Graphics.2000.12(8):609—613(inchinese)
[42]闰中飚,数控切削加工仿真研究与实现,北京航空航天大学硕士学位论文,2001[43]张承瑞等,数控G代码解释器的设计与实现,山东大学学报(工学报),2002(6):564—568[44]裴仁清主编,机床的微机控制技术,上海:上海科技文献出版社,1990
ByongK.Choi。Robert[45]B.Jerard.SculpturedSurfaceMaching-TheoryAndApplicatiomKluwerAcademicPublishers,1998
[46]VanHook.Tim.Real—timeShadedNC砒lingDisplay.Computer
Graphics,1986(4):15—22[47]王庆霞,集成环境下Nc加工的图形仿真技术研究与实现,CAM与数控加工
攻读硕士期间发表的论文
张霞,何平.交互式数控实训仿真软件的应用.职业教育研究,2005(12)CNl2—1358/G4ISSN1672-5727
致谢
本论文是在导师冯志勇教授的悉心指导下完成的。感谢冯老师在学业上给予我莫大的关怀和帮助,冯老师广博的专业知识和丰富的实践经验、谦和,踏实的处世态度、不懈奋斗的精神都给我很大的启迪,并将使我终生受益。值此论文完成之际,谨向导师致以最深切诚挚的谢意。
在论文撰写期间,上海宇龙公司的刘进博士给予了热情的支持和指导。同时,感谢天津工程师范学院课题组其他成员的大力支持和帮助,在此一并表示衷心的感谢。
感谢天津大学电信学院袁老师儿年来的关心与帮助。
感谢作者所在的工作单位大港职成教中心的领导和同事在本人在读期间给予的支持和帮助。
真心、真诚地感谢养育我、关爱我、寄厚望于我的父母,他们无尽的关怀、长期的激励是我克服困难、不断进取的动力源泉;感谢我的同学在论文撰写期间给予我的帮助;感谢他们对由于我的工作和学习而长期奋不顾家对他们所造成的亏欠所做的理解。谨以此学位论文献给他们。
最后,衷心感谢所有在我学列期间曾经帮助、鼓励和关心我的朋友们。并对各位专家在百忙当中审阅并评议我的论文表示由衷的感谢。58
寒冷的十二月悄悄地来临了,我们班级为期两周的数控车床编程与加工实践教学课程也开始了。南昌这个地方的十二月虽然,十分的寒冷,我们学院…
数控车床实习报告前言机床是人类进行生产劳动的重要工具也是社会生产力发展水平的重要标志普通机床经经历了近两百年的历史随着电子技术计算…
数控机床实训报告班级:现代系数控1001姓名:前言数控机床是人类进行生产劳动的重要工具,也是社会生产力发展水平的重要标志,数控车床…
《数控机床操作》实训报告姓名***学号班级机器人2班指导教师实训时间20XX年4月制目录第一节实训前的准备工作1第二节实训安全操作…
摘要数控机床是数字控制机床Computernumericalcontrolmachinetools的简称是一种装有程序控制系统的自…
机电一体化(数控机床)实习报告时光如流水,二周时间转眼即逝,为期二周的实习给我的体会是:①通过这次实习我们了解了现代机械制造工业的…
数控机床实训报告班级:现代系数控1001姓名:前言数控机床是人类进行生产劳动的重要工具,也是社会生产力发展水平的重要标志,数控车床…
实训报告系(院、校区):学生姓名:学号:专业:题目:模具数控加工技术实训报告指导教师:职称:20xx年x月x日模具数控加工技术实训…
数控车床实训报告总结1、实训目的要求(1)、对各典型零件进行工艺分析及程序编制,能熟练掌握较复杂零件的编程。(2)、对所操作的数控…
近年来,随着计算机控制技术的发展,数字控制技术已经广泛应用于工业控制的各个领域,尤其是机械制造业中,由于数控化加工可以让机械加工行…
河南机电高等专科学校系部:专业:班级:学生姓名:学号:数控实训报告实训报告在大学的最后一段时间,我有幸参加了数控实训。通过这次学习…