对vb软件系统进行CAD二次开发

  • 格式:doc
  • 大小:51.00 KB
  • 文档页数:7

对vb软件系统进行CAD二次开发 关键词:标准零件、AutoCAD VBA语言、AutoCAD的二次开发 计算机辅助制图是现代企业生产和设计的重要工具,AutoCAD是计算机辅助设计工具的一种,VB 是AutoCAD软件的重要组成部分。它是AutoCAD软件二次开发的重要工具。它可使一些常用的机械零件能很快的调用,简捷方便,很大的提高了工作效率缩短了新产品的开发周期,提高制图的质量。利用VB语言对AutoCAD进行二次开发是现代计算机技术不可缺少的内容,而且直接影响到制图的速度和质量。本次设计是 AutoCAD软件二次开发的其中一部分,它在AutoCAD软件开发中占有一定的地位和作用。 AutoCAD为用户提供了多种二次开发工具,其中较常用的有AutoLISP、VBA、ObjectARX三种方式。 AutoLISP是一种解释性的表结构处理语言,具有语言结构简单、开发周期短、不依赖于操作平台的特点,但是作为解释语言,其运行速度和保密性方面有一定的缺陷,并且不适合开发有复杂运算的软件。 Visual Basic(VB)是美国微软公司推出的程序开发工具,它简单易学,适用面广,在Windows平台上被广泛使用。为此,可以作为测绘工作者进行程序设计的首选工具。 VBA是Visual Basic for Applications的缩写,由 Visual Basic派生而来,现在已经成为Mictosoft产品的标准语言。与VB 一样,VBA是面向对象的设计语言,它继承了VB语法简单、功能强大的特点,同时,由于VBA可与主程序在同一内存空间内运行,大大提高了运行的速度,并具有某些“智能”功能 VBA的概念与作用 VBA(Visual Basic for Application) 是一种完全面向对象体系结构的编程语言,由于其在开发方面的易用性和具有强大的功能,因此许多应用程序均嵌入该语言作为开发工具。

利用VB进行AutoCAD二次开发的关键步骤

首先,要在VB中引用AutoCAD的类型库Acad.tlb,该库位于AutoCAD R14的安装目录下。 其次,要建立用VB开发的应用程序与AutoCAD间的联系,这一过程,称为初 始化。相应的程序代码如下: Private Sub InitGraph() On Error Resume Next Set AcadApp = GetObject(, "AutoCAD.Application") If Err Then MsgBox Err.Description Unload Me End If AcadApp.Visible = True Set AcadDoc = AcadApp.ActiveDocument Set MoSpace = AcadDoc.ModelSpace End Sub 之后,即可以用AutoCAD类型库提供的属性、方法对AutoCAD进行操作,如画线,可用 AddLightWeightPolyline语句来完成,写文字,可用AddText语句来实现。 螺栓编程流程图

Private Sub canshu_Click()

End Sub Private Sub CmdExit_Click() Unload Me End Sub Private Sub CmdOk_Click() '检查参数赋值情况 If TextX.Text = "" Or TextY.Text = "" Or TextZ.Text = "" Then MsgBox "请在屏幕选起点!", vbExclamation, "警告" Exit Sub End If '定义直线对象 Dim objLine01, ObjLine02, ObjLine03, ObjLine04, ObjLine05, ObjLine06, ObjLine07, ObjLine08, ObjLine09, ObjLine10, ObjLine11, ObjLine12, ObjLine13, ObjLine14, ObjLine15 As AcadLine '定义数组变量,作为各顶点的坐标 Dim Pt01(2) As Double:Dim Pt02(2) As Double:Dim Pt03(2) As Double Dim Pt04(2) As Double:Dim Pt05(2) As Double:Dim Pt06(2) As Double Dim Pt07(2) As Double:Dim Pt08(2) As Double:Dim Pt09(2) As Double Dim Pt10(2) As Double:Dim Pt11(2) As Double:Dim Pt12(2) As Double Dim Pt13(2) As Double:Dim Pt14(2) As Double:Dim Pt15(2) As Double Dim Pt16(2) As Double:Dim Pt17(2) As Double:Dim Pt18(2) As Double Dim Pt19(2) As Double:Dim Pt20(2) As Double:Dim Pt21(2) As Double Dim Pt22(2) As Double:Dim Pt23(2) As Double:Dim d, l, b As Double Dim x, y, z As Variant x = TextX: y = TextY: z = TextZ '检查参数赋值情况 If TextZhiJ.Text = "" Or TextChangD.Text = "" Then MsgBox "参数不能为空,请检查参数的输入.", vbExclamation, "警告" Exit Sub End If d = TextZhiJ: l = TextChangD If d = 5 Then MsgBox "螺栓长度应为:GB5780 25~50; GB5781 10~40", vbExclamation, "警告" b = 16 If l < 16 Or l > 50 Then Exit Sub End If End If If d = 6 Then MsgBox "螺栓长度应为:GB5780 30~60; GB5781 12~50", vbExclamation, "警告" b = 18 If l < 18 Or l > 60 Then Exit Sub End If End If If d = 8 Then MsgBox "螺栓长度应为:GB5780 35~80; GB5781 16~65", vbExclamation, "警告" b = 22 If l < 22 Or l > 80 Then Exit Sub End If End If If d = 10 Then MsgBox "螺栓长度应为:GB5780 40~100; GB5781 20~80", vbExclamation, "警告" b = 26 If l < 26 Or l > 100 Then Exit Sub End If End If If d = 12 Then MsgBox "螺栓长度应为:GB5780 45~120; GB5781 25~100", vbExclamation, "警告" b = 30 If l < 30 Or l > 120 Then Exit Sub End If End If If d = 16 Then MsgBox "螺栓长度应为:GB5780 55~160; GB5781 35~100", vbExclamation, "警告" b = 38 If l < 38 Or l > 160 Then Exit Sub End If End If If d = 20 Then MsgBox "螺栓长度应为:GB5780 65~200; GB5781 40~100", vbExclamation, "警告" b = 40 If l < 40 Or l > 200 Then Exit Sub End If End If If d = 24 Then MsgBox "螺栓长度应为:GB5780 80~240; GB5781 50~100", vbExclamation, "警告" b = 54 If l < 54 Or l > 240 Then Exit Sub End If End If If d = 30 Then MsgBox "螺栓长度应为:GB5780 90~300; GB5781 60~100", vbExclamation, "警告" b = 66 If l < 66 Or l > 300 Then Exit Sub End If End If If d = 36 Then MsgBox "螺栓长度应为:GB5780 110~300; GB5781 70~100", vbExclamation, "警告" b = 78 If l < 78 Or l > 300 Then Exit Sub End If End If If d = 42 Then MsgBox "螺栓长度应为:GB5780 160~420; GB5781 80~420", vbExclamation, "警告" b = 96 If l < 96 Or l > 420 Then Exit Sub End If End If If d = 48 Then MsgBox "螺栓长度应为:GB5780 180~480; GB5781 90~480", vbExclamation, "警告" b = 108 If l < 108 Or l > 480 Then Exit Sub End If End If '判断语句 If d <> 5# And d <> 6 And d <> 8 And d <> 10 And d <> 12 And d <> 16 And d <> 20 And d <> 24 And d <> 30 And d <> 36 And d <> 42 And d <> 48 Then MsgBox "螺栓直径可能为5,6,8,10,12,16,20,24,30,36,42,48?", vbExclamation, "警告"