下面來開始講解一下CAD文檔和存儲圖形的一些原理,最后如何用代碼繪制一條線段。
在啟動AutoCAD應用程序進行畫圖時,CAD軟件會新建一個“Drawing1.dwg”文件;在這個dwg文件中可以繪制線段、多段線、圓、圓弧、樣條曲線等增加實體(Entity)圖形,也可以修改圖形位置,打斷、鏡像、復制、刪除等對實體圖形進行編輯。在學習AutoCAD軟件使用時,都是從最基本的創建圖形開始進行學習;同樣,在學習 .Net二次開發時,從創建基本的圖形對象開始學習仍然是最有效的選擇,使用程序繪制一些圖形,當程序運行后,圖形窗口出現寫出的圖形,這樣在學習的過程中就會產生濃厚的興趣。
CAD進行處理圖形的過程中,實際上就是操作打開的當前文檔(Document),也是數據庫(Database)顯示給用戶看的視圖。dwg圖形其實也是一個輕量級的數據庫文件。一個Document與一個Database一一對應。按照應用程序(Application)的規定把Database中的對象顯示給用戶,同時用戶對Document的操作也會通過Application回寫到數據庫,在這個過程中也會對文檔進行鎖定和解鎖,以防止后臺修改數據庫時前臺文檔也在同時修改。
Application、Document和Database之間的關系如下圖所示:
Application、Document和Database關系圖
Database屬于ApplicationServices命名空間,在寫程序之前先導入ApplicationServices命名空間。
獲取當前打開的活動文檔方法
獲取數據庫的兩種方法
直接通過HostApplicationServices的WorkingDatabase屬性進行獲取;
先獲取當前文檔,然后在通過當前文檔獲取對應的數據庫。
關于AutoCAD數據庫的基本知識
表:數據庫的組成單位。在CAD圖形中包含9個符號表。
記錄:是表的組成單位,一個表中可能包含多條記錄,也可能不包含任何記錄。
CAD圖形的組成
向CAD添加圖元的基本步驟如圖:
添加實體流程圖
下面我們向CAD中添加一個實體、以一條線段為例。首先在Visual Studio2013中新建一個名稱為AddLine解決方案。完整代碼如下:
添加線段代碼
【調試】——【啟動調試】或者按“F5”(有關調試配置可以參考第一篇文章:C#程序對AutoCAD二次開發(一)),啟動AutoCAD應用程序,在命令行輸入Netload,加載“AddLine.dll”文件。
加載應用程序
輸入ADDLINE命令,程序在模型空間就繪制出一條起點(100, 100, 0),終點(600, 600, 0)的直線。如下圖:
程序繪制的線段
總結:這篇文章主要講了CAD文檔(Document)的組部分、Document與圖形數據庫(Database)之間的關系,以及向CAD文檔中添加圖形過程中要經過的幾個步驟;并且用代碼向模型空間中添加了一個線段(實體[Entity])、添加圖形到數據中必須根據需要以“讀”或者“寫”的方式進行“打開”塊表(BlockTable)和塊表記錄(BlockTableRecord),不然程序就會產生致命錯誤等情況。在以后的學習中我們也會詳細講解添加其他類型的實體到文檔中,比如多段線,圓、圓弧等,以及事務處理和ObjectId的使用等課程的學習。
本文鏈接:http://www.aiquka.com/blog/384.html
本文標簽: