ObjectARX 介紹

ObjectARX

  1. ObjectARX的介紹:
  ObjectARX是AutoDesk公司針對AutoCAD平臺上的二次開發而推出的一個開發軟件包,它提供了以C++爲基礎的面向對象的開發環境及應用程序接口,能真正快速的訪問AutoCAD圖形數據庫。 與以往的 AutuCAD 二次開發工具 AutoLISP 和ADS不同,ObjectARX應用程序是一個DLL(動態鏈接庫),共享AutoCAD的地址空間,對AutoCAD進行直接函數調用。所以,使用ARX編程的函數的執行速度得以大大提高。ARX 類庫採用了標準的C++類庫的封裝形式,這也大大提高了程序員編程的可靠度和效率。 ObjectARX目前最新的版本是ObjectARX2010。它是應用軟件與Internet的接口。通過支持XML,爲ObjectARX開發網絡協作應用提供了有力的支持。
  2. 開發環境的設置:
  運用ObjectARX進行二次開發,必須首先設置好ObjectARX的開發環境。目前常用的開發環境是Microsoft Visual C++ 6.0。同時,還需要安裝ObjectARX SDK,ObjectARX SDK可以在AutoDesk公司的網站上免費下載。不同的AutoCAD版本對應相應的ObjectARX SDK的版本,目前常用的是ObjectARX SDK for AutoCADR14和ObjectARX SDK for AutoCAD2000i。這兩個開發工具在設置上略有不同,將進行對比介紹。 安裝好VC++和ObjectARX後,就可以開始設置開發環境了。 1) 設置INC和LIB文件尋找路徑 INC和LIB文件尋找路徑爲VC++的環境參數,設置一次即可,對以後的所有項目均有效。 選擇 Tools→Options …,出現Option對話框,選擇Directories頁,在Show Directories for中選擇Include files,然後在Directories中加上ARX的INC目錄路徑c:/objectarx/inc(假定ARX的開發工具在c:/objectarx/中)。 在Show Directories for中選擇Library files,然後在Directories中加上ARX的LIB目錄路徑c:/objectarx/lib(假定ARX的開發工具在c:/objectarx/中)。 2) 建立項目並設置編譯環境 一般來說,開發的ObjectARX應用程序都需要支持MFC(如採用對話框等),因此,我們可以直接建立支持MFC的ObjectARX開發項目。每個項目均應設置編譯環境,一般項目的編譯環境可以有兩個設置,分別爲發佈版本(Win32 Release)和調試版本(Win32 Debug)。在本節裏,介紹的是發佈版本的設置,而調試版本的設置將在下一節介紹。ObjectARX SDK for AutoCADR14和ObjectARX SDK for AutoCAD2000i在設置上面存在着差別,下面分別進行介紹。 對於ObjectARX SDK for ACADR14 a. 選擇 File→New ,選擇projects頁→MFC AppWizard,給定項目名(helloR14)及位置,選OK,在DLL type中選擇MFC Extension DLL(using share MFC DLL),再選擇Finish。建立項目。 b. 選擇Build→Set Active Configration…→helloR14 Win32 Release,然後選OK。 c. 選擇Project→Setting,出現Project Settings對話框,開始設置編譯環境。 d. General中,Microsoft Foundation Classes選擇Use MFC in a Share DLL。 e. C/C++→Code Generation中,Use run-time library選擇Multithreaded DLL。 f. C/C++→Preprocessor中,Preprocessor definitions填入ACRXAPP,RADPACK,WIN32,NDEBUG,_WINDOWS。 g. Link→General中,Output file Name填入helloR14.arx。 h. Link→Input中,Object/library modules添加Acad.lib acedapi.lib rxapi.lib libacge.lib庫文件名。 i. Link→Output中,Base address填入0xc10000,Entry-point symbol中填入DllEntryPoing@12。 j. 點擊OK退出Project Settings對話框。 k. 添加HelloR14.cpp主程序,爲了使ARX支持MFC,把 HelloR14.cpp的內容直接替換爲ObjectARX/UTILS/MFCEXTRAS/目錄下ARXMFCTMPL.CPP的內容,其中包含了MFC所需的支持函數。同時加入公用頭文件 resourcehelper.h到項目中去,這個頭文件也可以在上面的目錄找到。 l. 添加註冊命令,在 initApp ()函數中,用 acedRegCmds->addCommand()冊新的AutoCAD命令。 m. 添加HelloR14.def定義文件,EXPORTS下加入 acrxEntryPoint acrxGetApiVersion n. 對話框的可以採用一般VC++的對話框,繼承 CDialog類。 對於ObjectARX SDK for ACAD2000i a. 選擇 File→New ,選擇projects頁→MFC AppWizard,給定項目名(hello2000)及位置,選OK,在DLL type中選擇MFC Extension DLL(using share MFC DLL),再選擇Finish。建立項目。 b. 選擇Build→Set Active Configration…→hello2000 Win32 Release,然後選OK。 c. 選擇Project→Setting,出現Project Settings對話框,開始設置編譯環境。 d. C/C++→Code Generation中,Use run-time library選擇Multithreaded DLL。 e. C/C++→Preprocessor中,Preprocessor definitions填入ACRXAPP, WIN32,NDEBUG,_WINDOWS,_WINDLL,_AFXDLL,AFXEXT。 f. Link→General中,Output file Name填入hello2000.arx。 g. Link→Input中,Object/library modules添加acge15.lib acad.lib acedapi.lib acrx15.lib acdb15.lib acutil15.lib rxapi.lib acui15.lib adui15.lib庫文件名。 h. Link→Output中,Base address填入0xc1000000。 i. 點擊OK退出Project Settings對話框。 j. 添加Hello2000.cpp主程序,爲了使ARX支持MFC,需要把 Hello2000.cpp的內容直接替換爲ObjectARX/DOCSAMPS/MFCSAMPS/DYNAMIC/目錄下ARXMFCTMPL.CPP的內容,其中包含了MFC所需的支持函數。同時加入兩個公用頭文件 resourcehelper.h和stdafx.h到項目中去,這兩個頭文件也可以在上面的目錄找到。 k. 添加註冊命令,在 initApp ()函數中,用 acedRegCmds->addCommand()新的AutoCAD命令。 l. 修改Hello2000.def文件,在EXPORTS下加入 acrxEntryPoint acrxGetApiVersion m. 對話框採用的是ObjectARX提供的對話框類型,採用MFC UI提供的相關類。類的頭文件爲 acui.h和adui.h。使用時可以先按照一般VC++的對話框建立對話框,然後修改該對話框繼承的類爲CAcUiDialog。可以通過查找和替換,直接把項目中的CDialog全部替換爲CAcUiDialog。在引用該對話框時用採用下面的方法,如: HelloDlg Hello2000dlg(CWnd::FromHandle(adsw_acadMainWnd())) 3) 項目的加載、運行和卸載 項目編譯完成後,就可以在AutoCAD中加載運行了。加載ObjectARX程序,可以選擇Tools→Load Application…,然後選擇相應的 arx文件,點擊Load即可。 運行ObjectARX程序則通過鍵入程序中所註冊的命令進行調用。 需要卸載程序時,可以選擇Tools→Load Application…,然後選擇相應的 arx文件,點擊Unload即可。也可以直接鍵入(arxunload “ARX 程序名 ” )。 3. 調試技巧 程序編寫中需要進行大量的調試工作,ObjectARX程序的調試可以跟普通的VC++程序一樣通過設置斷點來跟蹤,同時,還有一些ObjectARX獨特的調試技巧。 1) 通過斷點跟蹤進行調試 ObjectARX的跟蹤調試需要首先設置調試版本(Win32 Debug)的編譯環境。不同版本的調試環境設置也略有不同。 對於ObjectARX SDK for ACADR14 a. 選擇Build→Set Active Configration…→helloR14 Win32 Debug,然後選OK。 b. 選擇Project→Setting,出現Project Settings對話框,開始設置編譯環境。 c. General中,Microsoft Foundation Classes選擇Use MFC in a Share DLL。 d. Debug→General中,Executable for debug session中選擇AutocadR14運行程序的位置,如C:/Program Files/AutoCAD R14/acad.exe。 e. C/C++→Code Generation中,Use run-time library選擇Debug Multithreaded DLL。 f. C/C++→Preprocessor、Link→General、Link→Input、Link→Output的設置均同發佈版本(Win32 Release) g. 點擊OK退出Project Settings對話框。 h. 編譯完成後,點擊F9在相應位置設置斷點。 i. 點擊F5開始跟蹤調試,調試開始時會自動打開AutoCAD,加載運行ARX後,到達斷點的位置,進入調試界面,可以查詢程序中變量的當前值,點擊F5可以繼續調試。 j. 程序運行完成後,退出AutoCAD,結束調試。 對於ObjectARX SDK for 2000i,調試環境的設置與R14的基本相同,主要的區別在於第e 步中,Use run-time library需要選擇Multithreaded DLL,否則會出現DLL的版本問題,而導致ARX無法加載。 2) 其他調試技巧 ObjectARX的程序由於是運行在AutoCAD圖形支撐環境下的,程序中很多元素都是對應着圖形中的相應位置,因此,在調試的時候,除了通過設置斷點跟蹤變量外,還可以通過圖形顯示來觀察變量。 但是,ObjectARX在AutoCAD裏面進行繪製時,需要與AutoCAD數據庫進行交互,代碼比較長,直接在程序裏面寫入容易造成混亂。因此,可以利用我們開發的ObjectARX基本繪圖函數庫(Plot1和Plot2)。該函數 庫提供了大量的圖形繪製函數、文字輸出函數以及圖形編輯函數,調用時只需一行代碼就可以完成,十分方便。其中常用的函數有以下這些: l 繪圖相關函數 createLine 畫直線 createDimR 傾斜尺寸標註 createDim 水平或豎直尺寸標註 createPoint 創建點 createCircle 畫圓 createArc 畫圓弧 createText 寫字符串 createTextN 寫 一整數 createTextR 寫 一實數 createPline 畫等寬多義線 createHatch 區域填充 insertBlock 插入圖塊 l 圖形編輯相關函數 eraseByName 按實體的 ads_name 刪除實體 eraseById 按實體的ID刪除實體 changeLayerByName 按實體的 ads_name 改變實體的層 changeColorByName 按實體的 ads_name 改變實體的顏色 changeTextByName 按實體的 ads_name 改變實體字符內容 有了這個函數庫,就可以通過添加輔助線和輔助圖元、顯示不同位置的變量值、改變圖元的顏色等調試方法進行程序的調試了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章