【VB+数控原理与系统】数控原理与系统课程设计刀具半径补偿直线

您所在的位置:网站首页 如何设计vb程序 【VB+数控原理与系统】数控原理与系统课程设计刀具半径补偿直线

【VB+数控原理与系统】数控原理与系统课程设计刀具半径补偿直线

#【VB+数控原理与系统】数控原理与系统课程设计刀具半径补偿直线| 来源: 网络整理| 查看: 265

本课题是刀具半径补偿的直线-直线软件实现,是南京工程学院数控专业的数控原理与系统的课程设计,整个工程都是自己随便弄弄的,作为课设作业还算比较严谨吧。题目不难,具体的直线-直线的刀具补偿原理,见机械工业出版社出版的汪木兰主编的《数控原理与系统》的P56~P59,这里不再赘述,具体的代码贴在下边,另外附件中有zip包附带整个工程文件(界面、工程、代码)。具体实现都很简单,因为学期末了,找工作的找工作,考研复试的复试,大多都没兴趣好好弄了,在这里贴上来方便大家交差把。

具体思路稍微一提,对给定的直线的3个点,首先在界面中选择刀补阶段,到底是刀补建立,还是刀补进行,还是刀补撤销,进一步通过直线投影判断两直线夹角,分为伸长型,缩短型,插入型三种情况,分别予以讨论,计算出补偿后的刀具轨迹,然后加以在PICTUREbox中显示。

VB工程代码:

        

Public X0 As Double, Y0 As Double, X1 As Double, Y1 As Double, X2 As Double, Y2 As Double, R As Double Public Xs1 As Double, Ys1 As Double, Xs2 As Double, Ys2 As Double Public Ori As Integer Public Xl1 As Double, Yl1 As Double, Xl2 As Double, Yl2 As Double, dX1 As Double, dY1 As Double, dX2 As Double, dY2 As Double, d1 As Double, d2 As Double Private Sub Command1_Click() Dim X1_FWD As Integer, Y1_FWD As Integer, X2_FWD As Integer, Y2_FWD As Integer Dim alfa As Double, beta As Double Call PaintAxis '绘制补偿前图像 Picture1.ForeColor = vbBlue Picture1.DrawWidth = 1 Picture1.Line (X0, Y0)-(X1, Y1) Picture1.Line (X1, Y1)-(X2, Y2) '算法设计 '计算坐标增量 dX1 = X1 - X0 dY1 = Y1 - Y0 dX2 = X2 - X1 dY2 = Y2 - Y1 alfa = Atn(dY1 / dX1) beta = Atn(dY2 / dX2) If dX1 >= 0 Then X1_FWD = 1 Else X1_FWD = -1 End If If dX2 >= 0 Then X2_FWD = 1 Else X2_FWD = -1 End If If dY1 >= 0 Then Y1_FWD = 1 Else Y1_FWD = -1 End If If dY2 >= 0 Then Y2_FWD = 1 Else Y2_FWD = -1 End If '计算d1,d2 d1 = Sqr(dX1 ^ 2 + dY1 ^ 2) d2 = Sqr(dX2 ^ 2 + dY2 ^ 2) '计算方向矢量投影 Xl1 = dX1 / d1 Yl1 = dY1 / d1 Xl2 = dX2 / d2 Yl2 = dY2 / d2 '判断缩短型,伸长型,插入型 If Ori * (Yl2 * Xl1 - Xl2 * Yl1) >= 0 Then '缩短型 '刀补建立 If Combo1.ListIndex = 0 And Ori * (Yl2 * Xl1 - Xl2 * Yl1) 0 Then Xs1 = X1 - R * Ori * Yl2 Ys1 = Y1 + R * Ori * Xl2 X_0p.Text = X0 Y_0p.Text = Y0 X_s1.Text = Xs1 Y_s1.Text = Ys1 X_2p.Text = Xs1 + dX2 Y_2p.Text = Ys1 + dY2 Picture1.ForeColor = vbMagenta Picture1.Line (X0, Y0)-(Xs1, Ys1) Picture1.Line (Xs1, Ys1)-(Xs1 + dX2, Ys1 + dY2) '刀补进行 ElseIf Combo1.ListIndex = 1 Then If Yl2 * Xl1 - Xl2 * Yl1 = 0 Then 'l1与l2共线 Xs1 = X1 - R * Ori * Yl1 Ys1 = Y1 + R * Ori * Xl1 X_0p.Text = Xs1 - dX1


【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3