AutoCAD-二次开发技术VBA在窗体绘图中的应用_第1页
AutoCAD-二次开发技术VBA在窗体绘图中的应用_第2页
AutoCAD-二次开发技术VBA在窗体绘图中的应用_第3页
AutoCAD-二次开发技术VBA在窗体绘图中的应用_第4页
AutoCAD-二次开发技术VBA在窗体绘图中的应用_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

AutoCAD 二次开发技术VBA 在窗体绘图中的应用 地质10-1班 何有 AutoCAD 二次开发技术VBA在窗体绘图中的应用 何有 (黑龙江科技大学 地质10-1班)摘要:根据目前提供的AutoCAD二次开发工具,结合VB面向对象编程的强大功能,介绍了AutoCAD进行二次开发的一般原理,着重分析了VB对AutoCAD进行二次开发的实现途径和具体方法,并且结合实际要求,以窗体绘制巷道断面为例,说明了VB对AutoCAD二次开发完成窗体化绘图的优点及实用性。关键词: VBA; AutoCAD; 二次开发一、引言 AutoCAD二次开发主要包括用户接口的设计和开发,标准元件库的建立, 工程图纸的生成, 接口文件的生成,其中用户接口包括绘图主界面、 菜单、 工具按钮和命令行等。标准元件库的建立可以大大减少复杂繁琐的重复劳动, 同时也可以提高应用程序的标准化程度。各种明细表文件的自动生成对于完整的工程图纸也是必须的。此外,利用数据库技术可以实现2个系统之间的信息交换,同时引入一些复杂的算法来实现应用程序结构的优化。可以看出,二次开发特别是利用高级语言进行的AutoCAD二次开发具有较大的灵活性, 再加上数据库技术和动态链接库技术的支持等, 使应用程序具有更为强大的功能和运行效率, 系统的集成性也得到很大的提高。 Visual Basic 是独立于AutoCAD 的开发环境, 而VBA 和AutoCAD 运行在同一处理空间,通过接口界面提供AutoCAD 的编程控制。VBA 通过使用ThisDrawing 对象提供到AutoCAD当前进程中激活图形的链接, 从而可以快速访问当前文档对象和其方法、 属性和事件,以及其他所有对象层中的对象。这使程序执行速度大大地提高了,两者之间的通讯变得简洁而高效。系统环境为AutoCAD 和 VBA 之间的结合提供很强的接口功能,不但可以控制AutoCAD 对象,还可以从其他应用程序发送数据或接收数据。VBA应用程序是由很多个宏组成的。2、 VBA 在窗体绘图中的应用实例下面以基于AutoCAD2007 用VBA 作二次开发的窗体绘图为例, 详细介绍 VBA 开发中的技术要点。1、研究背景Cad在在实际应用中是促进科研成果和开发转化,实现设计自动化的关键技术,是提高工程和产品设计水平,缩短科研和产品开发周期提高劳动生产力的重要手段,是科研单位提高科研能力、企业提高创新和管理水平的重要条件。相对于手工绘图,它的优越性在其的准确、快捷、方便和强大的储存。在近年来看,它的优越性越来越得到广大人士的认可。但是,精益求精是人们一直追求的目标,传统的CAD在制图巷道断面图的时候,就是直线,圆弧,点这些元素的组合,每次都得这样重复,没有一个窗体可以实现,输入所需的参数,直接出图的设计与开发。2、 VBA 二次开发的技术(窗体制做)要点 (1)进入VBA开发环境 启动CAD工具宏Visual Basic编辑器插入窗体在窗体上添加所需的标签、文本框、选择按钮控件、命令控件 (2)具体代码 双击命令控件进行代码编写,具体代码如下: Private Sub CommandButton1_Click() Dim Pi As Double Pi = 3.14159265 Dim b As Double b = Val(Txt_B.Text) Dim h As Double h = Val(Txt_H.Text) Dim Top_Ang, Left_Ang, Right_Ang As Double Top_Ang = Val(Txt_Top.Text) / 180 * Pi 判断左倾和右倾,进行角度对换 If OptLeft.Value = True Then Left_Ang = Val(Txt_Left.Text) / 180 * Pi Right_Ang = Val(Txt_Right.Text) / 180 * Pi ElseIf OptRight.Value = True Then Right_Ang = Val(Txt_Left.Text) / 180 * Pi Left_Ang = Val(Txt_Right.Text) / 180 * Pi End If判断完成 Dim Hd(0 To 9) As Double Hd(0) = 0: Hd(1) = 0 Hd(2) = b: Hd(3) = 0 Hd(4) = b - (h + b / 2 * Tan(Top_Ang) / (Tan(Right_Ang) + Tan(Top_Ang) Hd(5) = Tan(Right_Ang) * (h + b / 2 * Tan(Top_Ang) / (Tan(Right_Ang) + Tan(Top_Ang) Hd(6) = (h - b / 2 * Tan(Top_Ang) / (Tan(Left_Ang) - Tan(Top_Ang) Hd(7) = (Tan(Left_Ang) * Hd(6) Hd(8) = 0: Hd(9) = 0定义对象变量,画巷道 Dim Poly_Obj As AcadLWPolyline Set Poly_Obj = ThisDrawing.ModelSpace.AddLightWeightPolyline(Hd)完成 Dim Mirr_Obj As AcadLWPolyline Dim Mirr1(0 To 2) As Double Dim Mirr2(0 To 2) As Double判断左倾和右倾,进行镜像并删除原来的巷道 If OptRight.Value = True Then Mirr1(0) = 0: Mirr1(1) = 0 Mirr2(0) = 0: Mirr2(1) = 1 Set Mirr_Obj = Poly_Obj.Mirror(Mirr1, Mirr2) Poly_Obj.Delete End If完成 End Sub Private Sub CommandButton2_Click() Unload Me End Sub Private Sub UserForm_Activate() OptLeft.Value = 1 OptRight.Value = 0End Sub(1) 运行在窗体中输入所需参数如图1所示 图1 图2 (4)运行结果如图2所示三 、结语 调用VBA 技术可实现对AutoCAD的控制,极大地提高编程效率。充分利用面向对象的开发技术和AutoCAD 的资源, 可以进一步增强程序的功能和代码的重用性。基于VBA 设计的窗体绘图, 符合工程实际要求,操作方便、 简洁,为不规则巷道断面设计全过程提供了一体化、 标准化的解决方案。实践证明, VBA 二次开发技术将VBA 的快速编程优势与AutoCAD 的图形功能完美结合,是一种行之有效、 方便实用的设计方法。参考文献: 1林在康, 等. 采矿AotoCAD2006入门与提高.北京.中国矿业大学出版社,2005. 2白康生

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论