AutoCAD二次开发实验一.doc_第1页
AutoCAD二次开发实验一.doc_第2页
AutoCAD二次开发实验一.doc_第3页
AutoCAD二次开发实验一.doc_第4页
AutoCAD二次开发实验一.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验一 ObjectARX .NET托管开发包的使用一, 主要内容1、下载安装ObjectARX .NET托管开发包2、创建AutoCAD命令3、创建自定义用户菜单4、创建自定义用户工具条5、创建用户自定义窗体二, 主要步骤1,下载安装ObjectARX不同的ACAD版本用不同的开发包及开发环境ACAD2000ACAD2002 : VC+ 6.0ACAD2004ACAD2006 : VS.NET 2002ACAD2007ACAD2009 : VS.NET 2005ACAD2010ACAD2011 : VS.NET 2008ACAD2012 : VS.NET 2010下载ObjectARX 在打开打开默认网页浏览器并浏览网站. 的网页上,点击License & Download(许可&下载). 填写必填字段并选择ObjectARX for AutoCAD 2012. 点击Submit(提交)按扭. 在下载页, 点击Download Now(现在下载)使用下载管理器或点击Standard Download Method(标准下载方法)使用你的网页浏览器的默认下载方法下载. 点击Save(保存)或用于保存文件到你的本地驱动器的选项。指定下载ObjectARX SDK安装包文件存放的位置。一旦安装包文件下载完成,就浏览你保存在本地的安装并双击它,安装向导将显示在ObjectARX 对话框中, 指定一个新的安装位置或接受默认的安装位置。点击Install(安装)按扭. 如果没有遇到问题,安装向导完成后关闭它安装ObjectARX向导和托管项目模板一旦 ObjectARX SDK被安装,请使用默认目录c:ObjectARX 浏览它的安装文件夹。 (1)AtuoCAD的类库都在此库。2,Hello World程序创建1)在VS.Net 2012中建项目HelloWorld采用.NET托管API从“项目类型”列表中选择第二个“Visual C#”,从模板中选择“类库”,输入项目名称“HelloWorld”.单击“确定”按钮如果弹出如下对话框说明没安装正确,可以手动加载托管DLL从ObjectARX安装目录下加载acmgd.dll和acdbmgd.dll使用.NET对象浏览器查看AcMgd.dll-AutoCAD .NET托管类AcDbMgd.dll ObjectDBX .NET托管类完整程序如下using Autodesk.AutoCAD.Runtime;using Autodesk.AutoCAD.EditorInput;using Autodesk.AutoCAD.ApplicationServices;namespace HelloWord public class Hello_Sample CommandMethod(Hello) public void Hello() Editor ed = Application.DocumentManager.MdiActiveDocument.Editor; ed.WriteMessage(欢迎进入.NET的开发的世界-火艇制作); 编译,并在AutoCAD加载DLL,使用Netload命令加载输入命令“Hello”,查看运行结果3,创建上下文菜单,using System;using Autodesk.AutoCAD.Windows;using Autodesk.AutoCAD.Runtime;assembly: CommandClass(typeof(Contextmenu.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(); contextMenu.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.AddDefaultContextMenuExtension(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(), 异常); public void CallbackOnClick(object sender, EventArgs e) hfrm = new HelloForm(欢迎进入火艇工作室!); hfrm.Show(); 4,创建弹出式下拉菜单1)在vs2010中,选择模板C#,创建类库命名为TurndownMenu。2)从ObjectARX安装目录下加载acmgd.dll、accui和acdbmgd.dll3)主要代码 CustomizationSection cs; CustomizationSection entCs; CustomizationSection partials; 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); string 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.PartialCuiFiles) 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_FindCAD, 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); 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) WorkspacePopMenu 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(); 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, false, false); 4)编译,并在AutoCAD加载DLL输入命令“ad_cui”,查看运行结果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 = 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 = 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); 4)编译,并在AutoCAD加载DLL 输入命令“addtoolbar”,查看运行结果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.Opacity = 90; 4)编译,并在AutoCAD加载DLL7,修改状态栏1)在vs2010中,选择模板C#,创建类库命名为addbutton。2)从O

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论