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