ObjectARX編程介紹-1,圖形數據庫操作
AutoCAD圖形實際上是存儲在AcDbDatabase中的壹系列AcDb對象。AcDbDatabase中的所有對象都有壹個句柄,在圖形(DWG)文件中,對象句柄是唯壹的,用於標識對象。AutoCAD圖形實體(AcDbEntity類對象)只是AcDbDatabase的壹個特殊對象,用戶可以在圖形窗口中看到和編輯它。AcDbDatabase中的對象還包括符號表、字典和其他與AcDb類對象相關的符號。數據庫中的所有圖形實體和對象都可以使用ObjectARX技術通過編程進行修改和編輯。這其實是AutoCAD二次開發的基本出發點和最終目的。& lt這是正確的嗎?總覺得哪裏不對勁,又不知道怎麽準確表達。& gt& lt尖括號裏的內容是我的個人感受,不會出現在最終文檔裏。& gt
AcDbDatabase既然是數據庫,就必須具備數據庫的基本組織結構。它由多個表和表中的記錄組成。AcDbDatabase包括九個符號表和壹個命名對象字典。& lt下面的圖表與大多數教科書不同。妳怎麽想呢?& gt
AcDbDatabase數據庫
| - AcDb符號表
| | |-塊表(AcDbBlockTable)
| | |-維度樣式表(AcDbDimStyleTable)
| | |-圖層表(AcDbLayerTable)
| | |-線性表格(AcDbLinetypeTable)
| | |-註冊的應用程序表(AcDbRegAppTable)
| | |-字體樣式表(AcDbTextStyleTable)
| | |-用戶坐標系表(AcDbUCSTable)
| | |-視口表(AcDbViewportTable)
| | |-查看表格(AcDbViewTable)
|-命名對象字典
AcDbDatabase采用OODB技術,用傳統數據庫術語來說甚至不是第壹範式(1NF),記錄組織與普通數據庫有很大不同。& lt這大概就是很多人不把AutoCAD圖形當成數據庫的原因吧。& gt在AutoCAD命令行上運行LISP函數entget可以清楚的看到AcDbBlockTable塊表中實體的記錄組織形式。當然,在ObjectARX技術中,封裝了數據庫記錄的細節,通過訪問各個類的成員函數來實現對數據庫表和記錄的操作。