收藏 分销(赏)

逐点比较法VB插补软件-数控机床-论文.doc

上传人:仙人****88 文档编号:8925131 上传时间:2025-03-08 格式:DOC 页数:34 大小:518.50KB 下载积分:10 金币
下载 相关 举报
逐点比较法VB插补软件-数控机床-论文.doc_第1页
第1页 / 共34页
逐点比较法VB插补软件-数控机床-论文.doc_第2页
第2页 / 共34页


点击查看更多>>
资源描述
第3章 V B程序设计 3.1 插补软件设计 系统的公共文件 依据系统模块结构图,抽取系统中多个模块的相同子功能,建立系统公共文件,可以做到减少总代码量,避免重复开发,报纸系统实现风格统一,以及增强可修改性。 a、主体框架 b、添加模块 c、定义用户名、用户类型、职员编号以及登陆成功的标志位系统公共变量定义。 d、Main(系统启动)函数 e、ConnectString函数 f、txtlsNull函数 判断输入到TextBox的内容是否为空。 g、SEquellen函数 判断输入到TextBox的内容长度是否为给定值。 (2)功能设计 a题目模块 数控插补软件的题目是“逐点比较法插补仿真软件” b个人信息模块 输入自己的信息:专业:机械设计与制造学号:******* 姓名**** 指导老师:**** c直线插补 当单击直线插补时,顺圆插补、逆圆插补、顺时针画圆弧、逆时针画圆弧不可见。 d顺圆插补 当单击顺圆插补时,直线插补、逆圆插补不可见。 e逆圆插补 当单击逆圆插补时,直线插补、顺圆插补不可见。 f起点坐标终点坐标模块 可输入-10到10之间这几个数值 g画直线 在输入数值后,点击画直线,实现执行画直线的命令。 h顺时针画圆弧,逆时针画圆弧 当输入数值后,点击此按钮,实现执行画圆弧命令。 i连续插补、单步插补 在左下框内实现图形,右框内实现插补步骤。 J退出 单击后退出软件。 3.2 插补程序的实现 画直线采用的是Microsoft Visual Basic 6.0 中文版中的Line命令实现的,例如:Picture1.Line (x1, y1)-(x2, y2), RGB(255, 0, 0) ,就是在图片框中从起始坐标 (x1, y1)到终点坐标(x2, y2)画一条红色的直线。再根据上面的插补原理和软件流程图就可以编出插补程序。 画圆弧采用Microsoft Visual Basic 6.0 中文版中的Circle命令实现的,例如:⑴ Picture1.Circle (x1, y1),r, vbRed,就是在图片框坐标中以坐标X1, Y1为圆心画一个半径为r的红色圆。⑵ Picture1.Circle (0, 0), r1, , n, m,就是图片框中以坐标原点为圆心,以r1为半径,以弧度n为起始点,以弧度m为终点画圆弧。再根据上面的插补原理和软件流程图就可以编出插补程序。 插补界面如图2-14,直线和圆弧的走刀轨迹输出在一个图片框中,插补演示的过程,刀具走的方向,偏差结果,输出工步数等,都在一个指定的文本框中输出,插补类型用三个单选按钮实现。只要选择相应的按钮,在文本框中输入相应的坐标就可以看到所输入坐标直线和圆弧的走刀轨迹了。 3.3 Visual Basic语言简介 Visual Basic,简称VB,是Microsoft公司推出的一种Windows应用程序开发工具。是当今世界上使用最广泛的编程语言之一,它也被公认为是编程效率最高的一种编程方法。无论是开发功能强大、性能可靠的商务软件,还是编写能处理实际问题的实用小程序,VB都是最快速、最简便的方法。 Visual Basic中的“Visual”指的是采用可视化的开发图形用户界面(GUI)的方法,一般不需要编写大量代码去描述界面元素的外观和位置,而只要把需要的控件拖放到屏幕上的相应位置即可;“Basic”指的是BASIC语言,因为VB是在原有的BASIC语言的基础上发展起来的,至今包含了数百条语句、函数及关键词,其中很多和 Windows GUI 有直接关系。专业人员可以用 Visual Basic 实现其它任何 Windows 编程语言的功能,而初学者只要掌握几个关键词就可以建立实用的应用程序。 3.4 Visual Basic 的特点 1.面向对象 VB采用了面向对象设计思想它基本思路是把复杂设计问题分解为个个能够完成独立功能相对简单对象集合所谓“对象”就是个可操作实体如窗体、窗体中命令按钮、标签、文本框等面向对象编程就好像搭积木样员可根据和界面设计要求直接在屏幕上“画\"出窗口、菜单、按钮等区别类型对象并为每个对象设置属性。 2.事件驱动 在Windows环境下是以事件驱动方式运行每个对象都能响应多个区别事件每个事件都能驱动段代码——事件过程该代码决定了对象功能通常称这种机制为事件驱动事件可由用户操作触发也可以由系统或应用触发例如单击个命令按钮就触发了按钮Click(单击)事件该事件中代码就会被执行若用户未进行任何操作(未触发事件)则就处于等待状态整个应用就是由彼此独立事件过程构成。 3.软件Software集成式开发 VB为编程提供了个集成开发环境在这个环境中编程者可设计界面、编写代码、调试直至把应用编译成可在Windows中运行可执行文件并为它生成安装VB集成开发环境为编程者提供了很大方便。 4.结构化设计语言 VB具有丰富数据类型是种符合结构化设计思想语言而且简单易学此外作为种设计语言VB还有许多独到的处。 5.强大数据库访问功能 VB利用数据Control控件可以访问多种数据库VB6.O提供ADOControl控件不但可以用最少代码实现数据库操作和控制也可以取代DataControl控件和RDOControl控件。 6.支持对象链接和嵌入技术 VB核心是对对象链接和嵌入(OLE)技术支持它是访问所有对象种思路方法利用OLE技术能够开发集声音、图像、动画、字处理、Web等对象于体。 7.网络功能 VB6.O提供了DltTML(Dynamic}tTML)设计工具利用这种技术可以动态创建和编辑Web页面使用户在VB中开发多功能网络应用软件Software. 8.多个应用向导 VB提供了多种向导如应用向导、安装向导、数据对象向导和数据窗体向导通过它们可以快速地创建区别类型、区别功能应用。 9.支持动态交换、动态链接技术. 通过动态数据交换(DDE)编程技术VB开发应用能和其他Windows应用的间建立数据通信通过动态链接库技术在VB中可方便地用C语言或汇编语言编写也可Windows应用接口(.API)。 lO.联机帮助功能 在VB中利用帮助菜单和F1功能键用户可随时方便地得到所需要帮助信息VB帮助窗口中显示了有关举例代码通过复制、粘贴操作可获取大量举例代码为用户学习和使用提供方便。 第4章 VB插补程序代码 VERSION 5.00 Begin VB.Form 数控插补仿真软件 Appearance = 0 'Flat BackColor = &H80000005& Caption = "数控插补仿真演示软件" ClientHeight = 10830 ClientLeft = 165 ClientTop = 555 ClientWidth = 15240 FillColor = &H00C0C0C0& FillStyle = 0 'Solid BeginProperty Font Name = "宋体" Size = 36 Charset = 134 Weight = 400 Underline = 0 'False Italic = -1 'True Strikethrough = 0 'False EndProperty ForeColor = &H00C0C0C0& LinkTopic = "Form1" Picture = "程序演示2.frx":0000 ScaleHeight = 191.029 ScaleMode = 6 'Millimeter ScaleWidth = 268.817 StartUpPosition = 3 '窗口缺省 Begin VB.Frame Frame1 BackColor = &H00FFFF00& Caption = "插补类型" BeginProperty Font Name = "黑体" Size = 12 Charset = 134 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00FF0000& Height = 1695 Left = 3360 MousePointer = 1 'Arrow TabIndex = 16 Top = 2280 Width = 1935 Begin VB.OptionButton Option3 BackColor = &H008080FF& Caption = "直线插补" BeginProperty Font Name = "宋体" Size = 10.5 Charset = 134 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00000000& Height = 255 Left = 240 MaskColor = &H00FFFFFF& TabIndex = 19 Top = 360 Width = 1215 End Begin VB.OptionButton Option2 BackColor = &H008080FF& Caption = "逆圆插补" BeginProperty Font Name = "宋体" Size = 10.5 Charset = 134 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00000000& Height = 255 Left = 240 TabIndex = 18 Top = 1320 Width = 1215 End Begin VB.OptionButton Option1 BackColor = &H008080FF& Caption = "顺圆插补" BeginProperty Font Name = "宋体" Size = 10.5 Charset = 134 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00000000& Height = 255 Left = 240 TabIndex = 17 Top = 840 Width = 1215 End End Begin VB.CommandButton Command4 Caption = "退出" BeginProperty Font Name = "黑体" Size = 12 Charset = 134 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 720 Left = 13800 TabIndex = 15 Top = 2640 Width = 1335 End Begin VB.CommandButton Command5 BackColor = &H80000005& Caption = "画直线" BeginProperty Font Name = "黑体" Size = 12 Charset = 134 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 720 Left = 5670 MaskColor = &H00808080& TabIndex = 11 Top = 2640 Width = 1320 End Begin VB.Frame Frame2 BackColor = &H00FFFF00& Caption = "输入坐标" BeginProperty Font Name = "黑体" Size = 12 Charset = 134 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00FF0000& Height = 1695 Left = 0 TabIndex = 7 Top = 2280 Width = 3120 Begin VB.TextBox Text1 BeginProperty Font Name = "宋体" Size = 15.75 Charset = 134 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H000000FF& Height = 435 Index = 3 Left = 2100 TabIndex = 14 Top = 1050 Width = 750 End Begin VB.TextBox Text1 BeginProperty Font Name = "宋体" Size = 15.75 Charset = 134 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H000000FF& Height = 435 Index = 2 Left = 1155 End If ElseIf r1 = r2 And x1 >= 0 And y1 >= 0 And x2 < 0 And y2 >= 0 Then a = y2 / r1 b = y1 / r1 m = pi - arcsin(a) n = arcsin(b) Picture1.Circle (0, 0), r1, , n, m ElseIf r1 = r2 And x1 >= 0 And y1 >= 0 And x2 <= 0 And y2 < 0 Then a = Abs(x2) / r1 b = y1 / r1 m = pi * 3 / 2 - arcsin(a) n = arcsin(b) Picture1.Circle (0, 0), r1, , n, m ElseIf r1 = r2 And x1 >= 0 And y1 >= 0 And x2 > 0 And y2 <= 0 Then a = Abs(y2) / r1 b = y1 / r1 m = 2 * pi - arcsin(a) n = arcsin(b) Picture1.Circle (0, 0), r1, , n, m ' ElseIf r1 = r2 And X1 >= 0 And Y1 >= 0 And X2 >= 0 And Y2 >= 0 And (Y1) >= (Y2) Then ' a = Y2 / r2 'b = Y1 / r1 ' m = arcsin(a) ' n = arcsin(b) ' If m > n Then 'Picture1.Circle (0, 0), r1, , n, m ' Else 'Picture1.Circle (0, 0), r1 ' Picture1.Circle (0, 0), r1, , m, n ' End If ElseIf r1 = r2 And x1 < 0 And y1 >= 0 And x2 < 0 And y2 >= 0 Then a = y2 / r1 b = y1 / r1 m = pi - arcsin(a) n = pi - arcsin(b) If m > n Then Picture1.Circle (0, 0), r1, , m, n Else Picture1.Circle (0, 0), r1, , n, m End If ElseIf r1 = r2 And x1 < 0 And y1 >= 0 And x2 <= 0 And y2 < 0 Then a = Abs(x2) / r1 b = y1 / r1 m = pi * 3 / 2 - arcsin(a) n = pi - arcsin(b) Picture1.Circle (0, 0), r1, , n, m ElseIf r1 = r2 And x1 < 0 And y1 >= 0 And x2 > 0 And y2 <= 0 Then a = Abs(y2) / r1 b = y1 / r1 m = pi * 2 - arcsin(a) n = pi - arcsin(b) Picture1.Circle (0, 0), r1, , n, m ElseIf r1 = r2 And x1 < 0 And y1 >= 0 And x2 >= 0 And y2 >= 0 Then a = y2 / r1 b = y1 / r1 m = pi - arcsin(b) n = arcsin(a) Picture1.Circle (0, 0), r1, , m, n 'ElseIf r1 = r2 And X1 <= 0 And Y1 >= 0 And X2 <= 0 And Y2 >= 0 Then ' a = X2 / r2 ' b = Y1 / r1 ' m = pi - arcsin(a) 'n = pi - arcsin(b) ' If m > n Then ' Picture1.Circle (0, 0), r1, , m, n ' Else ' Picture1.Circle (0, 0), r1 'End If ElseIf r1 = r2 And x1 <= 0 And y1 < 0 And x2 <= 0 And y2 < 0 Then a = Abs(x2) / r1 b = Abs(x1) / r1 m = 3 * pi / 2 - arcsin(a) n = 3 * pi / 2 - arcsin(b) If m > n Then Picture1.Circle (0, 0), r1, , n, m Else Picture1.Circle (0, 0), r1, , n, m End If ElseIf r1 = r2 And x1 <= 0 And y1 < 0 And x2 > 0 And y2 <= 0 Then a = Abs(y2) / r1 b = Abs(x1) / r1 m = 3 * pi / 2 - arcsin(a) n = pi * 2 - arcsin(b) Picture1.Circle (0, 0), r1, , m, n ElseIf r1 = r2 And x1 <= 0 And y1 < 0 And x2 >= 0 And y2 >= 0 Then a = y2 / r1 b = Abs(x1) / r1 m = 3 * pi / 2 - arcsin(b) n = arcsin(a) Picture1.Circle (0, 0), r1, , m, n ElseIf r1 = r2 And x1 <= 0 And y1 < 0 And x2 < 0 And y2 >= 0 Then a = y2 / r1 b = Abs(x1) / r1 m = 3 * pi / 2 - arcsin(b) n = pi - arcsin(a) Picture1.Circle (0, 0), r1, , m, n ' ElseIf r1 = r2 And X1 <= 0 And Y1 <= 0 And X2 <= 0 And Y2 <= 0 Then ' a = Abs(X2) / r2 ' b = Abs(X1) / r1 ' m = 3 * pi / 2 - arcsin(b) ' n = 3 * pi / 2 - arcsin(a) ' If m > n Then ' Picture1.Circle (0, 0), r1, , n, m ' Else ' Picture1.Circle (0, 0), r1 ' End If ElseIf r1 = r2 And x1 >= 0 And y1 <= 0 And x2 >= 0 And y2 <= 0 Then a = Abs(y2) / r1 b = Abs(y1) / r1 m = 2 * pi - arcsin(a) n = 2 * pi - arcsin(b) If m > n Then Picture1.Circle (0, 0), r1, , n, m Else Picture1.Circle (0, 0), r1, , n, m End If ElseIf r1 = r2 And x1 > 0 And y1 <= 0 And x2 >= 0 And y2 >= 0 Then a = y2 / r1 b = Abs(y1) / r1 m = 2 * pi - arcsin(b) n = arcsin(a) Picture1.Circle (0, 0), r1, , m, n ElseIf r1 = r2 And x1 > 0 And y1 <= 0 And x2 < 0 And y2 >= 0 Then a = y2 / r1 b = Abs(y1) / r1 m = 2 * pi - arcsin(b) n = pi - arcsin(a) Picture1.Circle (0, 0), r1, , m, n ElseIf r1 = r2 And x1 > 0 And y1 <= 0 And x2 <= 0 And y2 <= 0 Then a = Abs(x2) / r1 b = Abs(y1) / r1 m = 2 * pi - arcsin(b) n = 3 * pi / 2 - arcsin(a) Picture1.Circle (0, 0), r1, , m, n 'Else ' a = Abs(Y2) / r1 ' b = Abs(Y1) / r1 ' m = 2 * pi - arcsin(a) ' n = 2 * pi - arcsin(b) ' If m > n Then ' Picture1.Circle (0, 0), r1, , n, m ' Else ' Picture1.Circle (0, 0), r1 ' End If End If End Sub Function judge(X As Integer, Y As Integer) '象限判断 If Option1.Value = True Then If X >= 0 And Y > 0 Then judge = 1 ElseIf X < 0 And Y >= 0 Then judge = 2 ElseIf X <= 0 And Y < 0 Then judge = 3 Else judge = 4 End If ElseIf Option2.Value = True Then If X > 0 And Y >= 0 Then judge = 1 ElseIf X <= 0 And Y > 0 Then judge = 2 ElseIf X < 0 And Y <= 0 Then judge = 3 Else judge = 4 End If ElseIf Option3.Value = True Then If X > 0 And Y >= 0 Then judge = 1 ElseIf X <= 0 And Y > 0 Then judge = 2 ElseIf X < 0 And Y <= 0 Then judge = 3 Else judge = 4 End If End If End Function Private Sub Command2_Click() ' 连续插补程序 Dim n As Integer, X As Integer, c As Integer, Y As Integer, p As Single Dim f, r1 As Single f = 0 n = 0 x1 = Int(Val(Text1(0))) y1 = Int(Val(Text1(1))) x2 = Int(Val(Text1(2))) y2 = Int(Val(Text1(3))) '直线连续插补 If Option3.Value = True Then Picture1.CurrentX = x1 Picture1.CurrentY = y1 X = Picture1.CurrentX Y = Picture1.CurrentY Text2.Text = Text2.Text & Space(1) & "0" & Space(10) & " f = 0" & Space(45) & x1 & "," & y1 Do Until (X - x2) = 0 And (Y - y2) = 0 n = n + 1 If f >= 0 Then f = f - Abs(y2 - y1) If x2 > x1 Then X = X + 1 Picture1.Line -(X, Y), vbRed Text2.Text = Text2.Text & Chr(13) & Chr(10) & Space(1) & n & Space(11) & "f >= 0" & Space(13) & " +x" & Space(11) & "f=" & Format$(f, "##0.0") & Space(12) & X & "," & Y Else X = X - 1 Picture1.Line -(X, Y), vbRed Text2.Text = Text2.Text & Chr(13) & Chr(10) & Space(1) & n & Space(11) & "f >= 0" & Space(13) & " -x" & Space(11) & "f=" & Format$(f, "##0.0") & Space(12) &
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服