您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 制造加工工艺 > 数控机床课程设计(插补计算)
《机床数控技术》课程设计说明书班级:学号:姓名:指导教师:时间说明书⑴课设任务:⒈DL2,DDA法插补第二象限直线⒉PA34,逐点比较法插补第3-4象限逆圆弧⑵课设要求:⒈具有数据输入界面,如起点、终点、圆心、半径及插补步长等⒉具有插补过程的动态显示功能,如单步插补、连续插补⒊插补的步长可调⑶编程语言:VisualBasic⑷程序设计流程图:DDA法插补第二象限直线:逐点比较法插补第3-4象限逆圆弧:J=J+F;K=K+G初始化L=A,M=B,累加次数N=0-2^I(J/(2^I))=E(K/(2^I))=EN-x向走一步+Y向走一步画直线NYYN=N+1N=2^I吗?结束NY⑸变量说明、源程序开始初始化Xp=X1;Yp=Y1;F1=0F1=0F1=F1-(2*(Yp-Y0))+U^2;Yp=Yp-UF1=F1+(2*(Xp–X0))+U^2;Xp=Xp+UNY画直线XpX0AndXpX2F1=0NYF1=F1+(2*(Xp-X0))+U^2:Xp=Xp+UF1=F1+(2*(Yp-Y0))+U^2:Yp=Yp+UXpX2N画直线NYXpX2OrYpY2结束NYYDimA!,B!,C!,D!,E!,F!,G!,H!,I!,J!,K!,L!,M!,N!,P!,Q!DimX1!,X2!,X3!,F1!,Xp!,Yp!,Y1!,Y2!,Y3!,X0!,Y0!,R!,S!,T!,U!,V!,W!,X!,Y!,Z!,o1!PrivateSubCommand1_Click()******************直线DDA连续插补A=Text1.TextB=Text2.Text直线起点坐标(A,B)C=Text3.TextD=Text4.Text直线终点坐标(C,D)E=Text5.Text直线插补步长F=(A-C)G=(D-B)Picture1.Line(A,B)-(C,D)IfFGThenH=FElse:H=GI=1DoWhile(2^I)=HI=I+1LoopJ=0K=0L=AM=BForN=0To(2^I)Step1J=J+FP=LIf(J/(2^I))=EThenJ=J-E*(2^I):L=L-EK=K+GQ=MIf(K/(2^I))=EThenK=K-E*(2^I):M=M+EPicture1.Line(P,Q)-(L,M),vbRedNextNEndSubPrivateSubCommand2_Click()*******************圆弧单步逐点插补X1=Text6.TextY1=Text7.TextX2=Text8.TextY2=Text9.TextR=Text10.TextU=Text11.TextDimxe,yeAsSinglexe=(X1+X2)/2ye=(Y1+Y2)/2S=Sqr(((X2-X1)^2+(Y2-Y1)^2))/2T=(Y2-Y1)/(X2-X1)IfY1=Y2ThenX0=(X1+X2)/2Y0=Y1+Sqr(R^2-S^2)ElseIfY1Y2ThenX0=xe-Sqr((R^2-S^2)*T^2/(1+T^2))Y0=(xe-X0)/T+yeElseIfY1Y2ThenX0=xe+Sqr((R^2-S^2)*T^2/(1+T^2))Y0=(xe-X0)/T+yeEndIfIf(X0X1AndY0=Y2)ThenX=2*3.14+Atn((Y1-Y0)/(X1-X0)):Y=2*3.14+Atn((Y2-Y0)/(X2-X0))If(X0=X1AndY0=Y2)ThenX=(3*3.14/2):Y=2*3.14+Atn((Y2-Y0)/(X2-X0))If(X0X1AndX0X2AndY0=Y1AndY0=Y2)ThenX=3.14+Atn((Y1-Y0)/(X1-X0)):Y=2*3.14+Atn((Y2-Y0)/(X2-X0))If(X0X2AndY0=Y1)ThenX=3.14+Atn((Y1-Y0)/(X1-X0)):Y=3.14+Atn((Y2-Y0)/(X2-X0))If(X0=X2AndY0=Y1)ThenX=3.14+Atn((Y1-Y0)/(X1-X0)):Y=(3*3.14)/2Picture1.Circle(X0,Y0),R,,X,YSelectCase(o1=0)Case1F1=0Xp=X1Yp=Y1o1=1EndSelectIf(Xp=X1AndXpX0AndXpX2)ThenIfF1=0ThenF1=F1+(2*(Xp-X0))+U^2:V=Xp:Xp=Xp+UPicture1.Line(V,Yp)-(Xp,Yp),vbBlueElseF1=F1-(2*(Yp-Y0))+U^2:W=Yp:Yp=Yp-UPicture1.Line(Xp,W)-(Xp,Yp),vbBlueEndIfElseIf(Xp=X0And(XpX2OrYpY2))ThenSelectCase(XpX2)Case0IfF1=0ThenF1=F1+(2*(Yp-Y0))+U^2:W=Yp:Yp=Yp+UPicture1.Line(Xp,W)-(Xp,Yp),vbBlueElseF1=F1+(2*(Xp-X0))+U^2:V=Xp:Xp=Xp+UPicture1.Line(V,Yp)-(Xp,Yp),vbBlueEndIfEndSelectEndIfEndSubPrivateSubCommand4_Click()******************圆弧连续逐点插补X1=Text6.TextY1=Text7.Text圆弧起点坐标(X1,Y1)X2=Text8.TextY2=Text9.Text圆弧终点坐标(X2,Y2)R=Text10.Text圆弧半径U=Text11.Text圆弧插补步长Dimxe,yeAsSinglexe=(X1+X2)/2ye=(Y1+Y2)/2S=Sqr(((X2-X1)^2+(Y2-Y1)^2))/2T=(Y2-Y1)/(X2-X1)IfY1=Y2ThenX0=(X1+X2)/2Y0=Y1+Sqr(R^2-S^2)ElseIfY1Y2ThenX0=xe-Sqr((R^2-S^2)*T^2/(1+T^2))Y0=(xe-X0)/T+yeElseIfY1Y2ThenX0=xe+Sqr((R^2-S^2)*T^2/(1+T^2))Y0=(xe-X0)/T+ye圆弧圆心(X0,Y0)EndIfIf(X0X1AndY0=Y2)ThenX=2*3.14+Atn((Y1-Y0)/(X1-X0)):Y=2*3.14+Atn((Y2-Y0)/(X2-X0))If(X0=X1AndY0=Y2)ThenX=(3*3.14/2):Y=2*3.14+Atn((Y2-Y0)/(X2-X0))If(X0X1AndX0X2AndY0=Y1AndY0=Y2)ThenX=3.14+Atn((Y1-Y0)/(X1-X0)):Y=2*3.14+Atn((Y2-Y0)/(X2-X0))If(X0X2AndY0=Y1)ThenX=3.14+Atn((Y1-Y0)/(X1-X0)):Y=3.14+Atn((Y2-Y0)/(X2-X0))If(X0=X2AndY0=Y1)ThenX=3.14+Atn((Y1-Y0)/(X1-X0)):Y=(3*3.14)/2Picture1.Circle(X0,Y0),R,,X,YF1=0Xp=X1Yp=Y1DoWhile(Xp=X1AndXpX0AndXpX2)IfF1=0ThenF1=F1+(2*(Xp-X0))+U^2:V=Xp:Xp=Xp+UPicture1.Line(V,Yp)-(Xp,Yp),vbRedElseF1=F1-(2*(Yp-Y0))+U^2:W=Yp:Yp=Yp-UPicture1.Line(Xp,W)-(Xp,Yp),vbRedEndIfLoopDoWhile(Xp=X0And(XpX2OrYpY2))SelectCase(XpX2)Case0IfF1=0ThenF1=F1+(2*(Yp-Y0))+U^2:W=Yp:Yp=Yp+UPicture1.Line(Xp,W)-(Xp,Yp),vbRedElseF1=F1+(2*(Xp-X0))+U^2:V=Xp:Xp=Xp+UPicture1.Line(V,Yp)-(Xp,Yp),vbRedEndIfEndSelectLoopEndSubPrivateSubCommand5_Click()****************DDA单步直线插补A=Text1.TextB=Text2.TextC=Text3.TextD=Text4.TextE=Text5.TextF=(A-C)G=(D-B)Picture1.Line(A,B)-(C,D)IfFGThenH=FElse:H=GI=1DoWhile(2^I)=HI=I+1LoopSelectCase(L=COrM=D)Case0P=LQ=MDoWhile(P=LAndQ=M)If(K/(2^I))=EThenK=K-E*(2^I):M=M+EK=K+GIf(J/(2^I))=EThenJ=J-E*(2^I):L=L-EJ=J+FLoopPicture1.Line(P,Q)-(L,M),vbBlueEndSelectEndSubPrivateSubCommand3_Click()***********************直线清图Picture1.ClsPicture1.Scale(-21,21)-(21,-21)Picture1.Line(-20,0)-(20,0)Picture1.Line(0,-20)-(0,20)Picture1.Line(20,0)-(19.5,0.3)Picture1.Line(20,0)-(19.5,-0.3)Picture1.Line(0,20)-(0.3,19.5)Picture1.Line(0,20)-(-0.3,19.5)DimX4!,Y4!X4=-20Y4=-20DoWhileX419X4=X4+1Picture1.Line(X4,0)-(X4,0.2)LoopDoWhileY419Y4=Y4+1Picture1.Line(0,Y4)-(0.2,Y4)LoopL=AM=BJ=0K=0Picture1.CurrentX=20Picture1.CurrentY=-1Picture1.PrintXPicture1.CurrentX=1Picture1.CurrentY=20Picture1.PrintyEndSubPrivateSubCommand6_Click()***********************圆弧清图Picture1.ClsPicture1.Scale(-21,21)-(21,-21)Picture1.Line(-20,0)-(20,0)Picture1.Line(0,-20)-(0,20)Picture1.Line(20,0)-(19.5,0.3)Picture1.Line(20,0)-(19.5,-0.3)Picture1.Line(0,20)-(0.3,19.5)Picture1.Line(0,20)-(-0.3,19.5)DimX4!,Y4!X4=-20Y4=-20DoWhileX419X4=X4+1Picture1.Line(X4,0)-(X4,0.2)LoopDoWhileY419Y4=Y4+1Picture1.Line(0,Y4)-(0.2,Y4)Loopo1=0Picture1.CurrentX=20Picture1.CurrentY=-1Picture1.PrintXPicture1.CurrentX=1Picture1.CurrentY=20Picture1.PrintyEndSubPrivateSubCommand7_Click()****************
本文标题:数控机床课程设计(插补计算)
链接地址:https://www.777doc.com/doc-4604534 .html