利用VBA技术实现AutoCAD中实体线条宽度的自动修改.docVIP

  • 133
  • 0
  • 约4.69千字
  • 约 3页
  • 2017-08-31 发布于重庆
  • 举报

利用VBA技术实现AutoCAD中实体线条宽度的自动修改.doc

利用VBA技术实现AutoCAD中实体线条宽度的自动修改.doc

利用VBA技术实现AutoCAD中实体线条宽度的自动修改 黄立靖 (福建林业职业技术学院 南平 353000) 摘要 运用AutoCAD中的VBA技术,编写一个能一次修改多个图形实体宽度的应用程序,实现AutoCAD中图形实体对象线条宽度的自动修改。详细介绍了VBA应用程序的开发过程。 关键词 VBA 线宽 AutoCAD 修改 中图文类号:TP39 To realize automatic modification of object width in AuotCAD By Using VBA technology HUANG Li-jing (Fu Jian Forestry Vocational Technical College Nanping 353000 ) Abstract: An application of modification more than one objects width once is written by using VBA technology in AutoCAD, realizing automatic modification of AutoCAD graphics objects width.The development process of VBA application is introduced in particular in the paper. Key words: VBA Width AutoCAD Modification 引言 AutoCAD是目前最为流行的工程图形处理软件,它不但具有完善的绘图功能、良好的用户界面,而且允许用户进行二次开发。在以前的AutoCAD版本中,开发者一般使用AutoLISP语言或基于C语言的ADS、ARS等开发工具;而在AutoCAD2000版本中,用户可以使用其内嵌的VBA(Visual Basic Application)技术来开发AutoCAD。与VB一样,VBA是面向对象的程序设计语言,它继承了VB语言简单、功能强大、易学易用的特点,同时,由于VBA可与主程序在同一个内存空间内运行,大大提高了运行速度。VBA5.0集成开发环境还提供了高质量的用户化编程能力,得到业界人士的高度赞誉,是二次开发AutoCAD的理想工具。下面笔者以创建快捷、方便、准确地修改图形实体线宽的VBA程序来阐述开发的过程。 VBA应用程序的开发 2.1问题的提出 在绘制工程图形时,为了表达不同的建筑结构或零件的不同部位,经常使用不同线型和不同线宽的线条来表示。一些工程技术人员,往往为了节省时间,经常将图形实体先画成细实线,然后再根据需要修改线宽,常用的方法有: ⑴用多义线命令“Polyline”绘制的线条或圆弧,再用“Pedit”命来修改,但该命令每次只能修改一条线的宽度,修改过程十分繁锁、不便,而且有些实体如圆、椭圆、椭圆弧等还不能用该命令来修改线宽。 ⑵用“Donut”命令绘制不同线宽的圆轮廓时,需要经常改变绘制过程中的内、外径数据,有时还要多次进行重复计算,也不方便。 ⑶根据图层设置的线宽,来修改实体对象的线宽,却不具备先择线条的随意性,也还是不够理想。 以上几种方法在实际操作中都不方便、快捷。鉴于此,笔者利用VBA技术,编写能一次修改多个实体线宽的应用程序,极大地方便了工程图形的绘制,提高了绘图的效率和精确度。 2.2修改对象选择集的创建和管理 运用VBA编程语句,可实现一次选择便可修改多个图形实体对象线宽的功能。VBA技术的选择集的建立方法如下:[1] Dim Selset as AcadSelectionSet 定义一个选择集“Selset” If Not IsNull(ThisDrawing.SelectionSets.Item(“sset”)) Then Set Selset=ThisDrawing.SelectionSets.Item(“sset”) Selset.Delect 如果选择集已存在,则删除 End if Set Selset=ThisDrawing.SelectionSets.Add(“sset”) 添加选择集“Selset” 程序中ThisDrawing是一个代表当前图形文件的程序术语,如果工程是独立的,ThisDrawing通常是指AutoCAD中的活动文档;如果是内嵌的工程,ThisDrawing通常是指包含此工程在内的图形文档。而选择集数据建立的模式通常有几种方法,程序语句如下:[1] ⑴Selset.SelectOnScreen 直接在屏幕上选择 ⑵Selset.Select Mode[, Point1][,

文档评论(0)

1亿VIP精品文档

相关文档