




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
171721YNY图1等间率直线逼近的流程给定曲线峋姻瘀点,步长s,结束"X系数a,b,f允许误差v过起点作与切线平行NYNY图1等间率直线逼近的流程给定曲线峋姻瘀点,步长s,结束"X系数a,b,f允许误差v过起点作与切线平行N直线,求出直线与曲线的交点,则另一旁点(x(1),y(1))为插*欧2,等曲!熊血曲漏屈g补点3.2算法的解析3.2.1等间距直线逼近等问距直线逼近是最简单的方法,已知椭圆方程2x~2a2土1,给定第一点b2x2(x(0),y(0)),间距步长△*0.1,求出为,将为代入—a2yb21即可求得一系列yi0K、yi即为每个线段的终点坐标,并以该坐标值编制直线程序段(图 3)图3等间距直线逼近根据M(x(0),y(0))、N(x(1),y(1))两节点的坐标可求得如图3所示的逼近误差,方法如下:MW程:y=kx+c,则直线MNB斜率为k^1^(3-1)x(1)x(0)将Mx(0),y(0))代入MW程:y=kx+c,求得c=y(0)-kx(0) (3-2)利用椭圆参数方程x=aCos(i),y=bSin(i), 求出椭圆曲线上的切线斜率为 k的切点坐标(x(2),y(2)),对参数方程进行求导得切点对应的参数弧度为bjarctan(3-3)ak从而求出(x(2),y(2))。联立式(3-1)、(3-2)、(3-3)求出逼近误差为wI版⑵_y(2y(0)_kx(0)|•、k21如果计算出来的逼近误差w小丁或等丁输入的允许误差v,则满足误差要求,即可进行直线逼近;否则令Ax为原来的一半,且返回重新计算逼近误差再次比较,直到满足误差要求为止。等问距直线逼近的流程图如图1所示,星形线的等问距直线逼近算法与椭圆计算方法相同,参考椭圆计算过程即可。3.2.2等误差直线逼近等问距直线逼近虽然计算简单,但由丁取定值 △x应保证曲线曲率最大处的逼近误差小丁允许值,所以程序可能过多。因此,在选择优化算法时,我们采用的是等误差直线逼近的节点计算法, 而且对丁曲率变化较大的曲线,用等误差法求得的节点数最少,从而输出的NC代码也大大减少,等误差算法计算如下:等误差直线去逼近曲线,就是使所有逼近线段的误差 相等,如图4。
图4图4等误差直线逼近椭圆参数方程为x=aCos(i),y=bSin(i),A点坐标(x(0),y(0)),T点坐标(x(1),y(1)),B点坐标(x(2),y(2))。(1)确定所有逼近线段的误差 允的圆方程,即以起点A(x(0),y(0))为圆心,允为半径作圆;(2)确定等误差圆与曲线公切线(2)确定等误差圆与曲线公切线PT的斜率k:以A点为起点,利用参数方程x=aCos(i),y=bSin(i),增大弧度i从而使横坐标变大。从而得到下一个点T坐标(x(1),y(1)),弧度i增大的步长为△i=0.001*兀。对椭圆方程进行求导,利用T点坐标求出曲线切线PT斜率k:b2b2x(1)a2y(1)(3-5)PT直线方程为y=kx+c,代入点T求得:c=y(1)-kx(1) (3-6)联立2式(3-5)、(3-6)和点A(x(0),y(0))求得A点到直线PT距离:kx(0)y(0) y⑴kx(1)]w (3-7)Q1比较距离w与等误差圆半径是否相等,若相等,则直线PT为等误差圆与曲线两者的公切线;若w<,则返回以上算法令△i增大一倍重新计算距离w直到w=;若W>,则返回以上算法令△i变为原来一半重新计算距离w直到w=。
(3)求B点坐标(x(2),y(2))。使AB弦的斜率为k,即使AB平行PT,设2L1可求得:b22 22 2(2kay(0)2kx(0)a)厂(3书)2(a2k2b2L1可求得:b22 22 2(2kay(0)2kx(0)a)厂(3书)2(a2k2b2)TOC\o"1-5"\h\z.2 2 2,c cc cc oo o o c l<y/n\ \/ fn\ oif\/(n\yYn\2 22 2、2 22 2 2 2 kx(0) y (0) 2ky(0)x(0).(2kay(0)2kx(0)a) 4(akb)(ab)(1 2 )b2I2~2 22(a2k2b2)进而求出y(2)=k(x(2)-x(0))+y(0)(3-9)(5)按以上步骤顺次求得其他各节点坐标。星形线等误差逼近算法与椭圆相似,参考椭圆计算方法即可求得。4软件开发与运行4.1系统界面本次课程设计使用VisualBasic6.0软件,设计了两个窗口为一体的可执行程序,其中主界面可选择所需加工的非圆曲线函数、走刀方向、刀补、起刀点、NC代码坐标以及相关的加工参数,具有等问距直线逼近和等误差直线逼近两种逼近方法,并且对这两种方法进行比较分析。通过点击“生成 NC代码”按钮,可以进入图6的生成NC代码的窗口,可以对NC代码进行保存,可以返回主界面,也可以退出该程序。
图5主界面图6生成NC弋码窗口4.2软件运行以椭圆内轮廓加工、顺时针走刀方向为例说明等间距算法和等误差算法直线逼近非圆曲线的刀具轨迹,并比较两者的节点数和生成NC弋码程序的长度,设允许误差为0.01,选择项和输入参数如图7所示。
选择麟走刀为向刀补坐标选择际椭圆*II厕针广左刀补p绝对坐标1E星形线广逆时针,•右刀补|r相对坐标曲线方程标准方程:变沱/乏*2+y*2/b*2=1参数方程:s-a牛Cos(i),y=b*Sin(i)曲线参数wa=40b=— i(弧度)=|收〔等误差逼近起切卢)允许误差;001两种算法对比等间距逼近所用线段裁;两种算法对比等间距逼近所用线段裁;等误差逼近所用线段数;主轴转谏,I2000rAin进给凝度||雾° MlAdlL刀具丰径E厂 顾图7加工参数的选择与输入单击“绘原图”、“等间距逼近”按钮,运行结果的刀具轨迹如图8所示,等间距逼近所用的线段数为5920,生成的NG弋码如图9所示N1090G17GOOG42001230M03S2000N2^37.00Y0.00M3Z-3114001X3S.9SY-0.99F200N5E3C.g5Y-L.40N6^36.03Y-l.72nt^36.90Y-i.geNSX36.8SY-2.22N9XMJ.85Y-2.43N10X36.83Y-2.62NilX36,83Y-2.80H12X36.79Y-2.97N13X36.75Y-3.13H14X36.73Y-3.29N15K36.73Y-3.43N16X36.6SY-3.57N17X36.65Y-3.70图8等间距逼近的刀具轨迹图9等间距逼近的NC弋码单击“绘原图”、“等误差逼近”按钮,运行结果的刀具轨迹如图10所示,等误差逼近所用的线段数为666,生成的NC弋码如图11所示。
N1G9Lr;17il:CG42TOlZ30配352000皿K37.00v-o.yo网2-33WGOl前.SY-O.25F2O0I-U.C1Y-0.42NET7.£EW71-0.01Y-O.25mX-D.C2T-O.;5ILI-D.(.2Y-O.25J:10K-0.02E鸠~V1'MF.gEMK12HrO.03T-0.25msmmfMM4K-0.C4HigM5K-0,C4Y-fl,25M16X-ClQdT-QM5KI"".05E%M18K-0,Q5Y-0,25K19佛YFU51-0*06Y-042S图10等误差逼近的刀具轨迹图11等误差逼近的NC弋码4.3运行分析从以上运行结果可以看出,非圆曲线的等问距直线逼近算法虽然简单,但逼近处理后的直线段较多,从经济效益上讲,此方法较差。而由等误差直线逼近处理后,可以得到相对较少的直线段,经济效益高。5总结这次的课程设计,在刚开始做之前,我们组的每个人都感到了压力,因为毕竟这次是要利用VB或VC编程语言结合数控技术课程内容来完成课程设计,而且时间也并不充足。在刚开始接触题目时候,没有丝毫的头绪,借住前人的成果,理解前人所做的东西,来逐步摸活我们课程设计真正所要做的工作。课堂上老师讲直线逼近非圆曲线的数学处理时大概讲了三种的方法:等问距、等弦长和等误差,在我们理解了三种方法之后,确定使用等间距为初步算法,等误差为优化算法,因为等间距计算简单,但程序过多,而等误差计算复杂,但程序和节点数都相对少。确定算法之后,我们遇到的I可题是如何地在VisualBasic6.0编程软件平■台去实现直线逼近椭圆和星形线,VB编程语言我们大致都弄懂,但是具体操作还是不明白。一开始我们使用椭圆和星形线的参数方程进行数学处理,实现过程很容易,而且不用分每一个象限去讨论,但是乂遇到了另一个问题,使用参数方程计算出来的逼近误差太大了,远大丁日常所要求的加工误差,所以还是以失败告终。通过查阅高数知识和数控技术课本还有其他的一些参考资料,借住高数知识所提供的数学方法,我们使用标准方程去进行数学处理,虽然要考虑每一个象限,程序也由此变得繁琐,但是最终还是实现了我们之
前的设想,计算出来的逼近误差最终可以变到0.01甚至更小。有了等问距直线逼近的成功基础,在做等误差算法直线逼近的时候,只需理解好等误差数学计算的方法即可完成逼近,也通过比较,等误差法确实比等间距法所走的步数少一倍以上,符合了我们之前的设想。通过这次的课程设计,把VB语言和数控仿真结合起来,加深了对非圆曲线加工的算法及其实现过程的理解,也提高了我们查阅资料和独自解决问题的能力,在遇到问题时候,我们组成员的互相讨论,迸发出来的学习激情,也提高了我们课程设计的积极性,给我们不仅带来了知识的增长和能力的提高, 而且带来了更多的乐趣。附录VB主要源程序DimdaoluAsInteger,daobuAsIntegerDimX(5)AsDouble,Y(5)AsDoubleDimqidaoxAsSingle,qidaoyAsSingle,qidaozAsSingleDimquxianAsInteger,piAsDouble,zuobiaoAsInteger 定义变量PrivateSubCommand1_Click()Picture1.ClsText8.Text=""Text9.Text=""EndSubPrivateSubCommand2_Click()Picture1.DrawStyle=vbSolidPicture1.DrawWidth=1Picture1.Scale(-50,50)-(50,-50)Picture1.Line(-50,0)-(50,0)Picture1.Line-(48,2)Picture1.Line(50,0)-(48,-2)Picture1.Print"X"Picture1.Line(0,-50)-(0,50)Picture1.Line-(-2,48)Picture1.Line(0,50)-(2,48)Picture1.Print"Y"Picture1.CurrentX=2Picture1.CurrentY=-2Picture1.Print"O"pi=3.1415926Picture1.CurrentX=aPicture1.CurrentY=0Ifquxian=1Thena=Val(Text1.Text)b=Val(Text2.Text)清屏绘图区域绘制坐标系点命令绘制非圆曲线原图清屏绘图区域绘制坐标系点命令绘制非圆曲线原图Picture1.PSet(a*Cos(i),b*Sin(i))NextEndIfIfquxian=2Thena=Val(Text1.Text)Fori=0To2*piStep0.001Picture1.PSet(a*Cos(i)A3,a*Sin(i)A3)NextEndIfEndSubPrivateSubCommand3_Click()s=0.1pi=3.1415926o=4a=Val(Text1.Text)b=Val(Text2.Text)v=Val(Text3.Text)n=Val(Text4.Text)F=Val(Text5.Text)r=Val(Text6.Text)qidaox=Val(Text10.Text)qidaoy=Val(Text11.Text)qidaoz=Val(Text12.Text)d=Val(Text13.Text)Picture1.DrawStyle=vbDashPicture1.DrawWidth=1Ifquxian=1ThenIfdaolu=1ThenIfdaobu=1Thene=1a=a+rb=b+rEndIfIfdaobu=2Thene=2a=a-rb=b-rEndIfX(0)=aY(0)=0Picture1.PSet(qidaox,qidaoy),vbRedPicture1.Line-(X(0),Y(0)),vbRedPicture1.DrawStyle=vbSolidPicture1.PSet(X(0),Y(0)),vbRed等间距直线逼近输入加工参数画椭圆顺时针走刀方向p=Format(X(0),"##0.00")q=Format(Y(0),"##0.00")Ifzuobiao=1ThenForm2.Text1.Text="N1G90G17G00G4"&e&"D01"&"Z30M03S"&n&vbCrLfForm2.Text1.Text=Form2.Text1.Text&"N2X"&p&"Y"&q&vbCrLfForm2.Text1.Text=Form2.Text1.Text&"N3Z-"&d&vbCrLfElseForm2.Text1.Text="N1G91G17G00G4"&e&"D01"&"Z30M03S"&n&vbCrLfForm2.Text1.Text=Form2.Text1.Text&"N2X"&p&"Y"&q&vbCrLfForm2.Text1.Text=Form2.Text1.Text&"N3Z-"&d+30&vbCrLfEndIfline1:DoWhileX(0)>=(-a+0.0001)X(1)=X(0)-sY(1)=-(b*Sqr(Abs(aA2-X(1)A2)))/aIfX(1)<>X(0)AndY(1)<>Y(0)Thenk=(Y(1)-Y(0))/(X(1)-X(0))Ifk>0Thenj=Atn(-b/(a*k))EndIfIfk<0Thenj=Atn(-b/(a*k))+piEndIfX(2)=a*Cos(j)Y(2)=b*Sin(j)w=Abs(k*X(2)-Y(2)+Y(0)-k*X(0))/(Sqr(kA2+1))EndIfIfw<=vThenPicture1.Line-(X(1),丫(1)),vbRedElses=s/2GoToline1EndIfIfzuobiao=1Thenp=Format(X(1),"##0.00")q=Format(Y(1),"##0.00")Ifo=4ThenForm2.Text1.Text=Form2.Text1.Text&"N4G01X"&p&"Y"&q&"F"&F&vbCrLfEndIfIfo>=5ThenForm2.Text1.Text=Form2.Text1.Text&"N"&o&"X"&p&"Y"&q&vbCrLfEndIfElseIfo=4Then
p=Format(X(1)-X(0),"##0.00”)q=Format(Y(1)-Y(0),"##0.00")Form2.Text1.Text=Form2.Text1.Text&"N4G01X"&p&"Y"&q&"F"&F&vbCrLfEndIfIfo>=5Thenp=Format(X(1)-X(0),"##0.00")q=Format(Y(1)-Y(0),"##0.00")Form2.Text1.Text=Form2.Text1.Text&"N"&o&"X"&p&"Y"&q&vbCrLfEndIfEndIfo=o+1X(0)=X(1)Y(0)=Y(1)Loop等误差直线逼近PrivateSubCommand4_Click()等误差直线逼近s=0.001pi=3.1415926输入加工参数o=4输入加工参数a=Val(Text1.Text)b=Val(Text2.Text)v=Val(Text3.Text)n=Val(Text4.Text)F=Val(Text5.Text)r=Val(Text6.Text)qidaox=Val(Text10.Text)qidaoy=Val(Text11.Text)qidaoz=Val(Text12.Text)d=Val(Text13.Text)i=Val(Text7.Text)Picture1.DrawStyle=vbDashPicture1.DrawWidth=1画椭圆顺时针走刀方向画椭圆顺时针走刀方向Ifdaolu=1ThenIfdaobu=1Thene=1a=a+rb=b+rEndIfIfdaobu=2Thene=2a=a-rb=b-rEndIfX(0)=a*Cos(i)Y(0)=b*Sin(i)Picture1.PSet(qidaox,qidaoy),vbGreenPicture1.Line-(X(0),Y(0)),vbGreenPicture1.DrawStyle=vbSolidPicture1.PSet(X(0),Y(0)),vbGreenp=Format(X(0),"##0.00”)q=Format(Y(0),"##0.00”)Ifzuobiao=1ThenForm2.Text1.Text="N1G90G17G00G4"&e&"D01"&"Z30M03S"&n&vbCrLfForm2.Text1.Text=Form2.Text1.Text&"N2X"&p&"Y"&q&vbCrLfForm2.Text1.Text=Form2.Text1.Text&"N3Z-"&d&vbCrLfElseForm2.Text1.Text="N1G91G17G00G4"&e&"D01"&"Z30M03S"&n&vbCrLfForm2.Text1.Text=Form2.Text1.Text&"N2X"&p&"Y"&q&vbCrLfForm2.Text1.Text=Form2.Text1.Text&"N3Z-"&d+30&vbCrLfEndIfline1:DoWhilei>0i=i-s*piX(1)=a*Cos(i)Y(1)=b*Sin(i)IfY(1)<>0Thenk=-(bA2*X(1))/(aA2*Y(1))w=Abs(k*X(0)-Y(0)+Y(1)-k*X(1))/(Sqr(kA2+1))EndIfIf(w-v)>=0.0001ThenPicture1.Line-(X(1),Y(1)),vbGreenElses=s+0.001GoToline1EndIfIfzuobiao=1Thenp=Format(X(1),"##0.00")q=Format(Y(1),"##0.00")Ifo=4ThenForm2.Text1.Text=Form2.Text1.Text&"N4G01X"&p&"Y"&q&"F"&F&vbCrLfEndIfIfo>=5ThenForm2.Text1.Text=Form2.Text1.Text&"N"&o&"X"&p&"Y"&q&vbCrLfEndIfElseIfo=4Thenp=Format(X(1)-X(0),"##0.00”)q=Format(Y(1)-Y(0),"##0.00")Form2.Text1.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- nba劳动合同范例
- 书包购销合同范例
- 交房维修合同范例
- 代加工设备合同范例
- 海外工程项目合同风险转移合同
- 欧美日韩跨境电商海外仓仓储配送合同
- 萌宠生活馆宠物用品连锁加盟运营合同
- 警用无人机购置与操作培训服务合同
- 生物样本库建设与生物技术项目研发合同
- 食品行业仪器校准认证与食品安全保障合同
- 追觅在线测评28题及答案
- 2024年中国比例电磁铁市场调查研究报告
- 2024秋期国家开放大学《国家开放大学学习指南》一平台在线形考(任务一至五)试题及答案
- 影视鉴赏智慧树知到答案2024年南华大学
- 知识产权法(四川师范大学)智慧树知到答案2024年四川师范大学
- 2024-2030年中国羊绒市场销售格局与未来发展动向追踪报告
- 足疗技师免责协议书
- 古代诗人名人韩愈人物介绍课件
- 中华护理学会成人肠内营养支持护理团标解读
- 《1.4茎和叶》说课稿、教案、教学设计和同步练习
- 企业VI设计报价清单
评论
0/150
提交评论