CAD二次開發(fā)實驗1_第1頁
CAD二次開發(fā)實驗1_第2頁
CAD二次開發(fā)實驗1_第3頁
CAD二次開發(fā)實驗1_第4頁
CAD二次開發(fā)實驗1_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、實驗一ObjectARX.NET托管開發(fā)包的使用一、主要內容1、下載安裝ObjectARX.NET托管開發(fā)包2、創(chuàng)建AutoCAD命令3、創(chuàng)建自定義用戶菜單4、創(chuàng)建自定義用戶工具條5、創(chuàng)建用戶自定義窗體二、學時安排三、預習內容及要求回顧ObjectARXAPI和其托管API之間的對應關系;掌握不同API版本對應的VS.NET開發(fā)版本;熟悉創(chuàng)建用戶需求所要引用命名空間。開發(fā)語言使用C#,AutoCAD版本2010,objectARX2010。四、下載安裝ObjectARX4.1下載ObjectARX不同的ACAD版本用不同的開發(fā)包及開發(fā)環(huán)境ACAD2000ACAD2002:VC+6.0ACAD2

2、004ACAD2006:VS.NET2002ACAD2007ACAD2009:VS.NET2005ACAD2010ACAD2011:VS.NET2008ACAD2012:VS.NET2010下載ObjectARX在打開打開默認網(wǎng)頁瀏覽器并瀏覽網(wǎng)站.的網(wǎng)頁上,點擊License&Downloaded可&下載).填寫必填字段并選擇ObjectARXforAutoCAD2010.點擊Submit(提交)按扭.在下載頁,點擊DownloadNow(現(xiàn)在下載)使用下載管理器或點擊StandardDownloadMethod(標準下載方法使用你的網(wǎng)頁瀏覽器的默認下載方法下載.點擊Save(保存)或用于保存

3、文件到你的本地驅動器的選項。指定下載ObjectARXSDK安裝包文件存放的位置。一旦安裝包文件下載完成,就瀏覽你保存在本地的安裝并雙擊它,安裝向導將顯示在ObjectARX釋放對話框中,指定一個新的安裝位置或接受默認的安裝位置。點擊Install安裝)按扭.如果沒有遇到問題,安裝向導完成后關閉它安裝ObjectARX向導和托管項目模板一旦ObjectARXSDK被安裝,請使用默認目錄c:ObjectARXvRelease瀏覽它的安裝文件夾。瀏覽安裝文件夾后,打開Utils文件夾和ObjARXWiz文件夾。在ObjARXWiz文件夾中,雙擊ArxWizards.msi文件。在ObjectARX

4、WizardsforAutoCAD2010對話框中,點擊Next.在EnterYourPreferredDefaultRDSSymbol框中,輸入你的公司名字的縮寫并點擊Next按扭。你輸入的RDS文字被用于默認名字的前綴,這個名字是用ObjectARX向導與工程模板創(chuàng)建類或命令時使用的。注意RDS代表RegisteredDeveloperSymbol,它用于創(chuàng)建命令和類的標識,以幫助避免與其它應用程序之間的潛在沖突。在MemberVariableWizard頁,選擇同意ReplaceMSMemberVariableWizardbyAutodeskMemberVariableWizard并單擊

5、Next按扭.在選擇SelectInstallationFolder(安裝文件夾)頁,點擊向導的Browse按扭指定一個新的安裝位置或者同意默認位置。點擊Next按扭.再次點擊安裝向導的Next按扭。點擊向導的Close按扭退出。4.2HelloWorl程序創(chuàng)建在VS.Net2010中建項目HelloWorld如果使用托管ObjectARXAPI,則使用C#語言作為開發(fā)語言,操作如下:選擇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、創(chuàng)建上下文菜單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二次開發(fā)”);hfrm.Show();SNETLOAD(R)MY_hflenu卜SW6HaUNrtlDdSffilR)如艸ISteeringVjheels4

12、.4、創(chuàng)建彈出式下拉菜單1)在vs2010中,選擇模板C#,創(chuàng)建類庫命名為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、創(chuàng)建工具條在vs2010中,選擇模板C#,創(chuàng)建類庫命名為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、創(chuàng)建有模態(tài)和無模態(tài)對話框在vs2010中,選擇模板C#,創(chuàng)建類庫命名為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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論