首页 VB对AutoCAD二次开发案例-编辑版-创建菜单栏

VB对AutoCAD二次开发案例-编辑版-创建菜单栏

举报
开通vip

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

VB对AutoCAD二次开发案例-编辑版-创建菜单栏
VB对AutoCAD二次开发案例-编辑版-创建菜单栏VBA对AutoCAD二次开发开发背景因为公司电脑的layout设计部门人员不能将元器件转换为3D,故而每次需要结构工程师自行将元器件的2D图处理后导入三位软件进行3D绘制,在处理二维工程图时,出现很多小圆弧,小圆弧处于不同的层,依次删除小圆弧很繁琐造成工作效率低下。故而通过创建一个菜单栏,将删除小圆弧的程序全部放入一个菜单之下,实现自动化操作操作的 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 如下:连接AutoCAD→获取AutoCAD的菜单组链接→创建菜单→创建菜单项→将菜单显示到AutoCAD中→编辑圆弧删除程序。详尽代码一、在VB中连接AutoCAD的。在VBA中则可以跳过此步Application对象是VB应用程序与AutoCAD之间链接的关键。将Application对象与AutoCAD链接是为AutoCAD二次开发应用程序的第一步工作。当AutoCAD运行时,GetObject函数返回Application对象,否则发生一个错误,这时Err对象的基础属性就会被赋值为一个非零值,可以利用一个错误陷井进行处理。如果AutoCAD没有运行,可以使用CreateObject函数强迫AutoCAD启动。DimmyappAsObjectOnErrorResumeNext如果已有CAD程序打开,则直接获得CAD的控制句柄Setmyapp=GetObject(,"AutoCAD.Application")myapp.Visible=True如果没有CAD程序打开,则通过开启cad软件获得CAD的控制句柄IfErr<>0ThenSetmyapp=CreateObject("Autocad.Application")myapp.Visible=TrueEndIf注意:GetObject(,"AutoCAD.Application")里面的那个逗号的来源请仔细阅读VB程序帮助里面的解释二、创建菜单(在VBA环境下)取得AutoCAD的菜单组的链接代码如下:PublicSubmenu()Dimmy_菜单组AsAcadMenuGroupSetmy_菜单组=ThisDrawing.Application.MenuGroups.Item(0)创建一个名为乾康工具集的新菜单Dimmy_弹出式菜单AsAcadPopupMenuSetmy_弹出式菜单=my_菜单组.Menus.Add("乾康工具集")Dimmy_弹出式菜单项AsAcadPopupMenuItemDimopenMacroAsStringSetmy_弹出式菜单项=my_弹出式菜单.AddMenuItem(0,"删除圆及圆弧","-VBARUNDEL_ACR+chr(13)")my_菜单组.Menus.InsertMenuInMenuBar"乾康工具集",6取得AutoCAD的菜单组的链接创建一个名为删除圆及圆弧的下拉菜单项的注:无论是使用InsertMenuInMenuBar方法还是InsertInMenuBar方法来加载菜单,被加载菜单都必须要有菜单项EndSub-VBARUNDEL_ACR+chr(13)在宏名称之前添加-VBARUN是因为从AutoCAD工具栏或菜单运行VBA宏。Macro特性必须设置为等于-VBARUNfilename.dvb!modulename.macroname其中,filename是工程文件的名称,modulename是包含要运行的宏的模块名称,而macroname是要运行的宏的名称。只有在当前AutoCAD任务中未加载文件时,才需要文件名。如果提供了文件名,将会加载该文件。取得AutoCAD的菜单组的链接菜单组,个人认为AutoCAD中就只有一个菜单中取得AutoCAD的菜单组的链接注:图示解释相关名称菜单,需要使用PopupMenus里面的Add方法来创建新的菜单这些都是工具条菜单项,需要使用PopupMenu里面的AddMenuItem方法来创建新的菜单下图中的“文件”“编辑”“视图”……“帮助”这些合起来就是菜单组(MenuGroup)而“文件”“编辑”“视图”这些单独描述就是弹出式菜单(PopupMenu)再则,标注底下的“快速标注”“线性”“对齐”等,就是特定菜单里面的菜单项(PopupMenuItem)三、自动加载VBA工程文件(在VBA环境下)此处不需要用代码来实现,仅仅需要进入Autocad进行一次设置即可,操作参见下图点击“工具”选项B、选择工具下拉菜单中的”加载应用程序”选项,在弹出的对话框中点击”内容”选项C、在接下来的对话框中点击”添加”,来添加需要自动加载的VBA工程文件四、自动运行VBA工程文件中自己设置的宏文件(在VBA环境下),本例中的宏名称menu首先介绍一下Autocad帮助文件中关于自动运行宏文件的说明用户可以自动运行VBA工程文件中的任何宏,方法是从AutoCAD启动功能(如acad.lsp)中使用VBARUN的命令行版本调用。例如,要自动运行名为drawline的宏,请先将drawline宏保存在VBA工程文件中。然后调用记事本程序新建一个txt文档并在文档中中创建(或附加)下面几行:(defunS::STARTUP()(command"_-vbarun""drawline"))然后将text文档的文件名(包含后缀名)改为acad.lsp将宏命名为AcadStartup,这样在加载VBA时就会自动运行该宏。当加载VBA时,将自动执行acad.dvb文件中所有名为AcadStartup的宏。依据以上信息,结合本例,本文要自动运行的宏名称问menu。操作如下:A、在电脑桌面上,新建一个文本文档,名称为acad.lsp。B、双击文件,在文档中写入如下代码,然后保存(defunS::STARTUP()(command"_-vbarun""menu"))C、将acad.lsp放入Autocad安装目录下的Support文件夹内即可编写删除圆弧的宏程序(在VBA环境下),本例中的宏名称DEL_ACR()初略思路为程序运行过程中,弹出窗体文件,由用户输入需要删除的圆弧的半径范围然后创建一个选集,将符合条件的圆弧加入选集,然后执行选集里面的元素删除代码即可A、首先创建一个窗体对象,其中textbox1和textbox2的文本控件用于传递圆弧的半径范围Textbox2文本输入框Textbox1文本输入框窗体的名称定为”删除元和窗体”在设定号圆弧半径值后,调用hide命令隐藏窗体PrivateSubCommandButton1_Click()删除圆弧窗体.HideEndSubPrivateSubUserForm_Initialize()TextBox1.Text=0.01TextBox2.Text=0.25EndSubB、编写删除圆弧的代码,依次创建选择集名称,设置过滤器规则。给选集增加对象,遍历选集对象执行删除命令。窗体显示,用于设置圆弧半径PublicSubDEL_ACR()删除圆弧窗体.Show创建圆弧选择集。VBA对象浏览器中有Item和Add的详细说明。使用时注意Auotcad对象的层级关系OnErrorResumeNextDimmy_圆弧选择集AsAcadSelectionSetSetmy_圆弧选择集=ThisDrawing.SelectionSets.Item("圆弧集")my_圆弧选择集.DeleteSetmy_圆弧选择集=ThisDrawing.SelectionSets.Add("圆弧集")DimFilterType(6)AsIntegerDimFilterData(6)AsVariantFilterType(0)=-4FilterData(0)="="FilterType(3)=40FilterData(3)=Val(删除圆弧窗体.TextBox1.Text)FilterType(4)=-4FilterData(4)="<="FilterType(5)=40过滤器列 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 中的逻辑运算符也由-4组代码表示,运算符以小于号开始(<),以大于号结束(>)。FilterData(5)=Val(删除圆弧窗体.TextBox2.Text)FilterType(6)=-4FilterData(6)="AND>"my_圆弧选择集.SelectOnScreenFilterType,FilterData使用for循环函数遍历选择集里面的对象进行删除DimiAsIntegerFori=0Tomy_圆弧选择集.Count-1my_圆弧选择集.Item(i).DeleteNextmy_圆弧选择集.DeleteEndSub注:在Autocad中选择集删除的方式对比RemoveItems方法从选择集中删除一个或多个项。删除的项仍然存在于图形中,但不再包含在选择集中。Clear方法将清空选择集。选择集仍然存在,但不再包含任何项。原来包含在选择集中的项仍然存在于图形中,但不再包含在选择集中。Erase方法删除选择集中的所有项。选择集仍然存在,但不再包含任何项。原来包含在选择集中的项也不再存在。Delete方法删除选择集和其中的所有项。调用Delete方法之后,选择集和原来包含在选择集中的项都将不再存在。此为本案例的dvb工程文件
本文档为【VB对AutoCAD二次开发案例-编辑版-创建菜单栏】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
安安
暂无简介~
格式:doc
大小:851KB
软件:Word
页数:15
分类:修理服务/居民服务
上传时间:2022-01-08
浏览量:3