数控机床课程设计(插补计算).doc

《机床数控技术》课程设计 说明书 班级: 学号: 姓名: 指导教师: 时间 说明书 ⑴课设任务: ⒈ DL2 ,DDA法插补第二象限直线 ⒉ PA34,逐点比较法插补第3-4象限逆圆弧 ⑵课设要求: ⒈ 具有数据输入界面,如起点、终点、圆心、半径及插补步长等 ⒉ 具有插补过程的动态显示功能,如单步插补、连续插补 ⒊ 插补的步长可调 ⑶编程语言: Visual Basic ⑷程序设计流程图: DDA法插补第二象限直线: 逐点比较法插补第3-4象限逆圆弧: ⑸变量说明、源程序 Dim A!, B!, C!, D!, E!, F!, G!, H!, I!, J!, K!, L!, M!, N!, P!, Q! Dim X1!, X2!, X3!, F1!, Xp!, Yp!, Y1!, Y2!, Y3!, X0!, Y0!, R!, S!, T!, U!, V!, W!, X!, Y!, Z!,o1! Private Sub Command1_Click() ******************直线DDA连续插补 A = Text1.Text B = Text2.Text 直线起点坐标(A,B) C = Text3.Text D = Text4.Text 直线终点坐标(C,D) E = Text5.Text 直线插补步长 F = (A - C) G = (D - B) Picture1.Line (A, B)-(C, D) If F G Then H = F Else: H = G I = 1 Do While (2 ^ I) = H I = I + 1 Loop J = 0 K = 0 L = A M = B For N = 0 To (2 ^ I) Step 1 J = J + F P = L If (J / (2 ^ I)) = E Then J = J - E * (2 ^ I): L = L - E K = K + G Q = M If (K / (2 ^ I)) = E Then K = K - E * (2 ^ I): M = M + E Picture1.Line (P, Q)-(L, M), vbRed Next N End Sub Private Sub Command2_Click() *******************圆弧单步逐点插补 X1 = Text6.Text Y1 = Text7.Text X2 = Text8.Text Y2 = Text9.Text R = Text10.Text U = Text11.Text Dim xe, ye As Single xe = (X1 + X2) / 2 ye = (Y1 + Y2) / 2 S = Sqr(((X2 - X1) ^ 2 + (Y2 - Y1) ^ 2)) / 2 T = (Y2 - Y1) / (X2 - X1) If Y1 = Y2 Then X0 = (X1 + X2) / 2 Y0 = Y1 + Sqr(R ^ 2 - S ^ 2) ElseIf Y1 Y2 Then X0 = xe - Sqr((R ^ 2 - S ^ 2) * T ^ 2 / (1 + T ^ 2)) Y0 = (xe - X0) / T + ye ElseIf Y1 Y2 Then X0 = xe + Sqr((R ^ 2 - S ^ 2) * T ^ 2 / (1 + T ^ 2)) Y0 = (xe - X0) / T + ye End If If (X0 X1 And Y0 = Y2) Then X = 2 * 3.14 + Atn((Y1 - Y0) / (X1 - X0)): Y = 2 * 3.14 + Atn((Y2 - Y0) / (X2 - X0)) If (X0 = X1 And Y0 = Y2) Then X = (3 * 3.14 / 2): Y = 2 * 3.14 + Atn((Y2 - Y0) / (X2 - X0)) If (X0 X1 And X0 X2 And Y0 = Y1 And Y0 = Y2) Then X = 3.14 + Atn((Y1 - Y0) / (X1 - X0)): Y = 2 * 3.14 + Atn((Y2 - Y0) / (X2 - X0)) If (X0 X2 A

文档评论(0)

1亿VIP精品文档

相关文档