【正文】
AutoCAD 允許用戶定制菜單和 工具欄 ,并能利用內(nèi)嵌語言 Autolisp、 Visual Lisp、VBA、 ADS、 ARX 等進(jìn)行二次開發(fā) AutoCAD 的更新升級(jí)的速度非??欤總€(gè)新版本都會(huì)加入一些更新更強(qiáng)大的功能。 AutoCAD 提供了正交、對(duì)象捕捉、極軸追蹤、捕捉追蹤等繪圖輔助工具。當(dāng)時(shí) VersaCAD 是專業(yè)的 CAD 制作公司,所開發(fā)的 CAD 軟件功能強(qiáng)大,但由于其價(jià)格昂貴,故不能普遍應(yīng)用。眾多 CAD 軟件之間的相互兼容性則是我們應(yīng)該重點(diǎn)研究的內(nèi)容,與此同時(shí) DXF 文2020 屆本科畢業(yè)設(shè)計(jì)說明書 2 件格式是圖形開發(fā)中最常用的圖形交換格式之一,它給我們提供了一個(gè)統(tǒng)一的標(biāo)準(zhǔn) ,因此目前眾多第三方開發(fā)的圖形軟件均加入了對(duì) DXF 文件的支持,這樣就可以很大程度上實(shí)現(xiàn)資源共享避免重復(fù)的勞動(dòng)。由微機(jī)配上圖形輸入和輸出設(shè)備 (如鍵盤、鼠標(biāo)、繪圖儀 )以及計(jì)算機(jī)繪圖軟件,就組成一套計(jì)算機(jī)輔助繪圖系統(tǒng)。一項(xiàng)工程圖的繪制通常是在歷經(jīng)數(shù)遍修改完善后才完成的。一幅圖紙能容納下許多信息,表達(dá)內(nèi)容直觀 , 一目了然 , 在不同的民族與地區(qū)具有表達(dá)思想的相通性,而往往可以反映用語言、文字也難以表達(dá)的信息。The second part is the design of the methods of drawing and editing different graphics,and the implementation of these functions。 基于 DXF 技術(shù)的草圖繪制系統(tǒng)就是要實(shí)現(xiàn)基本草圖的繪制和編輯功能,并且能夠?qū)⑺L制的草圖以 DXF 文件格式保存到存儲(chǔ)器或者數(shù)據(jù)庫,從而使其它支持DXF 格式的 CAD 軟件能夠?qū)⑵浯蜷_和進(jìn)行二次開發(fā),此草圖繪制系統(tǒng)還能打開標(biāo)準(zhǔn)的 DXF 格式的文件并對(duì)其進(jìn)行二次開發(fā)。 本課題主要研究利用基于 VS2020的 C語言所提供的 GDI+繪圖技術(shù)及 AutoCAD所開發(fā)的 DXF 技術(shù),實(shí)現(xiàn)各種基本工程草圖的繪制功能,并在此基礎(chǔ)之上實(shí)現(xiàn)對(duì)草圖的 DXF 格式的計(jì)算機(jī)存儲(chǔ)、讀取和各種編輯功能。The third part is the design and implementation of the mechanism for storing and reading of different graphics based on DXF technology. Keywords: CAD Graphics Drawing GDI+ DXF Technology 2020 屆本科畢業(yè)設(shè)計(jì)說明書 1 目 次 1 緒論 ................................................................ 1 1. 1 課題意義 ......................................................... 1 1. 2 國內(nèi)外研究狀況 ................................................... 2 1. 3 課題研究內(nèi)容 ..................................................... 3 2 開發(fā)工具簡介 ........................................................ 3 2. 1 DXF 技術(shù)簡介 ...................................................... 3 2. 2 AUTOCAD2020 簡介 ................................................... 4 2. 3 VISUAL STUDIO 開發(fā)平臺(tái)與 GDI+繪圖機(jī)制簡介 ........................... 4 2. 4 SQL SERVER 2020 簡介 ............................................... 6 3 系統(tǒng)需求分析 ........................................................ 6 4 基于 DXF 技術(shù)的草圖繪制系統(tǒng)設(shè)計(jì) ...................................... 7 4. 1 繪圖系統(tǒng)的功能模塊設(shè)計(jì) ........................................... 7 4. 2 繪圖類 的設(shè)計(jì) ..................................................... 8 4. 3 系統(tǒng)操作界面的設(shè)計(jì) ............................................... 9 4. 4 草圖存儲(chǔ)讀取機(jī)制的設(shè)計(jì) ........................................... 9 5 基于 DXF 技術(shù)的草圖繪制系統(tǒng)實(shí)現(xiàn) ..................................... 11 5. 1 草圖繪制功能的實(shí)現(xiàn) .............................................. 11 5. 2 草圖編輯功能的實(shí)現(xiàn) .............................................. 23 5. 3 草圖復(fù)制粘貼功能的實(shí)現(xiàn) .......................................... 25 5. 4 草圖 DXF 存儲(chǔ)讀取功能的實(shí)現(xiàn) ...................................... 26 結(jié) 論 ................................................................ 30 參 考 文 獻(xiàn) ........................................................... 31 致 謝 ................................................................ 33 2020 屆本科畢業(yè)設(shè)計(jì)說明書 1 1 緒論 1. 1 課題意義 人類在表達(dá)思想、傳遞信息時(shí) , 最初采用圖形 , 后來逐漸演化發(fā)展為具有 抽象意義 的文字。 工程圖是工程師的語言。但由于項(xiàng)目的多樣性、多變性 , 使得手工繪圖周期長、效率低、重復(fù)勞動(dòng)多,從而阻礙了建設(shè)的發(fā)展。在設(shè)計(jì)中通常要用計(jì)算機(jī)對(duì)不同方案進(jìn)行大量的計(jì)算、分析和比較,以決定最優(yōu)方案;各種設(shè)計(jì)信息,不論是數(shù)字的、文字的或圖形的,都能存放在計(jì)算機(jī)的內(nèi)存或外存里,并能快速地檢索;設(shè)計(jì)人員通常用草圖開始設(shè)計(jì),將草圖變?yōu)楣ぷ鲌D的繁重工作可以交給計(jì)算機(jī)完成;由計(jì)算機(jī)自動(dòng)產(chǎn)生的設(shè)計(jì)結(jié)果,可以快速作出圖形顯示出來,使設(shè)計(jì)人員及時(shí)對(duì)設(shè)計(jì)作出判斷和修改;利用計(jì)算機(jī)可以進(jìn)行與圖形的編輯、放大、縮小、平移和旋轉(zhuǎn)等有關(guān)的圖形數(shù) 據(jù)加工工作。 1. 2 國內(nèi)外研究狀況 CAD(Computer Aided Design)誕生于 60 年代,是 美國麻省理工學(xué)院 提出了交互式圖形學(xué)的研究計(jì)劃,由于當(dāng)時(shí)硬件設(shè)施的昂貴,只有 美國通用汽車公司 和美國波音航空公司使用自行開發(fā)的交互式繪圖系統(tǒng)。而當(dāng)時(shí)的 Autodesk 公司是一個(gè)僅有員工數(shù)人的小公司,其開發(fā)的 CAD 系統(tǒng)雖然功能有限,但因其可免費(fèi)拷貝,故在社會(huì)得以廣泛應(yīng)用。正交功能使用戶可以很方便地繪制水平、豎直直線,對(duì)象捕捉可幫助拾取幾何對(duì)象上的特殊點(diǎn),而追蹤功能使畫斜線及沿不同方向定位點(diǎn)變得更加容易。 AutoCAD 榮登全球繪圖軟件的龍 頭寶座,主要是因?yàn)樗哂虚_放的體系結(jié)構(gòu)。 AutoCAD 已成為事實(shí)上的微機(jī) CAD 應(yīng)用與開發(fā)標(biāo)準(zhǔn)平臺(tái)。由于 AutoCAD 現(xiàn)在是最流行的 CAD 系統(tǒng), DXF 也被廣泛使用,成為事實(shí)上的標(biāo)準(zhǔn)。 DXF 文 件被組織成為多個(gè) “ 段 ” ( SECTION),每個(gè)段以組碼 “0” 和字符串“SECTION” 開頭,緊接著是組碼 “2” 和表示段名的字符串(如 HEADER),可以使用組碼和值定義段中的元素。 DXF 文件的基本組成如下所示: HEADER 部分 圖的總體信息。 TABLES 部分 這部分包括命名條目的定義。 THUMBNAILIMAGE 部分 包括 DXF 文件的預(yù)覽圖。圖層功能: 利用標(biāo)準(zhǔn)文件功能,可以對(duì)諸如圖層、文字樣式、線型這樣的命名對(duì)象定義標(biāo)準(zhǔn)的設(shè)置 , 利用圖層轉(zhuǎn)換器能夠?qū)?dāng)前圖形圖層的名稱和特性轉(zhuǎn)換成己有圖形或標(biāo)準(zhǔn)文件對(duì)圖層的設(shè)置 。 Windows窗體提供的圖形類型分為下面三類: 二維矢量圖形 二維矢量圖形是繪圖的基本 元素(例如 : 直線、曲線和圖形)。 圖像處理 某些種類的圖片很難或者根本無法用矢量圖形技術(shù)來顯示。 版式 版式是指以各種字體、大小和樣式顯示文本。 一般來說,繪圖 首先要 獲得 Graphics對(duì)象 , 然后才可以使用 GDI+繪制線條和形狀、呈現(xiàn)文本或顯示與操作圖像。 Brush類 —— 用于填充圖形區(qū)域,如實(shí)心形狀、圖像或文本。 SQL語言的主要功能就是同各種數(shù)據(jù)庫建立聯(lián)系,進(jìn)行溝通。雖然很多數(shù)據(jù)庫都對(duì) SQL語句進(jìn)行了再開發(fā)和擴(kuò)展,但是包括 Select, Insert, Update, Delete, Create,以及 Drop在內(nèi)的標(biāo)準(zhǔn)的 SQL命令仍然可以被用來完成幾乎所有的數(shù)據(jù)庫操作。 3 系統(tǒng)需求分析 本課題所要實(shí)現(xiàn)的是基于 DXF技術(shù)的草圖繪制系統(tǒng),任務(wù)書中所規(guī)定的系統(tǒng)主要需求如下: 采用 DXF技術(shù),開發(fā)草圖繪制工具軟件,支持常用的基本圖形繪制,并實(shí)現(xiàn)對(duì)顏色的選擇、填充,也可以添加文字;支持對(duì)圖形的常用編輯 ,如選中圖形,進(jìn)行復(fù)制、粘貼、剪切、縮放(縮小、放大)等操作;繪制圖形時(shí)可以進(jìn)行分層,并讓圖層疊加顯示;繪制后的圖形支持保存到數(shù)據(jù)庫中,也可以添加到 WORD等文檔中;支持文檔常用操作,如新建、打開、保存到本地、另存。其中 DrawArea 用戶控件、 ToolStrip1 系統(tǒng)控件、ToolStrip2 系統(tǒng)控件被集成在 WhiteBoard 用戶控件之中,而 DrawArea 控件則為草圖繪制和編輯區(qū)域, ToolStrip1 控件和 ToolStrip2 控件則用來對(duì)系統(tǒng)的各項(xiàng)參數(shù)進(jìn)行設(shè)置。 以 D X F 格 式 讀 取 草 圖第 一 步 填 充 D X F 文 件 的 固 定 字 段第 二 步 根 據(jù) 圖 形 的 特 征 屬 填 充 基本 信 息第 三 步 按 照 順 序 生 成 標(biāo) 準(zhǔn) 的 D X F文 件填 充 尺 寸 、 版 本 等 信 息填 充 圖 層 、 樣 式 表 等 信 息根 據(jù) 圖 形 填 充 實(shí) 體 信 息 圖 草圖的 DXF存儲(chǔ)流程設(shè)計(jì) 草圖的 DXF 讀取設(shè)計(jì) 草圖的 DXF 讀取主要是打開一個(gè)標(biāo)準(zhǔn)的 DXF 文件,然后將打開文件中的字符串保存起來以便后續(xù)分析提取有用的信息,將字符串按 HEADERS、 TABLES、 ENTITIES 段分別提取出來,根據(jù)分離出的信息按照組碼提取需要的組值,最后根據(jù)所提取的信息調(diào)用系統(tǒng)繪圖功能繪出圖形。 Pen 為系統(tǒng)畫筆參數(shù), 和 分別為該點(diǎn)在畫板上的 X 軸坐標(biāo)分量和 Y 軸坐標(biāo)分量 ,以下各圖形介紹均以此為例。 1962年,法國數(shù)學(xué)家 Pierre B233。這一點(diǎn)是計(jì)算機(jī)萬萬不能代替手工的工作,所以到目前為止人們只能頗感無奈。在多段線的繪制過程中以鼠標(biāo)左鍵點(diǎn)擊繪圖域開始繪制,以鼠標(biāo)右鍵點(diǎn)擊 繪圖域結(jié)束繪制,其間所捕獲的所有坐標(biāo)點(diǎn)即為其特征點(diǎn)。 繪制多段線的效果圖如下: 圖 繪制多段線的效果圖 繪制多段線的流程圖如下: 開 始鼠 標(biāo) 左 鍵 點(diǎn) 擊 繪 圖 區(qū) 域 , 獲 取 其 坐 標(biāo) 點(diǎn) 為 多段 線 連 接 點(diǎn) 并 存 入 P o i n t L i s t 數(shù) 組從 P o i n t L i s t 數(shù) 組 按 先 后 順 序 將 坐 標(biāo) 點(diǎn) 依 次 賦 值給 P r i o r P o i n t 和 N e x t P o i n t調(diào) 用 g . D r a w L i n e ( P e n , P r i o r P o i n t . X , P r i o r P o i n t . Y , N e x t P o i n t . X , N e x t P o i n t . Y ) 函 數(shù) 將 多 段 線 逐 段 繪 出結(jié) 束否鼠 標(biāo) 右 鍵 是 否 按 下是否鼠 標(biāo) 左 鍵 是 否 按 下以 P o i n t L i s t 數(shù) 組 尾 點(diǎn) 為 P r i o r P o i n t , 以 鼠 標(biāo) 當(dāng) 前 坐 標(biāo) 點(diǎn) 為 N e x t P o i n t , 調(diào) 用 g . D r a w L i n e ( P e n , P r i o r P o i n t . X , P r i o r P o i n t . Y , N e x t P o i n