版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验一 ObjectARX .NET托管开发包的使用一、主要内容1、下载安装ObjectARX .NET托管开发包2、创建AutoCAD命令3、创建自定义用户菜单4、创建自定义用户工具条5、创建用户自定义窗体二、学时安排三、预习内容及要求回顾ObjectARX API和其托管API之间的对应关系;掌握不同API版本对应的VS.NET开发版本;熟悉创建用户需求所要引用命名空间。开发语言使用C#,AutoCAD版本2010,objectARX2010。四、下载安装ObjectARX4.1下载ObjectARX不同的ACAD版本用不同的开发包及开发环境ACAD2000ACAD2002 : VC+ 6
2、.0ACAD2004ACAD2006 : VS.NET 2002ACAD2007ACAD2009 : VS.NET 2005ACAD2010ACAD2011 : VS.NET 2008ACAD2012 : VS.NET 2010下载ObjectARX 在打开打开默认网页浏览器并浏览网站. 的网页上,点击 License & Download(许可&下载). 填写必填字段并选择ObjectARX for AutoCAD 2010. 点击 Submit(提交)按扭. 在下载页, 点击 Download Now(现在下载) 使用下载管理器或点击Standard Download Method(标准下
3、载方法) 使用你的网页浏览器的默认下载方法下载. 点击 Save(保存) 或用于保存文件到你的本地驱动器的选项。 指定下载ObjectARX SDK安装包文件存放的位置。 一旦安装包文件下载完成,就浏览你保存在本地的安装并双击它,安装向导将显示 在ObjectARX 对话框中, 指定一个新的安装位置或接受默认的安装位置。点击Install(安装)按扭. 如果没有遇到问题,安装向导完成后关闭它 安装ObjectARX向导和托管项目模板一旦 ObjectARX SDK被安装,请使用默认目录c:ObjectARX 浏览它的安装文件夹。 浏览安装文件夹后,打开Utils 文件夹和ObjARXWiz文件
4、夹。 在 ObjARXWiz 文件夹中, 双击ArxWizards.msi文件。 在ObjectARX Wizards for AutoCAD 2010 对话框中, 点击 Next. 在Enter Your Preferred Default RDS Symbol框中,输入你的公司名字的缩写并点击Next按扭。 你输入的RDS文字被用于默认名字的前缀,这个名字是用ObjectARX向导与工程模板创建类或命令时使用的。 注意RDS代表Registered Developer Symbol, 它用于创建命令和类的标识,以帮助避免与其它应用程序之间的潜在冲突。 在Member Variable Wi
5、zard页,选择同意Replace MS Member Variable Wizard by Autodesk Member Variable Wizard并单击 Next按扭. 在选择Select Installation Folder(安装文件夹)页,点击 向导的Browse按扭指定一个新的安装位置或者同意默认位置。点击Next按扭. 再次点击安装向导的Next 按扭。 点击向导的 Close按扭退出。 4.2 Hello World程序创建1)在VS.Net 2010中建项目HelloWorld如果使用托管ObjectARX API,则使用C#语言作为开发语言,操作如下:选择Visual
6、 C#下的ObjectARX选择项目类型本实验采用.NET托管API从“项目类型”列表中选择第二个“Visual C#”,从模板中选择“AutoCAD Managed Project”,输入项目名称“HelloWorld”.Net扩展选项,单击“完成”按钮如果弹出如下对话框说明没安装正确,可以手动加载托管DLL从ObjectARX安装目录下加载acmgd.dll和acdbmgd.dll使用.NET对象浏览器查看acmgd.dll-AutoCAD .NET托管类acdbmgd.dll ObjectDBX .NET托管类完整程序如下using System;using Autodesk.AutoC
7、AD.Runtime;using Autodesk.AutoCAD.ApplicationServices;using Autodesk.AutoCAD.DatabaseServices;using Autodesk.AutoCAD.Geometry;using Autodesk.AutoCAD.EditorInput; assembly: CommandClass(typeof(HelloWorld.Hello)namespace HelloWorld / / Summary description for rdsCommands. / public class Hello public H
8、ello() CommandMethod(HW) static public void HW() Editor pEd = Application.DocumentManager.MdiActiveDocument.Editor; pEd.WriteMessage(CAD欢迎你!); 编译,并在AutoCAD加载DLL输入命令“HW”,查看运行结果4.3、创建上下文菜单using System;using Autodesk.AutoCAD.Windows;using Autodesk.AutoCAD.Runtime;assembly: CommandClass(typeof(Contextme
9、nu.Contextmenu)namespace Contextmenu public class Contextmenu : IExtensionApplication ContextMenuExtension contextMenu; HelloForm hfrm; /初始化菜单 public void Initialize() AddMenu(); /释放资源,移除菜单 public void Terminate() Remove(); /添加菜单 public void AddMenu() try contextMenu = new ContextMenuExtension(); co
10、ntextMenu.Title = Ting_Menu; Autodesk.AutoCAD.Windows.MenuItem menuItem; menuItem = new Autodesk.AutoCAD.Windows.MenuItem(welcome); menuItem.Click += new EventHandler(CallbackOnClick); contextMenu.MenuItems.Add(menuItem); Autodesk.AutoCAD.ApplicationServices.Application.AddDefaultContextMenuExtensio
11、n(contextMenu); catch (System.Exception ex) hfrm = new HelloForm(ex.ToString(), 异常); /移除菜单 public void Remove() try if (contextMenu != null) Autodesk.AutoCAD.ApplicationServices.Application.RemoveDefaultContextMenuExtension(contextMenu); catch (System.Exception ex) hfrm = new HelloForm(ex.ToString()
12、, 异常); public void CallbackOnClick(object sender, EventArgs e) hfrm = new HelloForm(欢迎进入我的CAD二次开发); hfrm.Show(); 4.4、创建弹出式下拉菜单1)在vs2010中,选择模板C#,创建类库命名为TurndownMenu。2)从ObjectARX安装目录下加载acmgd.dll、accui和acdbmgd.dll3)主要代码 CustomizationSection cs; CustomizationSection entCs; CustomizationSection partials;
13、 int numPartialFiles; bool entCsLoaded; CommandMethod(Ad_Cui) public void AD_CUI_Load() this.init_cui(); this.add_menu(); this.save_cui(); private void init_cui() string mainCuiFile = (string)Application.GetSystemVariable(MENUNAME); mainCuiFile += .cuix; cs = new CustomizationSection(mainCuiFile); s
14、tring entCuiFile = (string)Application.GetSystemVariable(ENTERPRISEMENU); if (entCuiFile.Equals(.) entCsLoaded = false; else entCs = new CustomizationSection(entCuiFile); entCsLoaded = true; partials = new CustomizationSectioncs.PartialCuiFiles.Count; int i = 0; foreach (string fileName in cs.Partia
15、lCuiFiles) if (File.Exists(fileName) partialsi = new CustomizationSection(fileName); i+; numPartialFiles = i; /添加菜单 private void add_menu() if (cs.MenuGroup.PopMenus.IsNameFree(测试菜单) MacroGroup mg = new MacroGroup(cs.MenuGroupName, cs.MenuGroup); MenuMacro m1 = new MenuMacro(mg, wdgl_cmd1, CCAd_Find
16、CAD, ID_AD_FindCAD); MenuMacro m2 = new MenuMacro(mg, wdgl_cmd2, CCAd_FileInfo, ID_Ad_FileInfo); MenuMacro m3 = new MenuMacro(mg, wdgl_cmd3, CCAd_Help, ID_Ad_Help); System.Collections.Specialized.StringCollection pmAliases = new System.Collections.Specialized.StringCollection(); pmAliases.Add(POP12)
17、; PopMenu pm = new PopMenu(测试菜单, pmAliases, 测试菜单, cs.MenuGroup); PopMenuItem pmi = new PopMenuItem(m1, 测试菜单, pm, -1); pmi = new PopMenuItem(m2, 测试菜单, pm, -1); pmi = new PopMenuItem(pm, -1); pmi = new PopMenuItem(m3, 菜单项, pm, -1); addMenu2Workspaces(pm); foreach (Workspace wk in cs.Workspaces) Worksp
18、acePopMenu wkpm = new WorkspacePopMenu(wk, pm); wkpm.Display = 1; else private void addMenu2Workspaces(PopMenu pm) private void save_cui() if (cs.IsModified) cs.Save(); for (int i = 0; i numPartialFiles; i+) if (partialsi.IsModified) partialsi.Save(); if (entCsLoaded & entCs.IsModified) entCs.Save()
19、; string flName = cs.CUIFileBaseName; Application.SetSystemVariable(FILEDIA, 0); Application.DocumentManager.MdiActiveDocument.SendStringToExecute(cuiunload + flName + , false, false, false); Application.DocumentManager.MdiActiveDocument.SendStringToExecute(cuiload + flName + filedia 1 , false, fals
20、e, false); 4)编译,并在AutoCAD加载DLL,输入命令“ad_cui”,查看运行结果4.5、创建工具条1)在vs2010中,选择模板C#,创建类库命名为AddToolbar。2)从ObjectARX安装目录下加载acmgd.dll、AcCui.dll和acdbmgd.dll3)完整程序如下public void addToolbar() Toolbar newTb = new Toolbar( New Toolbar , cs.MenuGroup); foreach (Workspace wk in cs.Workspaces) WorkspaceToolbar wkTb =
21、new WorkspaceToolbar(wk, newTb); wk.WorkspaceToolbars.Add(wkTb); wkTb.Display = 1; Editor pEd = Application.DocumentManager.MdiActiveDocument.Editor; pEd.WriteMessage(Hello World); LispFunction(adtoolbar) public void addToolbar(ResultBuffer args) addToolbar(); public void remToolbar() Toolbar tbr =
22、cs.MenuGroup.Toolbars.FindToolbarWithName( New Toolbar ); if (tbr != null) foreach (Workspace wk in cs.Workspaces) WorkspaceToolbar wkTb = wk.WorkspaceToolbars.FindWorkspaceToolbar(tbr.ElementID, tbr.Parent.Name); if (wkTb != null) wk.WorkspaceToolbars.Remove(wkTb); cs.MenuGroup.Toolbars.Remove(tbr)
23、; 4)编译,并在AutoCAD加载DLL,输入命令“addtoolbar”,查看运行结果 4.6、创建有模态和无模态对话框1)在vs2010中,选择模板C#,创建类库命名为pallelate。2)从ObjectARX安装目录下加载acmgd.dll和acdbmgd.dll3)完整程序如下CommandMethod(Palette) public void addPalette() Editor ed = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor; PaletteSet ps = new PaletteSet(test pallette set); ps.MinimumSize = new System.Drawing.Size(300, 300); System.Windows.Forms.UserControl myctrl = new System.Windows.Forms.UserControl (); ps.Add(test, myctrl); ps.Visible = true; ps.Style = PaletteSetStyles.ShowTabForSingle; ps.Opacit
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论