天天看點

關于ObjectARX的那些事

ObjectARX是一個僅在AutoCAD上進行二次開發的一套開發環境,通俗點講就是一系列的API

ObjectARX:擴充AutoCAD功能為各種工程設計開發便利的工具。

ARX——AutoCAD Runtime eXtension
DBX ——DataBase eXtension
ARX = .DLL + 2 exported functions
{ acrxEntryPoint & acrxGetApiVersion }
           

ObjectARX開發特點

不同的ACAD版本用不同的開發包及開發環境

ACAD2000~ACAD2002 : VC++ 6.0
ACAD2004~ACAD2006 : VS.NET 2002
ACAD2007~ACAD2009 : VS.NET 2005
ACAD2010~       :  VS.NET 2008
ACAD2007開始字元串采用UNICODE編碼
ARX之間不能連續依賴
A.arx依賴B.arx, B.arx依賴C.dbx,則A.arx不能加載
與ACAD已有功能地位一緻
           

ObjectARX類庫構成:

AcRx:用于幫定一個應用程式以及運作類的注冊和識别。
AcEd:用于注冊自定義指令和AutoCAD事件通告。
AcDb:AutoCAD圖形資料庫。
AcGi: 用于AutoCAD 的圖形類。
AcGe:用于AutoCAD 的線型和幾何對象通用類。
ADS: AutoCAD 的早期版本C語言函數庫。
類圖classmap.dwg
位置:\ObjectARX 2006\classmap
           

用ObjectARX能做些什麼?

通路、編輯和擴充AutoCAD圖形資料庫
和AutoCAD系統互相通信
使用MFC建立使用者接口
支援多文檔應用
建立自定義類和自定義實體
可以開發複雜的應用
和其他開發環境進行協作.
           

AutoCAD圖形資料庫概述 AutoCAD圖形實際上是一系列存放在一個AcDbDatabase類型的對象中的AcDb對象。

一個dwg就是一個資料庫 具備資料庫的基本組織結構。 
包括九個符号表和一個命名對象詞典. 
AcDbDatabase資料庫       
   |------AcDb符号表        |      
   |------塊表(AcDbBlockTable)        |     
    |------尺寸标注樣式表(AcDbDimStyleTable)        |   
   |------層表(AcDbLayerTable)        |  
    |------線型表(AcDbLinetypeTable)        |    
    |------已注冊應用程式表(AcDbRegAppTable)        |    
     |------字型樣式表(AcDbTextStyleTable)        |      
     |------使用者坐标系表(AcDbUCSTable)        |      
     |------視口表(AcDbViewportTable)        |      
     |------視圖表(AcDbViewTable)  
     |-------命名對象詞典 通路:AcDbDatabase::getSymbolTable
           

繼續閱讀