CAD二次开发实验1_第1页
CAD二次开发实验1_第2页
CAD二次开发实验1_第3页
CAD二次开发实验1_第4页
CAD二次开发实验1_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、实验一ObjectARX.NET托管开发包的使用一、主要内容1、下载安装ObjectARX.NET托管开发包2、创建AutoCAD命令3、创建自定义用户菜单4、创建自定义用户工具条5、创建用户自定义窗体二、学时安排三、预习内容及要求回顾ObjectARXAPI和其托管API之间的对应关系;掌握不同API版本对应的VS.NET开发版本;熟悉创建用户需求所要引用命名空间。开发语言使用C#,AutoCAD版本2010,objectARX2010。四、下载安装ObjectARX4.1下载ObjectARX不同的ACAD版本用不同的开发包及开发环境ACAD2000ACAD2002:VC+6.0ACAD2

2、004ACAD2006:VS.NET2002ACAD2007ACAD2009:VS.NET2005ACAD2010ACAD2011:VS.NET2008ACAD2012:VS.NET2010下载ObjectARX在打开打开默认网页浏览器并浏览网站.的网页上,点击License&Downloaded可&下载).填写必填字段并选择ObjectARXforAutoCAD2010.点击Submit(提交)按扭.在下载页,点击DownloadNow(现在下载)使用下载管理器或点击StandardDownloadMethod(标准下载方法使用你的网页浏览器的默认下载方法下载.点击Save(保存)或用于保存

3、文件到你的本地驱动器的选项。指定下载ObjectARXSDK安装包文件存放的位置。一旦安装包文件下载完成,就浏览你保存在本地的安装并双击它,安装向导将显示在ObjectARX释放对话框中,指定一个新的安装位置或接受默认的安装位置。点击Install安装)按扭.如果没有遇到问题,安装向导完成后关闭它安装ObjectARX向导和托管项目模板一旦ObjectARXSDK被安装,请使用默认目录c:ObjectARXvRelease浏览它的安装文件夹。浏览安装文件夹后,打开Utils文件夹和ObjARXWiz文件夹。在ObjARXWiz文件夹中,双击ArxWizards.msi文件。在ObjectARX

4、WizardsforAutoCAD2010对话框中,点击Next.在EnterYourPreferredDefaultRDSSymbol框中,输入你的公司名字的缩写并点击Next按扭。你输入的RDS文字被用于默认名字的前缀,这个名字是用ObjectARX向导与工程模板创建类或命令时使用的。注意RDS代表RegisteredDeveloperSymbol,它用于创建命令和类的标识,以帮助避免与其它应用程序之间的潜在冲突。在MemberVariableWizard页,选择同意ReplaceMSMemberVariableWizardbyAutodeskMemberVariableWizard并单击

5、Next按扭.在选择SelectInstallationFolder(安装文件夹)页,点击向导的Browse按扭指定一个新的安装位置或者同意默认位置。点击Next按扭.再次点击安装向导的Next按扭。点击向导的Close按扭退出。4.2HelloWorl程序创建在VS.Net2010中建项目HelloWorld如果使用托管ObjectARXAPI,则使用C#语言作为开发语言,操作如下:选择VisualC#下的ObjectARX一选择项目类型本实验采用.NET托管API从“项目类型”列表中选择第二个“VisualC#”,从模板中选择“AutoCADManagedProject”,输入项目名称“H

6、elloWorld”.Net扩展选项,单击“完成”按钮如果弹出如下对话框说明没安装正确,可以手动加载托管DLL从ObjectARX安装目录下加载acmgd.dll和acdbmgd.dll使用.NET对象浏览器查看acmgd.dllAutoCAD.NET托管类acdbmgd.dll-ObjectDBX.NET托管类完整程序如下usingSystem;usingAutodesk.AutoCAD.Runtime;usingAutodesk.AutoCAD.ApplicationServices;usingAutodesk.AutoCAD.DatabaseServices;usingAutodesk.

7、AutoCAD.Geometry;usingAutodesk.AutoCAD.EditorInput;assembly:CommandClass(typeof(HelloWorld.Hello)namespaceHelloWorld/SummarydescriptionforrdsCommands./publicclassHellopublicHello()CommandMethod(HW)staticpublicvoidHW()EditorpEd=Application.DocumentManager.MdiActiveDocument.Editor;pEd.WriteMessage(CAD

8、欢迎你!“);编译,并在AutoCAD加载DLL输入命令“HW”,查看运行结果.DshlC*4国试E3UI*IL:r妲BAuiDiLlStt201|/5/31LftULDll期4.3、创建上下文菜单usingSystem;usingAutodesk.AutoCAD.Windows;usingAutodesk.AutoCAD.Runtime;assembly:CommandClass(typeof(Contextmenu.Contextmenu)namespaceContextmenupublicclassContextmenu:IExtensionApplicationContextMenuE

9、xtensioncontextMenu;HelloFormhfrm;/初始化菜单publicvoidInitialize()AddMenu();/释放资源,移除菜单publicvoidTerminate()Remove();/添加菜单publicvoidAddMenu()trycontextMenu=newContextMenuExtension();contextMenu.Title=Ting_Menu;Autodesk.AutoCAD.Windows.MenuItemmenuItem;menuItem=newAutodesk.AutoCAD.Windows.MenuItem(welcome

10、);menuItem.Click+=newEventHandler(CallbackOnClick);contextMenu.MenuItems.Add(menuItem);Autodesk.AutoCAD.ApplicationServices.Application.AddDefaultContextMenuExtension(contextMenu)catch(System.Exceptionex)hfrm=newHelloForm(ex.ToString(),异常);/移除菜单publicvoidRemove()tryif(contextMenu!=null)Autodesk.Auto

11、CAD.ApplicationServices.Application.RemoveDefaultContextMenuExtension(contextMenu);catch(System.Exceptionex)hfrm=newHelloForm(ex.ToString(),异常);publicvoidCallbackOnClick(objectsender,EventArgse)hfrm=newHelloForm(”欢迎进入我的CAD二次开发”);hfrm.Show();SNETLOAD(R)MY_hflenu卜SW6HaUNrtlDdSffilR)如艸ISteeringVjheels4

12、.4、创建弹出式下拉菜单1)在vs2010中,选择模板C#,创建类库命名为TurndownMenu。2)从ObjectARX安装目录下加载acmgd.dll、accui和acdbmgd.dll3)主要代码CustomizationSectioncs;CustomizationSectionentCs;CustomizationSectionpartials;intnumPartialFiles;boolentCsLoaded;CommandMethod(Ad_Cui)publicvoidAD_CUI_Load()this.init_cui();this.add_menu();this.save

13、_cui();privatevoidinit_cui()stringmainCuiFile=(string)Application.GetSystemVariable(MENUNAME);mainCuiFile+=.cuix;cs=newCustomizationSection(mainCuiFile);stringentCuiFile(string)Application.GetSystemVariable(ENTERPRISEMENU);if(entCuiFile.Equals(.)entCsLoaded=false;elseentCs=newCustomizationSection(en

14、tCuiFile);entCsLoaded=true;partials=newCustomizationSectioncs.PartialCuiFiles.Count;inti=0;foreach(stringfileNameincs.PartialCuiFiles)if(File.Exists(fileName)partialsi=newCustomizationSection(fileName);i+;numPartialFiles=i;/添加菜单privatevoidadd_menu()if(cs.MenuGroup.PopMenus.IsNameFree(测试菜单)MacroGroup

15、mg=newMacroGroup(cs.MenuGroupName,cs.MenuGroup);MenuMacroml=newMenuMacro(mg,wdgl_cmdl,ACACAd_FindCAD,ID_AD_FindCAD);MenuMacrom2=newMenuMacro(mg,wdgl_cmd2,ACACAd_FileInfo,ID_Ad_FileInfo);MenuMacrom3=newMenuMacro(mg,wdgl_cmd3,ACACAd_Help,ID_Ad_Help);System.Collections.Specialized.StringCollectionpmAli

16、ases=newSystem.Collections.Specialized.StringCollection();pmAliases.Add(POPl2);PopMenupm=newPopMenu(测试菜单,pmAliases,测试菜单,cs.MenuGroup);PopMenuItempmi=newPopMenuItem(m1,测试菜单,pm,-1);pmi=newPopMenuItem(m2,测试菜单,pm,-1);pmi=newPopMenuItem(pm,-1);pmi=newPopMenuItem(m3,菜单项,pm,-1);addMenu2Workspaces(pm);forea

17、ch(Workspacewkincs.Workspaces)WorkspacePopMenuwkpm=newWorkspacePopMenu(wk,pm);wkpm.Display=1;elseprivatevoidaddMenu2Workspaces(PopMenupm)privatevoidsave_cui()if(cs.IsModified)cs.Save();for(inti=0;inumPartialFiles;i+)if(partialsi.IsModified)partialsi.Save();if(entCsLoaded&entCs.IsModified)entCs.Save(

18、);stringflName=cs.CUIFileBaseName;Application.SetSystemVariable(FILEDIA,0);Application.DocumentManager.MdiActiveDocument.SendStringToExecutecuiunload+flName+,false,false,false);Application.DocumentManager.MdiActiveDocument.SendStringToExecutecuiload+flName+filedia1,false,false,false);4)编译,并在AutoCAD加

19、载DLL,输入命令“ad_cui,查看运行结果a_cui1|5AX(AXEWTER)BfiECLOSEFHHA&CCLISTOMMAVIGATE151AMENTER(ADCEFiTER)一.:笑斗AKMAVI-6ATEAODPALETTE命令:叫4.5、创建工具条在vs2010中,选择模板C#,创建类库命名为AddToolbar。从ObjectARX安装目录下加载acmgd.dll、AcCui.dll和acdbmgd.dll完整程序如下publicvoidaddToolbar()ToolbarnewTb=newToolbar(NewToolbar,cs.MenuGroup);foreach(W

20、orkspacewkincs.Workspaces)WorkspaceToolbarwkTb=newWorkspaceToolbar(wk,newTb);wk.WorkspaceToolbars.Add(wkTb);wkTb.Display=1;EditorpEd=Application.DocumentManager.MdiActiveDocument.Editor;pEd.WriteMessage(HelloWorld);LispFunction(adtoolbar)publicvoidaddToolbar(ResultBufferargs)addToolbar();publicvoidr

21、emToolbar()Toolbartbr=cs.MenuGroup.Toolbars.FindToolbarWithName(NewToolbar);if(tbr!=null)foreach(Workspacewkincs.Workspaces)WorkspaceToolbarwkTbwk.WorkspaceToolbars.FindWorkspaceToolbar(tbr.ElementID,tbr.Parent.Name);if(wkTb!=null)wk.WorkspaceToolbars.Remove(wkTb);cs.MenuGroup.Toolbars.Remove(tbr);4

22、)编译,并在AutoCAD加载DLL,输入命令“addtoolbar”,查看运行结果1-沥枫H二於团Ea命令:输入FILEDM的新值:命令:ADDtSBS麵插入注釋玮毗观罔晉理耐藉件ral呼廉却O-/-”A乜层剤血丟is园角-用Q拉伸!7磁開岸列逞4.6、创建有模态和无模态对话框在vs2010中,选择模板C#,创建类库命名为pallelate。从ObjectARX安装目录下加载acmgd.dll和acdbmgd.dll完整程序如下CommandMethod(Palette)publicvoidaddPalette()edEditorAutodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor;PaletteSetps=newPaletteSet(testpalletteset);ps.MinimumSize=newSystem.Drawing.Size(300,300);System.Windows.Forms.UserControlmyctrl=newSystem.Windows.Forms.UserControl();ps.Add(test,myctrl);ps.Visible=true;ps.Style=PaletteS

温馨提示

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

评论

0/150

提交评论