ObjectARX類庫簡介
ObjectARX環境包含下列幾組類和函數:AcRx 用於綁定應用程序及運行時類的注冊和標識的類。AutoCAD Registration Extension;
AcEd 注冊本地AutoCAD命令和AutoACD事件通知的類。AutoCAD Envent Directory;
AcDb AutoCAD數據庫類。AutoCAD DataBase ;
AcGi 顯示AutoACD實體的圖形類。 AutoCAD Graph Interface;
AcGe 公用線性數學和幾何學對象應用類。 AutoCAD Geometry Entity;
AcRx庫提供了一些係統級類,用於DLL的初始化和鏈接及運行時類的注冊和標識。該庫的基類是AcRxObject,它提供如下功能:對象運行時 類標識和繼承分析、運行時向既有類添加新協議、對象比較測試、對象複製。運行時類型標識是AcRxObject的每個子類都有一個相關的類描述者對象 (AcRxClass類型),用於運行時類型的標識。最常用函數:
AcRxObject::isA(); 用於類識別,被識別的類必須能夠測試其類型。
AcRxObject::isKindOf(); 也是用於類識別,但這裏的類能夠被測試其類型,或者測試其派生類的類型。
AcRxObject::desc(); 返回類名。
AcRxObject::cast(); 試圖將一個基類轉換成更高級的類。如果轉換成功,基類對象的指針將是轉換後類型的指針。
該庫也可以對應用程序進行加鎖或解鎖。使用函數::acrxUnlockApplication()可以使應用程序不可卸載。
AcEd庫提供定義和注冊新的AutoCAD命令的類,新命令的操作性能與AutoCAD內部命令是完全一樣的。我們定義的新命令被當作本地命令是 因為它們與AutoACD內部命令具有相同的內部結構(AcEdCommandStack)。AcEd庫還提供編輯器反應器和一套與AutoCAD通信的全局函數。注:該庫中一個重要的類是 AcEditorReactor,它監視AutoCAD編輯器的狀態,並當指定事件發生時(如形開始、終止和刪除命令)通知應用程序。
AcDb庫提供了組成AutoCAD數據庫的類。AutoCAD數據庫用於存儲所有的圖形對象和非對象;圖形對象稱為實體,組成AutoCAD圖; 非圖形對象(如層、線型和字型)也是圖形的一部分。同時我們可以使用AcDb庫查詢和管理AutoCAD實體的實體對象,也可以創建新的數據庫對象實例。 AutoCAD數據庫包含如下主要元素:九個符號表,每個表都擁有唯一的命令符號表條目對象,這些對象表示各種常用的AcDbDatabase對象和數據 成員;命名的對象詞典(類AcDbDictionary),提供AutoCAD圖的目錄表。對於新圖來說,該目錄表包含四個AutoCAD使用的其他詞典 ID,同時我們的應用程序可以任意向該詞典添加其他的對象;一套固定的環境變量,大約200個環境變量,其值上由AutoCAD設置的。
AcGi庫提供了用於繪製AutoCAD實體的圖形界麵,AcDbEntity成員函數worldDraw()、viewportDraw()和saveAs(),及所有標準實體協議部件都使用AcGi庫。
AcGe庫提供了應用類,如向量和矩陣,用來完成二維和三維幾何操作,它還提供基本的幾何對象,如點、曲線和表麵。AcGe還包含兩個主要子集:二維和三維幾何類,主要抽象基類分別為AcGeEntity2d和AcGeEntity3d。它提供了幾何計算和數學計算函數,如矢量、點、矩陣的的運算等。在cad中每一個實體都有一個相對應的等價幾何形狀,他有助於在創建對應的真實感實體時進行數學計算。該庫提供用於2D和3D計算的幾何函數。例如,如果一條直線通過一個圓的附近,且需要求出直線到圓上的最近點,那麼用庫中的幾何函數就可以求出所需要的點。
ObjectARX目錄結構
├─arxlabs 目錄存放AutoCAD ARX使用指南。
├─classmap 目錄存放AutoCAD圖形形式的ObjectARX類層次結構圖。
├─docs 目錄存放ObjectARX開發者的在線幫助文件,
├─inc ObjectARX頭文件。
├─lib ObjectARX庫文件。
├─redistrib ObjectARX應用程序運行所需要的DLL文件。
├─samples ObjectARX例子目錄。
└─utils ObjectARX的擴展和開發小工具。如用於邊界表達的brep和ObjectARX向導ObjARXWiz。
AcRx: acad.lib, rxapi.lib, acdb16.lib
AcEd: acad.lib, rxapi.lib, acedapi.lib, acdb16.lib
AcDb: acad.lib, rxapi.lib, acdb16.lib
AcGi: acad.lib, rxapi.lib, acdb16.lib
AcGe: acad.lib, rxapi.lib, acgeapi.lib, acdb16.lib
最後更新:2017-04-03 08:26:17