AutoCAD_二次开发技术VBA在窗体绘图中的应用

上传人:xmg****18 文档编号:120195387 上传时间:2020-02-05 格式:DOC 页数:10 大小:65.50KB
返回 下载 相关 举报
AutoCAD_二次开发技术VBA在窗体绘图中的应用_第1页
第1页 / 共10页
AutoCAD_二次开发技术VBA在窗体绘图中的应用_第2页
第2页 / 共10页
AutoCAD_二次开发技术VBA在窗体绘图中的应用_第3页
第3页 / 共10页
AutoCAD_二次开发技术VBA在窗体绘图中的应用_第4页
第4页 / 共10页
AutoCAD_二次开发技术VBA在窗体绘图中的应用_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《AutoCAD_二次开发技术VBA在窗体绘图中的应用》由会员分享,可在线阅读,更多相关《AutoCAD_二次开发技术VBA在窗体绘图中的应用(10页珍藏版)》请在金锄头文库上搜索。

1、.word可编辑. AutoCAD 二次开发技术VBA 在窗体绘图中的应用 地质10-1班 何有. 专业.专注 . AutoCAD 二次开发技术VBA在窗体绘图中的应用 何有 (黑龙江科技大学 地质10-1班)摘要:根据目前提供的AutoCAD二次开发工具,结合VB面向对象编程的强大功能,介绍了AutoCAD进行二次开发的一般原理,着重分析了VB对AutoCAD进行二次开发的实现途径和具体方法,并且结合实际要求,以窗体绘制巷道断面为例,说明了VB对AutoCAD二次开发完成窗体化绘图的优点及实用性。关键词: VBA; AutoCAD; 二次开发一、引言 AutoCAD二次开发主要包括用户接口的

2、设计和开发,标准元件库的建立, 工程图纸的生成, 接口文件的生成,其中用户接口包括绘图主界面、 菜单、 工具按钮和命令行等。标准元件库的建立可以大大减少复杂繁琐的重复劳动, 同时也可以提高应用程序的标准化程度。各种明细表文件的自动生成对于完整的工程图纸也是必须的。此外,利用数据库技术可以实现2个系统之间的信息交换,同时引入一些复杂的算法来实现应用程序结构的优化。可以看出,二次开发特别是利用高级语言进行的AutoCAD二次开发具有较大的灵活性, 再加上数据库技术和动态链接库技术的支持等, 使应用程序具有更为强大的功能和运行效率, 系统的集成性也得到很大的提高。 Visual Basic 是独立于

3、AutoCAD 的开发环境, 而VBA 和AutoCAD 运行在同一处理空间,通过接口界面提供AutoCAD 的编程控制。VBA 通过使用ThisDrawing 对象提供到AutoCAD当前进程中激活图形的链接, 从而可以快速访问当前文档对象和其方法、 属性和事件,以及其他所有对象层中的对象。这使程序执行速度大大地提高了,两者之间的通讯变得简洁而高效。系统环境为AutoCAD 和 VBA 之间的结合提供很强的接口功能,不但可以控制AutoCAD 对象,还可以从其他应用程序发送数据或接收数据。VBA应用程序是由很多个宏组成的。2、 VBA 在窗体绘图中的应用实例下面以基于AutoCAD2007

4、用VBA 作二次开发的窗体绘图为例, 详细介绍 VBA 开发中的技术要点。1、研究背景Cad在在实际应用中是促进科研成果和开发转化,实现设计自动化的关键技术,是提高工程和产品设计水平,缩短科研和产品开发周期提高劳动生产力的重要手段,是科研单位提高科研能力、企业提高创新和管理水平的重要条件。相对于手工绘图,它的优越性在其的准确、快捷、方便和强大的储存。在近年来看,它的优越性越来越得到广大人士的认可。但是,精益求精是人们一直追求的目标,传统的CAD在制图巷道断面图的时候,就是直线,圆弧,点这些元素的组合,每次都得这样重复,没有一个窗体可以实现,输入所需的参数,直接出图的设计与开发。2、 VBA 二

5、次开发的技术(窗体制做)要点 (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_A

6、ng = 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

7、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

8、) * 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) =

9、 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 技术可实现对AutoCA

10、D的控制,极大地提高编程效率。充分利用面向对象的开发技术和AutoCAD 的资源, 可以进一步增强程序的功能和代码的重用性。基于VBA 设计的窗体绘图, 符合工程实际要求,操作方便、 简洁,为不规则巷道断面设计全过程提供了一体化、 标准化的解决方案。实践证明, VBA 二次开发技术将VBA 的快速编程优势与AutoCAD 的图形功能完美结合,是一种行之有效、 方便实用的设计方法。参考文献: 1林在康, 等. 采矿AotoCAD2006入门与提高.北京.中国矿业大学出版社,2005. 2白康生. Visual Basic程序设计基础.北京:清华大学出版社,2006. 3郭朝勇, 等. Aut oCAD R14(中文版)二次开发技术 M .北京: 清华 大学出版社, 1999. 4胡荣, 等. Aut oCAD2000开发工具VBA及ActiveX开发指南 M 北京: 人民邮电出版社, 1999.

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号