用VB開發(fā)交互式cad系統(tǒng)設(shè)計_第1頁
用VB開發(fā)交互式cad系統(tǒng)設(shè)計_第2頁
用VB開發(fā)交互式cad系統(tǒng)設(shè)計_第3頁
用VB開發(fā)交互式cad系統(tǒng)設(shè)計_第4頁
用VB開發(fā)交互式cad系統(tǒng)設(shè)計_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、用VB開發(fā)交互式cad系統(tǒng)摘 要本次畢業(yè)設(shè)計的任務(wù)是利用VB開發(fā)交互式cad系統(tǒng)中的圖形的編輯部分。設(shè)計具有交互繪圖的功能。能實現(xiàn)鼠標繪圖、圖元選擇和編輯,具備圖形輸出功能。實現(xiàn)交互式繪圖過程涉及到圖元的數(shù)學(xué)模型,數(shù)據(jù)管理、數(shù)據(jù)編輯等方面的知識和技巧。圖元的選擇編輯的重點放在了圖元的平移和旋轉(zhuǎn)。此外還設(shè)計了的啟動窗口和窗口的顯示。交互式cad技術(shù)在辦公、繪圖平面設(shè)計、工業(yè)設(shè)計等方面都有很多應(yīng)用。關(guān)鍵字: 交互式cad 圖形的編輯 窗口 AbstractThis graduation project duty is develops in the interactive cad system t

2、he graph edition part. The design has the alternately cartography the function. Can realize the mouse cartography, a chart Yuan choice and the edition, has the graphical output function. Realizes the interactive cartography process to involve to the chart Yuan mathematical model, aspect the and so o

3、n data management, data edition knowledge and the skill. The chart Yuan choice edition key point has placed a chart Yuan translation and revolves. In addition also has designed start window and window demonstration. The interactive cad technology in aspect and so on work, cartography plane design, i

4、ndustrial design all has applies very much.Key words: Interactive cad graph edition Window目 錄第1章 緒論 5第2章 可行性研究 6 2.1 問題定義 2.2 可行性分析第3章 總體設(shè)計 73.1 總體規(guī)劃 3.2 開發(fā)環(huán)境和工具3.3 軟件介紹3.4系統(tǒng)實現(xiàn)和設(shè)計主要分以下幾個步驟第4章 具體設(shè)計 8 4.1具體設(shè)計的詳細說明圖 9 4.2 圖元的編輯10 4.3 圖元的拾取與選擇 154.4 窗體的顯示控制19第5章 心得體會 20參考資料 21 第一章 緒論 對于大多數(shù)人而言,“交互式cad技術(shù)”

5、是一個熟悉而陌生的概念,為什么這么說呢?因為您可能經(jīng)常在使用這種技術(shù),卻沒有意識到。什么是交互式cad技術(shù)呢?打一個比方說;用鼠標在屏幕上畫一條直線,選中它后,可以改變直線段的方位和長度。這種技術(shù)繪圖具有方便、直觀、高效率等特點,在各種專業(yè)軟件、數(shù)據(jù)處理軟件、AutoCAD、Flash、PowerPoint、Word等很很多軟件里面都有廣泛的應(yīng)用。 在交互式系統(tǒng)中,不僅可以實現(xiàn)用鼠標繪圖,還可以選擇圖元,并對選中的圖元進行修改、幾何變換和刪除等操作。為了實現(xiàn)這些功能,交互式CAD系統(tǒng)不僅需要考慮圖形的數(shù)學(xué)模型,還要在數(shù)據(jù)結(jié)構(gòu)、內(nèi)存管理等方面做出籌劃。) 可行性研究 2.1 問題定義本系統(tǒng)是一個

6、關(guān)于交互式CAD的應(yīng)用系統(tǒng)。(1) 該系統(tǒng)應(yīng)該在整體上實現(xiàn)繪制各種圖元、編輯圖元和顯示編輯好的窗體等模塊。(2)該系統(tǒng)中,圖元數(shù)據(jù)需要保存起來,以便進行編輯操作。以合理的數(shù)據(jù)結(jié)構(gòu)進行保存,可以在內(nèi)存、系統(tǒng)安全性方面得到好處,從而提高程序的整體性能。 2.2 可行性分析技術(shù)可行性:根據(jù)新系統(tǒng)目標來衡量所需的技術(shù)是否具備,一般可以從硬件、軟件的性能要求、環(huán)境條件、技術(shù)人員水平和數(shù)量等方面去考慮和分析。這次設(shè)計的系統(tǒng)采用Visual basic 6.0系統(tǒng)開發(fā)的。 硬件要求:486以上CPU, 64MB以上內(nèi)存,2G以上硬盤。 第三章 總體設(shè)計交互式CAD系統(tǒng)要涉及到大量的數(shù)據(jù)處理,如何描述、輸入、

7、管理、編輯和輸出它們,在開發(fā)以前需要進行詳細的規(guī)劃。3.1 總體規(guī)劃1. 數(shù)據(jù)的組織和描述(1) 數(shù)據(jù)結(jié)構(gòu)(2) 數(shù)學(xué)模型2. 數(shù)據(jù)的輸入實現(xiàn)鼠標交互式輸入數(shù)據(jù)3. 數(shù)據(jù)的管理.0 type結(jié)構(gòu).0 VB類4. 數(shù)據(jù)編輯) 圖元的拾取和選擇) 圖元的幾何變化平移和旋轉(zhuǎn)。5. 數(shù)據(jù)的輸出(1) 文本輸出(2) 以DXF格式輸出6. UML類圖7. 界面交互3.2 開發(fā)環(huán)境和工具windows平臺Visual basic 6.03.3 軟件介紹Visual basic 6.0為開發(fā)工具。VB6.0是微軟公司推出的可視化編程工具MSDN之一, Visual basic 6

8、.0是一門功能強大的計算機語言,為用戶提供了一系列的屬性、方法和控件。采用了面向?qū)ο蟮木幊碳夹g(shù)進行編程。3.4系統(tǒng)實現(xiàn)和設(shè)計主要分以下幾個步驟1. 在windows平臺下安裝Visual basic 6.0軟件。2. 創(chuàng)建主窗體和顯示控制窗體。3. 用Visual basic 6.0語言來編寫程序。 第四章 具體設(shè)計 設(shè)計圖元編輯的流程圖開始結(jié)束移動圖元=0移動圖元x,y=0x=x cosy siny= x sin+ y cosx=x +x y=y+y輸入x,y 3. 具體設(shè)計的詳細說明圖本次設(shè)計包括三個部分;圖元的拾取、圖元的編輯和窗體的制作。 0. 總體設(shè)計過程說明圖圖元繪制的具體代碼實現(xiàn)

9、圖元的編輯和變換圖元的拾取和選擇具體圖元編輯的代碼實現(xiàn)顯示控制的代碼具體實現(xiàn)顯示窗體的制作0. 圖元編輯說明圖直線多義線圓圓弧文本圖元的平移圖元編輯圖元的旋轉(zhuǎn)0. 圖元拾取的功能分析圖直線多義線圓圓弧文本逐步選取圖元拾取 分類選取全刪除全選4.2圖元的編輯在設(shè)計過程中圖元編輯部分是具體設(shè)計的核心部分。一. 二維圖形變換的基本原理、算法和具體實現(xiàn)用計算機進行輔助設(shè)計時,復(fù)制、移動、旋轉(zhuǎn)已有圖元可以提高繪圖效率,對圖形元素進行集合變換可以實現(xiàn)這些操作。圖元的基本形狀和位置由它們的控制點唯一確定,比如直線段由直線段的起點和終點確定,圓弧由圓弧的圓心、起點和終點確定等。所以對圖元的旋轉(zhuǎn)、平移等集合變換

10、可以歸結(jié)為對圖元控制點的幾何變換??刂泣c的幾何變換完成以后,根據(jù)變換后的控制點繪圖,就可得到變換后的圖元。二維空間中一點變換前后的關(guān)系可用下式表示: t11 t12 x y 1 = x y 1 t21 t22 x y其中, x y 為變換前點的坐標,x y 為變換后的坐標。 t11 t12 T = t21 t22 變換矩陣。 x y用齊次坐標表示,上式可以寫成: x=x t11+y t21+x y=y t12+y t22+y(1) 平移變換平移變換是把選中的圖元平移到另一位置,如圖2-1所示。 Y P (x, y) p(x,y) X 圖 2-1平移變換圖示平移變換的變換矩陣為 1 0 0 T

11、= 0 1 0 x y 1所以有 1 0 0 x y 1 = x y 1 0 1 0 x y 1 既 x=x +x y=y+y其中,x,y 為評議前點的坐標;x,y為平移后點的坐標,x和y 為點在x方向和y方向上平移的距離。(2) 旋轉(zhuǎn)變換旋轉(zhuǎn)變換使圖元繞某點旋轉(zhuǎn)一定角度后,到達新位置,如圖2-2所示。逆時針旋轉(zhuǎn)時,旋轉(zhuǎn)角度為正,反之為負。 Y P (x, y) p(x,y) X 圖 2-2旋轉(zhuǎn)變換 cos sin 0 饒原點旋轉(zhuǎn)的變換矩陣為 T = -sin cos 0 0 0 1 所以有 cos sin 0 x y 1 = x y 1 T = -sin cos 0 0 0 1即 x=x c

12、osy siny= x sin+ y cos一. 點的變換圖元的變換可以歸結(jié)為點的變換,首先在position類中添加點的變換函數(shù)。) 平移變換移動后點的坐標值等于移動前點的坐標值與位移矢量的和。在position類中添加pntmove函數(shù),該函數(shù)有兩個參數(shù)xx和yy,分別定義移動矢量的水平向分量和垂直向分量。在直角坐標系中,當xx或yy為正時,點向右、向上移動;當xx或yy為負時,點向左、向下移動。函數(shù)返回一個position類實例,為移動后的點。(2) 旋轉(zhuǎn)變換旋轉(zhuǎn)一個點需要確定兩個參數(shù),既旋轉(zhuǎn)的參照點和旋轉(zhuǎn)的角度。參照點指的是饒哪個點旋轉(zhuǎn)。在position類中添加pntrotate函數(shù)

13、,定義點的旋轉(zhuǎn)行為。Pntrotate函數(shù)有兩個參數(shù),即basepos和angle分別定義旋轉(zhuǎn)參照點和旋轉(zhuǎn)角度。旋轉(zhuǎn)后點的坐標可以根據(jù)原理部分的計算公式獲得。,二. 圖元的變換1. 直線段的幾何變換(1) 直線段的平移變換直線段的平移變換實際上是對直線段的起點和終點作平移變換,然后將變換后的起點和終點用直線段相連接。在cline類模塊中添加CGElement_Move過程,定義直線段的平移變換。該函數(shù)有兩個參數(shù),即basepos和despos,分別定義平移前后的相對位置。平移前直線段上任一點到basepos點的距離和方向與平移后直線段上對應(yīng)點到despos點的距離和方向是相同的。兩個點橫坐標之

14、間和縱坐標之間的差異分別表示橫向和縱向移動的距離和方向。(2)直線段的旋轉(zhuǎn)變換通過旋轉(zhuǎn)直線段的起點和終點,可以實現(xiàn)直線段的旋轉(zhuǎn)。在cline類模塊中添加CGElement_Rotate過程,該過程的兩個參數(shù)basepos和angle分別定義旋轉(zhuǎn)的基點和角度。2. 多義線的幾何變換(1)多義線的平移變換多義線的平移變換可通過平移多義線的頂點來實現(xiàn)。在cpolyline類模塊中添加CGElement_Move過程,以描述多義線的平移變換。(2)多義線的旋轉(zhuǎn)變換在cpolyline類模塊中添加CGElement_Rotate過程,通過對多義線的頂點進行旋轉(zhuǎn)變換來實現(xiàn)多義線的旋轉(zhuǎn)變換。3. 圓的幾何變

15、換(1)圓的平移變換 圓的平移動變換通過對圓的圓心和圓上一點進行平移變換類實現(xiàn)。在ccircle類模塊中添加CGElement_Move函數(shù),描述圓的平移變換。(2)圓的旋轉(zhuǎn)變換在ccircle類模塊中添加CGElement_Rotate過程,通過對圓心和圓上一點進行旋轉(zhuǎn)變換來實現(xiàn)圓的旋轉(zhuǎn)變換。4. 圓弧的幾何變換1. 圓弧的平移變換在carc類模塊中添加CGElement_Move過程,實現(xiàn)圓弧的平移變換。(2)圓弧的旋轉(zhuǎn)變換在carc類模塊中添加CGElement_Rotate過程,對圓弧的圓心、起點和終點進行旋轉(zhuǎn)變換。2.3 圖形變換交互功能的實現(xiàn)2.3.1 平移變換CMOVE類平移變換

16、的交互過程通過CMOVE類來實現(xiàn)。該類利用鼠標單擊和移動事件代碼來描述各種圖元進行平移變換時的交互過程。該類實現(xiàn)了Ccommand接口。2.3.2旋轉(zhuǎn)變換通過創(chuàng)建CRotate類來進行描述。通過響應(yīng)鼠標單擊和移動事件來用圖形顯示圖元旋轉(zhuǎn)的基點和角度。2.4 刪除圖元包括內(nèi)存刪除和屏幕刪除兩部分。4.3圖元的拾取與選擇要實現(xiàn)上面的圖元的編輯首先要實現(xiàn)圖元的拾取功能。圖元的拾取是指計算機識別圖元的方法。圖元的選擇是把已經(jīng)識別的圖元單獨保存,以備修改和編輯。一.包圍矩形的計算包圍矩形指能包圍圖元的最小矩形。(1)直線段的包圍矩形直線段的包圍矩形是以直線段的起點和終點為對角頂點的矩形。為了提高拾取效率

17、,通常要將直線段的包圍矩形向外擴展一定的距離如上圖。(2)多義線的包圍矩形多義線的包圍矩形由多義線的頂點坐標決定。以所有頂點中最小的橫坐標和最小的縱坐標所確定的點與最大的橫坐標與最大的縱坐標所確定的點為對角頂點的矩形為多義線的包圍矩形。(3)圓的包圍矩形圓的包圍矩形為正方形,是圓的外切矩形。包圍矩形的左下角坐標和右上角坐標由圓心坐標和圓的半徑確定。左下角坐標為圓心坐標減去圓半徑,右上角坐標為圓心坐標加上圓半徑。 (4)圓弧的包圍矩形圓弧的包圍矩形是包圍圓弧的最小矩陣。計算圓弧的包圍矩形,需要計算圓弧與過圓心的坐標軸4個方向上的相交關(guān)系。因為圓弧與坐標軸正向或負向的交點坐標在數(shù)值上代表了這個方向

18、上的最大值。如果相交,則包圍矩形在這個方向上的值便是該值。如果不相交,包圍矩形在這個方向上的最大值就是圓弧起點和終點x、y坐標的最大值。圓弧與4個軸的相交關(guān)系可以通過比較可能的交點與圓弧之間的關(guān)系得到。如果圓弧所在的圓與4個坐標軸的交點在圓弧內(nèi),則對應(yīng)的交點便是圓弧與4個坐標軸的交點,否則不是。 (5)文本的包圍矩形 要獲取文本的包圍矩形,需要知道文本的寬度和高度,以及文本插入點的位置。包圍矩形左下角的橫坐標為插入點的橫坐標,縱坐標為插入點的縱坐標減去文本的高度;右上角的橫坐標為插入點的橫坐標加上文本的寬度,縱坐標為插入點的縱坐標。I am the first 二.圖元的拾?。?)直線段的拾取

19、如果拾取點落在直線段的包圍矩形內(nèi),則進一步判斷拾取點與直線段之間的距離。如果小于指定的容限值,則該直線段被拾取。(2)多義線的拾取如果組成對義線的任何一條直線段被拾取到,則多義線被拾取到。在Cline類中添加CGElement_pick方法。(3)圓的拾取以圓的圓心為圓心,以圓的半徑加減R長度為半徑,得到一個包圍圓的環(huán)帶。如果鼠標點落在該環(huán)內(nèi),則圓被拾取。圓拾取的實質(zhì)是計算拾取點到圓心的距離。(4)圓弧的拾取圓弧的拾取分兩步。首先判斷圓弧所在的圓是否被拾取。如果沒有被拾取,則圓弧不被拾??;如果圓已經(jīng)被拾取,則繼續(xù)判斷拾取點是否落在圓弧的范圍內(nèi)。如果落在圓弧范圍內(nèi),則圓弧被拾取,否則不被拾取。(

20、5)文本的拾取拾取標注文本,首先要判斷拾取點是否落在文本的包圍矩形中,如果在,則文本拾取。4.3 圖元的選擇一. 添加選擇集 為了存儲選中的圖元,需要添加圖元的選擇集。二. 逐個選擇圖元單擊某圖元時,如果該圖元被拾取,把它添加到相應(yīng)的集合類進行保存,則該圖元被選擇。在繪圖環(huán)境中可以連續(xù)選擇多個圖元,并把它們放到選擇集中。 與圖元有關(guān)的菜單資源菜單項標題名稱逐類選擇SelOnebyOne分類選擇SelbyClass選擇直線段SelLine選擇多義線SelPlines選擇圓SelCircles選擇SelArcs選擇標注文本SelTexts全選SelAll放棄全選SelNone三. 分類選擇 一個圖

21、形往往由多種不同的圖元組成,如果對某一類圖元感興趣,可以直接選擇該類圖元,并進行編輯??赏ㄟ^SelectGEs函數(shù)來實現(xiàn)。四. 全選全部選擇圖元,需要將全部圖元集合類中的圖元以選擇模式重繪,并放入選擇集。4.4 窗體的顯示控制(1)創(chuàng)建工程和窗體1frmlash窗體設(shè)計2. 啟動frmmain窗體時顯示frmflash窗體Private Sub Form_Load()Frmflash.showEnd sub(4)把frmflash窗體顯示在最前面利用api函數(shù)setwindowpos把frmflash窗體顯示在最前面。(5)確定frmflash窗體的顯示時間確定啟動窗口的顯示時間為3秒Priv

22、ate Sub Form_Load() Timer1.Interval = 3000End Sub超過時間間隔時卸載窗體Private Sub Timer1_Timer() Unload frmFlashEnd Sub第五章 心得體會在老師的指導(dǎo)下,終于完成了交互式CAD系統(tǒng)的設(shè)計。這次的設(shè)計給了我很多寶貴的經(jīng)驗,通過交互式CAD系統(tǒng)的設(shè)計,使我對CAD系統(tǒng)的應(yīng)用、vb語言有了更加深刻的了解和認識。這次設(shè)計使在大學(xué)學(xué)堂里學(xué)到的理論能夠應(yīng)用到實踐總來,而且更加鞏固了已學(xué)到的理論知識。但是本次設(shè)計還存在著很多問題,比如具體主窗口的應(yīng)用設(shè)計、圖元編輯中比例變換和鏡像變換、圖元的逐步選取等等。在設(shè)計過

23、程中因為初次接觸這些圖象理論上的東西,所以在應(yīng)用上出現(xiàn)了很多問題,這時張云秋老師給予了充分的指導(dǎo),在老師的指導(dǎo)和同組學(xué)生的團結(jié)合作下,終于能及時完成本次畢業(yè)設(shè)計。對老師表示忠心的感謝! 參考文獻 1計算機圖形學(xué) 魏海濤編著. 電子工業(yè)出版社2.計算幾何算法分析與設(shè)計 周培德著 清華大學(xué)出版社3計算機輔助設(shè)計與繪圖 李學(xué)志編著 清華大學(xué)出版社4計算機圖形學(xué) 吳良芝編著 北京大學(xué)出版社5.vb6.0入門與技巧 土林森編著 清華大學(xué)出版社6線性代數(shù) 葉家琛等著 同濟大學(xué)出版社tgKQcWA3PtGZ7R4I30kA1DkaGhn3XtKknBYCUDxqA7FHYi2CHhI92tgKQcWA3PtGshLs50cLmTWN60eo8Wgqv7XAv2OHUm32WGeaUwYDIAWGMeR4I30kA1DkaGhn3XtKknBYCUDxqA7FHYi2CHhI92tgKQcWA3PtGZ7R4I30kA1DkaGtgKQcWA3PtGZ7R4I30kA1DkaGhn3XtKknBYCUDxqA7FHYi2CHhI92tgKQcWA3PtGshLs50cLmTWN60eo8Wgqv7

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論