資源描述:
《【8A文】ObjectArx培訓.ppt》由會員上傳分享,免費在線閱讀,更多相關內容在工程資料-天天文庫。
1、ObjectARXTraining華中科技大學CAD中心武漢天喻軟件有限責任公司2010年2月ObjectARXTianyuSoft2ObjectARX應用的介紹ObjectARX是一個僅在AutoCAD上進行二次開發(fā)的一套開發(fā)環(huán)境,通俗點講就是一系列的APIObjectARX的應用舉例:擴展AutoCAD功能為各種工程設計開發(fā)便利的工具ObjectARXTianyuSoft3ObjectARX概述ARX——AutoCADRuntimeeXtensionDBX——DataBaseeXtension
2、ARX=.DLL+2exportedfunctions{acrxEntryPoint&acrxGetApiVersion}AutoCAD.EXEARXAppsARXAppsObjectARXAPIsObjectARXTianyuSoft4ObjectARX開發(fā)特點不同的ACAD版本用不同的開發(fā)包及開發(fā)環(huán)境ACAD2000~ACAD2002:VC++6.0ACAD2004~ACAD2006:VS.NET2002ACAD2007~ACAD2009:VS.NET2005ACAD2010~:VS.NET2
3、008ACAD2007開始字符串采用UNICODE編碼ARX之間不能連續(xù)依賴A.arx依賴B.arx,B.arx依賴C.dbx,則A.arx不能加載與ACAD已有功能地位一致ObjectARXTianyuSoft5ObjectARX類庫構成AcRx:用于幫定一個應用程序以及運行類的注冊和識別。AcEd:用于注冊自定義命令和AutoCAD事件通告。AcDb:AutoCAD圖形數(shù)據(jù)庫。AcGi:用于AutoCAD的圖形類。AcGe:用于AutoCAD的線型和幾何對象通用類。ADS:AutoCAD的早期
4、版本C語言函數(shù)庫。ObjectARXTianyuSoft6ObjectARX類結構類圖classmap.dwg位置:ObjectARX2006classmapObjectARXTianyuSoft7用ObjectARX能做些什么?訪問、編輯和擴展AutoCAD圖形數(shù)據(jù)庫和AutoCAD系統(tǒng)相互通信使用MFC創(chuàng)建用戶接口支持多文檔應用創(chuàng)建自定義類和自定義實體可以開發(fā)復雜的應用和其他開發(fā)環(huán)境進行協(xié)作ObjectARXTianyuSoft8培訓安排-1一、基礎AUTOCAD數(shù)據(jù)庫結構及操作,ads_
5、name-句柄-ID及轉換,aced常用函數(shù),WCS/UCS及轉換,菜單/工具條/對話框制作二、自定義對象顯示/存儲/夾點/移動/拷貝/范圍/list/捕捉點/炸開/相交點/sub事件三、自定義對象生成與編緝雙擊修改/Jig/屬性頁ObjectARXTianyuSoft9培訓安排-2四、一些重要對象字典/層/線型/字體樣式五、擴展數(shù)據(jù)六、反應器八、總結ObjectARXTianyuSoft10所需基礎ACAD基本操作C++VCMFC(界面)COM(屬性頁等)STL(提高效率)ObjectARXTi
6、anyuSoft11AutoCAD圖形數(shù)據(jù)庫概述AutoCAD圖形實際上是一系列存放在一個AcDbDatabase類型的對象中的AcDb對象。一個dwg就是一個數(shù)據(jù)庫具備數(shù)據(jù)庫的基本組織結構。包括九個符號表和一個命名對象詞典ObjectARXTianyuSoft12AutoCAD圖形數(shù)據(jù)庫結構AcDbDatabase數(shù)據(jù)庫
7、------AcDb符號表
8、
9、------塊表(AcDbBlockTable)
10、
11、------尺寸標注樣式表(AcDbDimStyleTable)
12、
13、------層表(AcDb
14、LayerTable)
15、
16、------線型表(AcDbLinetypeTable)
17、
18、------已注冊應用程序表(AcDbRegAppTable)
19、
20、------字體樣式表(AcDbTextStyleTable)
21、
22、------用戶坐標系表(AcDbUCSTable)
23、
24、------視口表(AcDbViewportTable)
25、
26、------視圖表(AcDbViewTable)
27、-------命名對象詞典訪問:AcDbDatabase::getSymbolTableObjectARXTianyu
28、Soft13向數(shù)據(jù)庫中添加實體Acad::ErrorStatusaddEntityToModelSpace(AcDbEntity*pEnt,AcDbObjectId&EntId){Acad::ErrorStatuseRet;AcDbDatabase*pDb=acdbHostApplicationServices()->workingDatabase();AcDbBlockTable*pBlockTable;eRet=pDb->getBlockTable(pBlockTable,Ac