VB对AutoCAD二次开发案例.docx

上传人:小飞机 文档编号:4925775 上传时间:2023-05-23 格式:DOCX 页数:9 大小:210.22KB
返回 下载 相关 举报
VB对AutoCAD二次开发案例.docx_第1页
第1页 / 共9页
VB对AutoCAD二次开发案例.docx_第2页
第2页 / 共9页
VB对AutoCAD二次开发案例.docx_第3页
第3页 / 共9页
VB对AutoCAD二次开发案例.docx_第4页
第4页 / 共9页
VB对AutoCAD二次开发案例.docx_第5页
第5页 / 共9页
亲,该文档总共9页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《VB对AutoCAD二次开发案例.docx》由会员分享,可在线阅读,更多相关《VB对AutoCAD二次开发案例.docx(9页珍藏版)》请在三一办公上搜索。

1、VBA对AutoCAD二次开发开发背景因为公司电脑的layout设计部门人员不能将元器件转换为3D,故而每次需 要结构工程师自行将元器件的2D图处理后导入三位软件进行3D绘制,在处理二 维工程图时,出现很多小圆弧,小圆弧处于不同的层,依次删除小圆弧很繁琐造 成工作效率低下。故而通过创建一个菜单栏,将删除小圆弧的程序全部放入一个菜单之下, 实现自动化操作操作的流程如下:连接AutoCAD-获取AutoCAD的菜单组链接一创建菜单一创建菜单项一将菜单显 示到AutoCAD中一编辑圆弧删除程序。详尽代码一、在VB中连接AutoCAD的。在VBA中则可以跳过此步Application对象是VB应用程序

2、与AutoCAD 之间链接的关键。将Application对象与AutoCAD链接是为AutoCAD二次开发应用程序的第一步工作。当AutoCAD运行时,GetObject函数返回Application对象,否则发生一个错误,这 时Err对象的基础属性就会被赋值为一个非零值,可以利用一个错误陷井进行处理。如果AutoCAD没有运行,可以使用CreateObject函数强迫AutoCAD启动。Dim myapp As ObjectOn Error Resume NextSet myapp = GetObject(, AutoCAD.Application)如果已有CAD程序打开,则直接获得CAD

3、的控制句柄myapp.Visible = TrueIf Err 0 ThenSet myapp = CreateObject(Autocad.Application)如果没有CAD程序打开,则 通过开启cad软件获得CAD 的控制句柄myapp.Visible = TrueEnd If注意:GetObject(, AutoCAD.Application)里面的那个逗号的来源请仔细阅读VB程序帮助里面的解释代码如下:Public Sub menu()取得AutoCAD的菜单组的链接链接二、创建菜单(在VBA环境下)Dim my_菜单组 As AcadMenuGroupSet my_菜单组=Thi

4、sDrawing.Application.MenuGroups.Item(0)Dim my_弹出式菜单 As AcadPopupMenuS创建一个名为乾康工具Set my_弹出式菜单=my_菜单组.Menus.Add(乾康工具集)j集的新菜单Dim my_弹出式菜单项 As AcadPopupMenuItemDim openMacro As StringSet my_弹出式菜单项=my_弹出式菜单.AddMenuItem。删除圆及圆弧,-VBARUN DEL_ACR + chr(13)my_ 菜单组.Menus.InsertMenuInMenuBar 乾康工具集,6创建一个名为删除圆及圆弧的下

5、拉菜单项注: 无论是使用 InsertMenuInMenuBar 方法还是InsertlnMenuBar方法来加载菜单,被加载菜单都必须要有菜 一/End Sub-VBARUN DEL_ACR + chr(13)在宏名称之前添加-VBARUN是因为从AutoCAD工具栏或菜 单运行VBA宏。Macro特性必须设置为等于-VBARUN其中,是工程文件的名称,modulename是包含要运行的宏的模块名称,而macroname 是要运行的宏的名称。只有在当前AutoCAD任务中未加载文件时,才需要文件名。如果 提供了文件名,将会加载该文件。注:图示解释相关名称AutaCAD Application

6、菜单组,个人认为AutoCAD中就只有一个菜单中单,需要使用PopupMenus 里面的Add方法来创建新的菜单项,需要使用PopupMenu 里面的AddMenuItem方法来创建这些都是工具条取得AutoCAD的弓链接下图中的“文件”“编辑”“视图”“帮助”这些合起来就是菜单组(MenuGroup)而“文件”“编辑” “视图”这些单独描述就是弹出式菜单(PopupMenu)再则,标注底下的“快速标注”“线性” “对齐”等,就是特定菜单里面的菜单项 (PopupMenultem) BLayerL 敖(El 七回 /?* anfEru】湍辙EJ视昌叫插入国帽式(口)工具IT)箜度(D)标注停改

7、(M)燕秀工具暗N3M 商口 寿助(HJ 岳以睁#1X0角伪蹦主1D Q|&x n务孑s | cAut uCAH 经典Qg唯匚04()由的ALL dimIIAutoCAD 2007三、自动加载VBA工程文件(在VBA环境下)此处不需要用代码来实现,仅仅需要进入Autocad进行一次设置即可,操作参见下图A、点击“工具”选项列2307 C:UserschenqkDeiktop104 HKDO1605O31 OC :末阪:REV T01 PCE.DWGS Sn(F)潟揖(if 蜩(V) suw 昴扁乾康王魅 蛤图河 标注牌)信改网 燕秀工具馆归明 窗口 (W)食助(印II 口做偈S酬。I W 0

8、J w I 二土竺良咬|责固隆学盥围用III居w皿孔B、选择工具下拉菜单中的”加载应用程序”选项,在弹出的对话框中点击”内容”选项104-HKEO1605O31-0C大板-REV-T 二MW轰二兵妻工作空间块桐器国AutoLISPfSJ显示图候凹受囹赋序CO) WCQ)恒吏新学度E运行睥本 宏CTRL+9CTRL十0加乾(U应用程序(*. -MTK:* 1=P:*. dvb : *件髡出s-2-iEEO.】Ed2lXl匚:WwEchMujkAppDjim .D: VFrasrui Tils fcSG)Atl .B: iPrflgrui Fl 1皓 仪日6JJui .f-rWC T JC、在接下

9、来的对话框中点击”添加”,来添加需要自动加载的VBA工程文件四、自动运行VBA工程文件中自己设置的宏文件(在VBA环境下),本例中的宏名称menu首先介绍一下Autocad帮助文件中关于自动运行宏文件的说明用户可以自动运行VBA 工程文件中的任何宏,方法是从AutoCAD启动功能 (如acad.lsp)中使用VBARUN的命令行版本调用。例如,要自动运行名为 drawline的宏,请先将drawline宏保存在VBA工程文件中。然后调用记事本 程序新建一个txt文档 并在 文档中中创建(或附加)下面几行:(defun S:STARTUP()(command _-vbarun drawline)

10、然后将text文档的文件名(包含后缀名)改为acad.lsp将宏命名为AcadStartup,这样在加载VBA时就会自动运行该宏。当加载 VBA时,将自动执行acad.dvb文件中所有名为AcadStartup的宏。依据以上信息,结合本例,本文要自动运行的宏名称问menu。操作如下:A、在电脑桌面上,新建一个文本文档,名称为acad.lsp。jsfI日、双击文件,在文档中写入如下代码,然后保存(defun S:STARTUP()(command _-vbarun menu)C、将acad.lsp放入Autocad安装目录下的Support文件夹内即可五、编写删除圆弧的宏程序(在VBA环境下),

11、本例中的宏名称DEL_ACR()初略思路为程序运行过程中,弹出窗体文件,由用户输入需要删除的圆弧的半径范围然后创建一个选集,将符合条件的圆弧加入选集,然后执行选集里面的元素删除代码即A、首先创建一个窗体对象,其中textboxl和textbox2的文本控件用于传递圆弧的 半径范围Private Sub CommandButton1_Click()/窗体的名称定为”删除元和窗体”删除圆弧窗体.Hide在设定号圆弧半径值后,调用hideEnd Sub一-_Private Sub UserForm_Initialize()TextBox1.Text = 0.01TextBox2.Text = 0.2

12、5End SubB、编写删除圆弧的代码,依次创建选择集名称,设置过滤器规则。给选集增加对象, 遍历选集对象执行删除命令。Public Sub DEL-ACR()窗体显示,用于设置圆弧半径“删除圆弧窗体.ShowOn Error Resume Nextf/创建圆弧选择集。Dim my_圆弧选择集As AcadSelectionSet/ vba对象浏览器、 中有Item 和AddSet my_ 圆弧选择集=ThisDrawing.SelectionSets.Item(圆弧集)一的详细说明。my圆弧选择集.Delete一使用时注意Set my_ 圆弧选择集=ThisDrawing.Selection

13、Sets.Add(圆弧集)Auotcad 对象的层yDim FilterData(6) As VariantFilterType(0) = -4FilterData(0) = =FilterType(3) = 40FilterData(3) = Val (删除圆弧窗体.TextBox1.Text)FilterType(4) = -4FilterData(4) = -4组代码表示,运算符以小于号 开始(),以大于号结束()。my_ 圆弧选择集.SelectOnScreen FilterType, FilterData使用for循环函数遍历选择.哩里面的对象进行删除一Dim i As Intege

14、rFor i = 0 To my_圆弧选择集.Count - 1my_ 圆弧选择集.Item(i).DeleteNextmy_圆弧选择集.DeleteEnd Sub注:在Autocad中选择集删除的方式对比Removeitems方法从选择集中删除一个或多个项。删除的项仍然存在于图形中,但不再 包含在选择集中。Clear方法将清空选择集。选择集仍然存在,但不再包含任何项。原来包含在选择集中 的项仍然存在于图形中,但不再包含在选择集中。Erase方法删除选择集中的所有项。选择集仍然存在,但不再包含任何项。原来包含在 选择集中的项也不再存在。Delete方法删除选择集和其中的所有项。调用Delete方法之后,选择集和原来包含在 选择集中的项都将不再存在。此为本案例的dvb工程文件案例文件.zip

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号