<nav id="w0g0m"><code id="w0g0m"></code></nav>
  • <xmp id="w0g0m">
    <xmp id="w0g0m"><nav id="w0g0m"></nav><menu id="w0g0m"><strong id="w0g0m"></strong></menu>
  • <xmp id="w0g0m">
  • <nav id="w0g0m"></nav>
    <menu id="w0g0m"><menu id="w0g0m"></menu></menu>
    1. 網站地圖
    2. 設為首頁
    3. 關于我們
    ?

    農業機械計算機輔助設計系統開發

    發布時間:2023-04-24 11:04
    第--章緒論 1
    1.1概述 1
    1.2我國訃算機輔助設計的發展概況 1
    1.3研究的目的和意義 3
    1.4研究的內容和方法 4
    第二章農業機械計算機輔助設計系統的構成體系 6
    2.1計算機輔助設計系統的設計目標 6
    2.2軟件開發丁具 6
    2.3 系統的總體構成體系 8
    第三章DirectX技術及在計算機輔助設計系統中的應用 11
    3.1DirectX 技術 11
    3.2基于DirectX的3D仿真技術 14
    3.3動畫實現原理 22
    笫四章XML技術及在計算機輔助設計系統中的應用 29
    4.1XML概述 29
    4.2XML的基礎標準 31
    4.3XML的應用標準 34
    4.4XML的應用模式 36
    4.5XML在計算機輔助設計系統的應用 37
    第五章計算機輔助設計系統實現 39
    5」軟件的制作 39
    5.2軟件實現過程 40
    第六章計算機輔助設計系統在水稻缽苗行栽機設計中的應用 47
    6.1拔秧輸秧裝置的設計計算與參數確定 47
    6.2計算機輔助設計系統的應用 51
    6.3應用效果分析及改進意見 55
    6.4仿真輸出 55
    6.5本章小纟吉 56
    第七章結論 57
    參考文獻 59
    致謝—— 61
    作者簡歷   62
    第一章緒論
    1.1 概述
    我國是一個農業人國,農業現代化是農業經濟發展的基礎,所以必須加快農業現代化的發展 速度,為國家經濟的高速發展提供有力的保障。由國家科委T 1992年組織實施計算機輔助設計 (CAD)應用I:程,取得了巨人的成效,也證明應用計算機輔助設計技術是推動生產力發展的有 效途徑,是木來實現智能芳動的技術基礎,是企業實現技術進步、提高市場競爭力的手段[1]。計 算機輔助設計不僅可以從根本上改變傳統的產品設計、開發和生產過程,突破時間、地域和環境 的限制,實現并彳亍程,實現設計自動化,可以提高產品質量,縮短產品研發周期,增強企業機 械產晶在時間上的競爭能力,加速國民經濟發展和國防現代化的一項關鍵性高技術,也是進一步 向iI-算機集成制造發展的巫要技術基礎。
    前期由丁受到資金投入等各方面問題的影響,我國農業機械的計算機輔助設計整體水平嚴重 滯厲丁國外的發展,農業機械計算機輔助設計研究工作顯得尤為塵耍。作者結合計算機技術的發 展,探索一條計算機輔助設計的新途徑,希望引起農機研究人員的巫視,集思廣益,創新研究方 法,促進計算機輔助設計的研究推廣工作。
    1.2我國計算機輔助設計的發展狀況
    1.2.1我國CAD的發展現狀
    我國的CAD技術是從20世紀70年代起步的,近20年來,國內各高等學校、科研單位和 「.廠在CAD技術、圖形顯示器、口動繪圖機、圖形語言、程序庫、數據庫以及現代設計方法學、 有限元分析、邊界元分析、優化設計、可靠性設計等方面都進行了研究,并取得了可喜的成績。 我國CAD技術的發展現狀是[3]:
    (1)逐步向專業吃CAD軟件發展。
    (2)操作方式趨丁啣能化宜人化,以減少用戶的信息輸入量和記憶量。
    (3)CAD系統不同程度的提供了參數化設計功能。
    (4)CAD軟件-般可提供軸承、緊同件等標準件圖庫,有些CAD軟件還提供交互式建庫工
    (5)—些CAD軟件已能夠進行三維建模,提供三維標準件庫,模擬三維裝配。
    (6)許多CAD軟件都不同程度地提供了圖紙的分類和查詢管理模塊。
    (7)許多CAD軟件提供了由零件圖拼裝成裝配圖和自動生成零件明細表和BOM表的功能。
    1.2.2 CAD技術在我國農業機械中的應用
    (1)一維交M式繪圖軟件在農機企業應用已較普遍
    n前,我國有一定先產規模的多數農機企業都不同程度地實現了計算機二維交互式繪圖和圖 紙、圖表、文檔的計算機管理,使用軟件多為AutoCAD及一些國產的二次開發產品。我國農機 
    「作背還利用ADS編程方法在AutoCAD上二次開發出了聯合收割機割臺CAD系統。農機企業 CAD應用已從單機向網絡環境使用方向發展。并培養了一大批既懂得農機設計原理和農業生產 耍求,乂會使用CAD軟件的中青年工程師。企業已建立起口己的專業零部件圖庫、常用符號庫 等。經過十兒年的發展和積累,已收到了一定的經濟效益,使這些企業新產品的開發周期平均縮 短8?10個月。
    (2)二維參數化繪圖軟件及CAD/CAE/CAM技術在農機行業開始應用
    以PTC公司Pro/Engineer為代表的參數化設計和基于特征設計的三維實體造型設計軟件已 在我國一些農機企業開始使用。此外,Autodesk公司的MDT軟件也較廣泛應用于農機參數化實 體造型、復雜曲面造型設計上。我國科技工作者利用B樣條理論口主開發了犁體設計三維CAD 系統一一 PSCADo農業機械零部件中復雜曲面較多,如犁體曲面、旋耕機旋刀、水泵葉輪、送 料螺旋等,這些零部件的設計采用傳統手匚設計方法和二維設計軟件,很難滿足精度要求,采用 二維CAD設計系統,表達氏觀、設計方便,并可直接指導CAPP和CAM進行數控加工和模具 制造。
    農機行業中一些基礎較好的企業,在二維CAD基礎上,采用第三方產品如Ansys(有限元分 析和優化軟件)、Dynamic Designer(機械運動仿真分析軟件),NC Polaris(注塑和沖壓模具CNC編 程軟件),Edge CAM(走刀軌跡生成軟件)進行T.程分析和輔助制造。對一些大型農機(如四輪農用 運輸午)和高精度耍求的復雜曲面零件(如水泵葉輪)已應用CAD/CAE/CAM技術。另外,我國農 機「.作者在國外CAD/CAE/CAM軟件的用戶化和二次開發方面也做了大量的工作。
    1.2.3存在的問題
    CAD技術在我國農機行業雖然有了較快發展,但也存在不少問題。
    (1) 僅作為繪圖r.Ao目前,我國大多數農機企業對CAD的應用主耍在二維繪圖上,只是在 設計過程的繪圖階段用上了計算機,沒有充分發揮計算機輔助設計的作用。正因為CAD僅作為 繪圖| -.n>所以CAD的設計效率并不高,效益難以發揮,影響了農機企業逬一步加快CAD技術 的向用積極性。
    由丁•我國人多數二維CAD系統本身不成熟,缺乏成熟的三維標準件庫和常用件庫,國外三 維CAD系統多是展丁二維I:作站的,價格昂貴,所以農機企業三維CAD應用極少。不過,近年 PC機和Windows 9X/NT環境卜•的三維CAD系統進入中國市場,如Pro/Engineer, Solidworks 和Autodesk公司的MDT等,一些原為1:作站系統的三維CAD軟件也推出了 PC和windows平 臺的版本。隨看這些二維CAD軟件價格的下降和國產化,農機企業三維CAD的應用將逐步加快。
    (2) 缺乏農機專用CAD軟件。農機企業目前使用的CAD軟件,多是二維或三維機械CAD通 用軟件,這些軟件缺乏農機標準件和常用零部件庫和農機常用圖形符號庫等,對農機設計中的一 些計算和參數的杳詢也難以滿足。農機企業急需一種自帶標準件和常用件參數化圖庫(含農機標準 件),具有各種類型農機具設計引導模塊的農機專用CAD軟件。
    (3) 標準化「.作落厲。在CAD技術標準化方面,我國國家標準跟不上國際標準的更新和發展, 國內CAD軟件系統在數據交換和標準化方面存在不少問題。農機企業在應用CAD技術時,企業 技術部門也沒有根據CAD的特點,對企業已有的標準進行修訂或訂立新的標準,嚴重影響企業 間的交流和企業內部數據的交換和共享,使農機企業的CAD應用水平很難提高。
    (4)信息集成技術與網絡化技術落后。廣義計算機集成制造系統CIMS是經過多種集成形式 實現CAD/CAE/CAPP/CAM/CAQ/PDM/ERP -體化解決方案,從而推動企業信息化進程。農機企 業的信息集成技術比常落厲,企業各部門相直獨立使用各種功能的應用軟件,許多軟件Z間不能 共享數據庫、缺乏必要的數據接口,不同部門、不同應用軟件Z間逋信困難。
    CAD采用網絡技術可以實現信息共享,給設計工作帶來極人的方便。農業機械的設計工作 是典業的樣體「作,樣體成員Z間必須協同工•作,群體成員Z間相直關聯,必須應用計算機支持 的協同•作(CSCW)技術,進行設計群體成員的交流,這必須以網絡為基礎。目前,農機企業網 絡技術較落后,遠不能達到異構環境卞的協同設計和組建網上企業的程度。
    (5)缺乏氏遠的系統規劃。很多農機企業在選擇CAD軟件時,都希望選取技術最先進、功能 最齊全的CAD軟件,而缺乏對口身人員配備、使用目的、管理水平等作全面分析和持續的、階 段性的氏遠規劃,缺乏對軟件開發商研發能力和持續發展能力的考查,簡單模仿其他機械企業。 而一些軟件開發商由丁•口身原因,致使使用這些軟件的企業得不到軟件的升級和后續服務,企業 被迫改用其他CAD系統,企業K期積累的技術資料乂無法被新的CAD系統識別給企業造成重大 的損失。
    1.3研究的目的和意義:
    1.3.1研究的目的
    在傳統的農業機械設計中,設計者首先耍把腦海中的產品雛形以平面視圖的形式表達出來, 然片對其校核、修改,最厲再由生產者把平面圖紙上的內容轉化成二維的實物。在這一過程中, 設計者往往需要將很人一部分精力用于把三維構想轉化到平面圖紙上,即便使用二維CAD輔助 設計,這一過程可簡化的量仍然很小,只不過平面圖的生成由圖板變成了計算機屏幕,設計思路 并沒有發生根本的改變,許多問題只有在見到產品時才能發現,產品的設計周期長,成本高,效 果較熹
    現代設計中,產品造型師用3DS MAX對產品外觀進行造型設計,然后結構工程師根據產品 外觀造型數據,用Pro/ ENGINEER軟件的三維實體功能進行實體建模設計,在外觀模型基本確 定厲,分別對零件進彳亍局部仔細設計,再根據外觀造型數據對零部件進行實體建模設計。所有零 部件建模完成后,用Pro/ ENGINEER的裝配模擬模塊,將所有零件組裝在一起,檢查零部件是 否會發生干涉,零部件生產和絹裝是否符合生產工藝要求,檢查合格后,不需要進行尺寸標注, 肓接將設計文件復制給加匸廠,通過加丁•中心進行加工,這一切所帶來的是一種設計觀念的根本 變革。
    本文嘗試設計一種專用計算機輔助設計軟件,按照現代設計的方法實現這一全新的設計過 程,應接采用二維CAD技術設計,在計算機屏幕上構建三維實體模型,然后利用設計的三維實 體模型進行虛擬裝配和機構分析、動態干涉檢査、動力學分析、有限元應力分析等,整個設計過 程與人的思維模式高度一致,不再需要傳統概念的圖紙,省去輸出圖紙的過程,大大縮短了新產 品開發和生產周期。
    1.3.2研究的意義
    農業機械由「口身的特點和工作對象的復雜性,使其研制帶來了較犬的困難。農機研究有其 口身的特姝性,有些理論分析和綜合計算過程復雜,計算量相當人,依靠人工計算很難完成。因 此傳統的農機理論分析很多是定性的說明問題,缺乏精確的計算和驗證。相對復朵的機構分析和 設計,往往借助J:圖解法和經驗類比法,岡此,我國農機設計手段比較落后。為了使我國農機設 計制造技術達劍發込國家水平,與其他機械制造業平行發展,必須加人CAD技術在農機行業的 應用力度,提高農機企業以CAD為中心的現代信息技術水平。
    通過對「.程技術人員應用CAD軟件開發設計的了解,僅有少數實力較強的企業會購置功能 強人的CAD專用軟件進行產品開發設計,而且有充足的時間和條件對技術人員進行軟件的專業 應用培訓。因而,強人的專業軟件功能得以充分的發揮和應用,兒乎一個軟件就能很方便地完成 所有開發和生產「作。爭實上,日前絕大多數企業的技術人員是在市場上購買價格便宜的CAD 繪圖軟件,而且很多功能不能使用或存在缺陷。這些企業的技術人員沒有充足的時間和機會進行 CAD軟件的專業焙訓,對很多CAD軟件功能不夠了解,因此也不能合理選擇CAD軟件進行組 合運出,達不到人幅度提高產品開發的目的。為了解決這個問題,筆者在產品開發設計中做過許 多CAD軟件運用試驗,選擇了兒種功能較實用的CAD軟件中的部分優勢功能進行整合運用,用 VB快速開發出漂亮的界面以及應用程序框架,再嵌用VC編寫底層的各種操作的控件,只需花 費少量的軟件費用,同樣能達到人幅提高效率的目的,在計算機輔助設計軟件的開發中使用了這 一技術,可以取得良好的效果。
    1.4研究內容和方法
    1.4.1研究的內容
    日前,支持產品開發設計的計算機輔助設計軟件種類較多,常見的有:Photoshop , Corel DRAW, 3DS MAX, AutoCAD, Pro/ENGINEER, Solid work 和 UG 等。這些軟件具有不同的使 用功能,即使同一類軟件在操作方便性和實用性都各有千秋,如何合理使用開發軟件,整合各種 CAD軟件的優勢,設計技術的表達方法變得容易和方便,大幅提高開發設計和生產工作效率就 成為我們研究的課題。
    本課題主耍進行以卜方面的研究:
    1、 利用AutoCAD. 3DMAX籌通用軟件的自身優勢建立部件的數學模型;
    2、 結合當前卞流的計算機技術,使用了 XML文檔對模型數據進行分類、編碼、存儲、檢索 和維護;
    3、 采用 DirectX 9 For Visual Basic Type Library 的接口技術,利用 DirectX 中的 Direct3D 獨 特的功能,建立二維編輯器,生成構件,并可以方便的控制構件在選定場景中的視點位置與縮放;
    4、 應用Visual Basic語言豐富的ActiveX控件的強大功能,開發了其附加控件,實現機構 的二維動畫效果;
    5、 構建了 一個良好的人機交互界面,成功地實現了具有圖片、動畫等交互功能的機械設計 軟件。
    1.4.2主要研究方法
    1、AutoCAD在平面設計、3DMAX在三維造型設計方面具有明顯的優勢,它們口身的優勢 為建立部件的數學模醴提供了有力的保證;
    2、隨著XML技術在網絡中應用的迅猛發展,XML技術日臻完善,在數據管理方面的優勢 逐步凸現。XML為建立良好的數據結構,以建立一個完整的描述模型信息的數據模空,為該數 據模型具有良好的層次結構提供了充分的保證,為數據統計和模型分析打下了良好的基礎。
    3、 DirectX 9在技術方面的突破,以及DirectX中的Direct3DRM的發展,使得它在三維設計 方而的功能更加強人,效果更加真實生動。這為系統建立三維編輯器提供充分的保證,并為用戶 要求的實現提供了有力的技術支持;
    4、 隨著Visual Basic語言的發展,為用戶提供了更為豐富的ActiveX控件,控件的功能更 加強人.通過編程可以開發附加控件,確保系統對三維動畫效果的耍求;
    5、 用VB快速開發出漂亮的界面以及應用程序框架,再嵌用VC編寫底層的各種操作的控件, 已成為越來越多的軟件編程人員愿意采用的編程方法。通過這些可以方便的構建了一個良好的人 機交互界面,實現具有圖片、動畫等交互功能的機械設計軟件。
    第二章農業機械計算機輔助設計系統的構成體系
    2.1計算機輔助設計系統的設計目標
    設計計算機輔助設計系統的目的是為了克服傳統設計方式的不足,應可以按照現代設計理論 的方法完成設計過稈。因此計算機輔助設計系統的目標是,形成一套可以獨立工作的設計軟件, 軟件的功能涵蓋建模、虛擬裝配、動畫演示、動力學及運動學分析、錯誤修改等方面。
    計算機輔助設計系統軟件是為具體設計人員開發的,所以強調了系統的易用性和現有數據的 兼容性。
    對丁•軟件本身耍求界面友好,操作簡單;設計合理,便于按照使用者的習慣實現具體耍求; 結構簡單,便習學握。
    軟件設計目標包括以卜方面:
    1) 可以將其他建模軟件生成的文件導入系統;
    2) 可以對部件的外觀、強度、裝配工藝等進行校核;
    3) 可以在系統中對部件進行虛擬裝配;
    4) 可以在系統中對機構進彳亍動畫演示;
    5) 可以對部件進彳亍動力學、運動學等分析;
    6) 可以對設計存在的問題進行修改:
    2. 2軟件開發工具
    2.2.1建模
    日前,開發計算機輔助設計系統的方法主耍有兩種:采用通用的3D建模和動畫制作軟件的 方式和采用逋用的CAD軟件和常規動畫類軟件結合的方式。
    (l)3D建模和動畫制作軟件
    這一類型的軟件內部集成了建模及動畫制作功能,可以集成制作二維動畫,但由于此類型軟 件-般用r通用目的,所以動畫過程實現起來比較復雜,并且對丁些特殊效果實現起來非常困 難其至無法完成。目前應用較為廣泛的CAD/CAM軟件,如3DMAX、Pro/E、UG、Solidworks 軟件等均貝備零部件的裝配及運動模擬功能,可以方便地建立機構三維動畫,是其中的典型•工具 軟件。-
    機械計算機輔助設計軟件對機械設計的圖形繪制要求非常精確,而當前高校中一般使用 AutoCAD建模,積累了人童的相關開發經驗,廣大師生基本上普及了使用AutoCAD進行圖紙設 計,同時也已經建立了數量龐人的圖紙數據庫,所以選用AutoCAD建模不失為上策,AutoCAD 的實體模型尺寸精確,圖像質感細膩,但是AutoCAD在3D實體建模與編輯方面的功能并不強大, 而使得對復雜3D圖形制作、修改與編輯困難重重。在建模問題上,Solidworks操作非常簡單, 寧習起來也比較容易。當然對丁一些習慣使用UG、Pro/E等的用戶來說,選擇這些功能強大的應 川軟件來進彳亍二維建模也很好。不管選擇哪種軟件建模,一定耍考慮到它們與后期動畫制作中選 川的3D動畫軟件的接口問題。
    (2) 口編程序語書制作動畫
    當前現有的3D動畫制作的應用軟件雖然功能越來越強大,操作也越來越簡單,但基本上都 是傳統的關鍵幀動畫,即物體的運動路徑需人為預先指定,動畫產生過程中用戶不能與Z交互, 因而存在很人的局限性。利用程序語言制作動畫,結合運動學、動力學等學科規律,建立模型的 運動方程,作為動畫模熨的運動路徑,可以彌補應用軟件的不足,從而使用戶能很好的參與進來, 極人地提高了設計效果。
    2. 2.2圖形技術
    在計算機行業中,所有軟件的程序接口,包括3D圖形程序接口在內,統稱為API(Application Program Interface,應用程序接口)。微軟下一代操作系統Longhorn采用的是微軟自己的DirectX 10 API,而Sun的Looking Glass采用的是OpenGL APk三維圖形中最基本、最常用的兩種API格 式就是 OpenGL 和 DirectX □
    1 OpenGL
    OpenGL 是與便件無關的 3D 圖形接口,在 Windows、Unix/X-Windows、MacOS、OS/2 等不同版本的窗口相關部分(系統相關)略有差異。由于OpenGL是3D圖形的底層圖形庫,沒有 提供兒何實體圖元,不能百接用以描述場景。但是,通過一些轉換程序,我們可以很方便地將 AutoCAD. 3DS等3D圖形設計軟件制作的DFX和3DS模型文件轉換成OpenGL的頂點數組。
    它可以在客戶機/服務器系統中工作,即具有網絡功能。這一點對于制作大型3D圖形、動畫 非常有用。可以通過應用OpenGL的網絡功能,使用多臺圖形工作站共同完成同一工作。
    另外,住OpenGL的基礎上還有Open Inventor、Cosmo3D、Optimizer等多種高級圖形庫, 適應不同應用。其中,Open Inventor應用最為廣泛。該軟件是基T OpenGL面向對象的工具包, 提供創建交互式3D圖形應用程序的對象和方法,提供了預定義的對象和用于交互的事件處理模 塊,創建和編輯3D場景的高級應用程序單元,有打印對象和用其它圖形格式交換數據的能力。
    2、DirectX
    2001年微軟發布了 DirectX &0。它首次引入了 "像素渲染”的概念,同時具備像素渲染引擎 (Vertex Shader)與頂點渲染引擎(Pixel Shader),反映在特效上就是動態光影效果。通過vs和ps的 渣染,可以很容易的營造出真實的水面動態波紋光影效果。DirectX 8.0的發布成了真止的第4代 3D加速R時代來臨的標志,全面趕超OpenGL=
    2002年底,微軟發布DirectX 9.0。首先,PS 2.0具備完全可編程的架構,能對紋理效果即時 演算、動態紋理貼圖,還不山用顯存,理論上對材質貼圖的分辨率的精度提高無限多。另外,新 的高耦度浮點數據規格可以使用多重紋理貼圖。其次,VS2.0通過增加Vertex程序的靈活性,顯 并的提高了性能。新的控制指令可以用通用的程序代替以前專用的單獨著色程序,效率提高許多 倍;増加循環操作指令,減少「.作時間,提高處理效率:擴展著色指令個數,從128個提升到256 個。另外,增加對浮點數據的處理功能,這樣提高渲染精度,使最終處理的色彩格式達到電影級 別。它的每條渲染流水線都升級為128位浮點顏色,讓程序設計師們更容易更輕松的創造出更漂 亮的效果。
    慕T OpenGL和DirectX兩種API格式都可以達到計算機輔助設計軟件三維輸出的耍求,鑒 丁目前DirectX發展迅速,功能完備,實現方法更為靈活方便,本軟件選用DirectX作為軟件設 計的圖形技術平臺。
    2.2.3程序語言的選擇
    機械計算機輔助設計系統的開發工具,依據制作方法可以分為兩類,一類是利用程序語言, 如VB、C++竽開發。目前人們用的比較多的就算VB語言了,利用其多媒體控件,如設計界面、 數據管理、圖形圖像處理、播放各類聲音、動畫和視頻等,可以很方便實現軟件集成的功能。另 一類是用已經有的應用軟件進彳亍二次開發,如AutoCAD, Pro/Engineer等。
    利用已經有的應用軟件進行二次開發,相對來說要求不高,容易使用,開發周期較短。但是 費用髙昂,并且由丁通用軟件操作復雜,功能華而不實,并不適合特定應用的開發,而使用第一 類方法口主則具有很高的靈活性,應用范圍廣,成本也容易控制,雖然編程相對復雜,開發周期 氏,需耍有較高的技術和技巧,但由于計算機軟件開發技術已經非常成熟,所以對非計算機專業 人員也可以口由進彳亍了。
    傳統的開發「貝一般選用VC,釆用面向對象技術制作計算機輔助設計系統,但是隨著 windows操作系統的不斷發展,在windows系統上組件化軟件開發已經越來越完善,同時各種功 能的應用纟fU'l:也不斷出現,現在,基本上所有的基礎功能都可以找到現成的軟件組件,軟件系統 的開發,已經越來越成為一種類似于組件裝配的工作,隨著java和.net技術的逐步成熟,下一代 的軟件開發必然不再依賴丁 C++這樣的底層開發語言,實際上,新一代的軟件開發工作中,各種 開發語言的差別也越來越小(比如.net上所有的開發語言可以無縫的集成在一起工作,并最終編譯 成同樣一種中間語育),所以在這次的計算機輔助設計系統設計中,本人選用可視化語言VB來完 成,由T VB問世以來,已經經過了多年的修正和更新,穩定性極佳,同時也出現了大量的適用 T- VB的軟件開發組件,利用VB的解釋執行的特點,在開發調試過稈中更有著得天獨厚的優勢, 最終極人地提高了開發速度。
    2. 2. 4數據管理
    此部分選用近期流彳亍的XML技術對機構數據進行管理,文件系統使用XML文件實現,省去 了定義和解析文件格式的麻煩,同時由于XML是開放格式的文件,也為以后的進一步開發提供 了便利。系統中使用了 XML文檔對模型數據進行分類、編碼、存儲、檢索和維護,在制定XML 數據模型的過程中,建立良好的數據結構,以建立一個完整的描述模型信息的數據模型,同時該 數據模型具有良好的層次結構。為數據統計和模型分析打下了良好的基礎。
    2. 3系統的總體構成體系
    2. 3.1設計原則
    總體方案耍對系統的專業功能和軟件功能進行界定并統籌考慮。在專業功能方面,對丁•制作 機械設計軟件來說,根據設計特點,設計原則是面向設計者,操作簡單,內容任選。
    2.3.2系統結構
    根據所確定的目標,所選抒的內容以及組織結構,確定系統結構如圖2-1所示:
     
    圖2-1系統結構
     
    2. 3. 3軟件流程
     
     
    圖2-2軟件流程圖
     
    2. 3. 4用戶界面
    為保證操作性,用戶界面采用了簡潔的設計方案,各部件采用樹形結構,一目了然,瀏覽 方便快捷,輕松門如地設計各個部件。其主界面如圖所示。
     
    圖2-3主界面圖
    第三章Di rectX技術及在計算機輔助設計系統中的應用
    3.1DirectX 技術
    對丁當今的計算機而言,不管是辦公還是家庭使用,大多數都使用Microsoft的Windows操 作系統。而在Windows操作系統環境下所運行的各種三維動畫、虛擬現實、游戲等,大多也都需 要DirectX的支持。在本論文中,其三維模擬部分完全并且大膽的釆用了 DirectX最近兒個月發 布的最新技術,解決了許多以前無法解決的問題。下面對該技術作簡單的敘述。
    3.1.1DirectX 簡介
    DirectX 是一種 Windows 系統的應用程序接口(Application Programming Interface,簡稱 API), 也可稱為函數庫,它可以讓Windows為操作平臺的多媒體程序或者游戲獲得更高的執行效率,而 且可以加強3D圖形成像和豐富的聲音效果,另外提供設計人員一個共同的硬件驅動標準,讓三 維動畫、虛擬現實、游戲等開發者不必為每一個廠商的硬件設備編寫不同的驅動程序,同時也降 低了使用者設置硬件的復雜度。應用程序通過使用DirectX接口,然后DirectX再通過驅動程序 接口與計算機綾件溝通。
     
     
    圖3-1 DirectX的作用
    DirectX使得程序員能夠利用與硬件自身處理過程十分接近的命令行和數據結構進行工作, 但卻不需耍編寫對丁•各種設備各不相同的低級代碼。通過編寫與設備無關的程序代碼,程序員創 建的軟件總能夠以最佳方式運行一即使在用戶使用了新型和改進的3D圖形加速器、聲卡、輸入 設備等增強系統功能的情況下也是如此。
    設計DirectX是為了給開發人員提供一種與MS-DOS性能類似的環境。從歷史上來說, MS-DOS比基丁 Windows的程序運行速度更快,這是因為早期的Windows多媒體API有較多的 常規處理開銷。但是,通過即時支持所有自由的硬件功能,DirectX程序的運行速度可能比多數 MS-DOS 應用程序更快。DirectX API 建立在硬件抽象層(hardware abstraction layer, HAL)Z上, 該層隱藏了硬件相關的設備特性。因為其設計考慮到了未來的擴展性,所以DirectX定義了大量 在當今多數硬件上還不能使用的硬件加速支持功能。這些功能在硬件模擬層(hardware emulation layer, HEL)進行模擬實現,如果HEL不支持這些功能,可忽略它們。如果推出的某種設備增強 了某種DirectX功能(如增強的紋理處理功能),那么就可用新設備替換舊設備。而所編寫的帶有 頂見性的軟件能夠立刻使用這種新硬件提供的加速功能。
    無論什么時候創建丁•某種設備的DirectX對象,DirectX都會查詢HAL所代表的硬件,以獲 取有關該設備的信息。然后將這些信息添第到性能位(cap bi⑸表格中。性能位中的信息將用丁•判 斷偵件是否能夠完成某種特定的操作或者是否需要使用HEL功能模擬它。
    3.1.2 DirectX SDK
    Microsoft DirectX提供了一套非常好用的應用程序接口,其中包含了設計高性能、實時應用 的稈序代碼,它稱為 DirectX SDK(DirectX Software Development Kit,俗稱 DirectX 開發包)。
    DirectX SDK技術能夠幫助我們輕易地構建計算機游戲和多媒體的應用程序,其中包括 Direct3D, DirectDraw, DirectSound, DirectPlay 和 Directlnput 等部分的 API 指令以及媒體相關的 纟 IHT (Component).
    其實DirectX包括兩部分,分別是“執行時期”(Runtime)和SDK這兩部分。在DirectX開發 的階段里,這兩部分都使用到了。
    3.1. 3 DirectX 的構架
    DirectX由集中API組成,這些API旨在用于協同工作,幫助開發3D多媒體程序和模擬程 序以及許多其他的非3D應用程序。它提供的函數庫可完成2D和3D渲染;標準和3D聲音效果 音樂:對鍵盤、游戲桿以及許多其它類型的輸入設備,包括力反饋功能硬件的支持;以及聯網模 擬、網絡游戲等功能。這些接口互相結合可提供強大的集成命令庫,利用這些命令可高效地創建 出色的游戲和模擬稈序。
    日前在 DirectX 技術中,API 主要包括 Direct3D, DirectDraw, DirectSound, DirectPlay 和 Directlnput»
     
     
    圖3-2 DirectX的構架
    其實,DirectX從8.0開始,已經將DirectDraw和Direct3D的組件就已經合并在一起了, Microsoft稱這種技術為DirectX Graphics,而且其API指令也進行了人幅度的更新,所以現在的 DirectX Graphics技術就更容易讓使用者所使用了。DirectX Graphics還支持最新的圖形硬件接口, 而最引人注目的地方就是它也可以支持著色引擎(Shader),著色器是用看色語言編寫的一段代碼, 著色語言是專為在可編程頂點或圖形組件中使用而設計的。
    DirectX從&0開始,DirectSound與DirectMusic的組件就己經合并了,Microsoft稱其為 ••DirectX Audio% WAV音效文件或其他音效資源如今可以由DirectMusic加載器來加載,而且還 能夠通過DirectMusic的演奏器來進行播放,也可以與MIDI音響進行同步演奏。
    1、 Direct3D
    Direct3D簡稱D3D,對丁•現在三維模擬或各式各樣的三維游戲來說實在是太重要了。微軟從 DirectX 3.0開始就加入了 WD這個API的技術,它讓3D模擬、游戲有一個共同的開發標準。當 3D模擬在執行•時,如果需耍使用到繪圖的部分時,DirectX就會通過D3D向顯示卡驅動程序提 出成像耍求,并且止顯示R完成繪圖動作。
    在 DirectX Software Developer's Kit (SDK)中,DirectX 小組已經提供了 Direct3D Framework 的程序代碼。這些代碼不是Direct3DAPI本身的組成部分,而是輔助代碼。它在Visual Studio.NET 集成了 DirectX 9.0的環境中,有了比較的明顯的體現。這些代碼提供了 Direct3D Framework,同 時可完成一些常規的任務,如初始化、紋理管理、向量和矩陣數學以及模式轉換。
    2、 DirectDraw
    DirectDraw是DirectX中非常重要的一部分。它擔任的工作是2D圖形的處理。在以前DOS 環境下設計模擬仿真的時候,為了考慮到模擬仿真的整體運行速度,我們只要讓模擬程序宜接對 映硬件設備的內存區段來加快運行速度。不過在Windows操作系統這種保護模式之下,所有圖形 的接口動作都必須經過GDI這個圖形處理中心來處理,而不能氏接對硬件設備下命令。但是GDI 接口對連續畫面處理的效果都非常的不好,如果一個模擬仿真一口通過GDI接口來處理的話,那 么其成像的效果畫面將會人打折扣。GDl(Graphics Device Interface.圖形設備接口)是負責在屏幕 上顯示圖形所用的接口。GDI由百余個函數所紐成。GDI函數必須通過設備描述表(簡稱DC)的 句柄來控制繪圖。
    基丁•這個理由,DirectDraw主要的工作也就是用來幫助Windows應用程序能夠直接進行硬件 設備的操作,更進一步它還可以加速顯示卡的速度,使得仿真的畫面杲現起來更加地流暢。另外, DirectDraw還支持CPU的MMX, 3DNow!及AGP等特殊的指令技術,而且可以處理多屏幕的顯 示,讓Windows環境卜運行的仿真程序(如各種游戲)更加多姿多彩»MMX: MMX處理器是由Intel 公可所研發出來的CPU指令集,它含有專門處理聲音、影像和圖片的附加指令。3DNow!: AMD 公司利用一種更先進的3D算法為主流PC上的3D應用服務,我們稱它為“3DNow!”技術。它 是X86架構上的3D技術的創新,使得X86構件的瓶頸得以突破。使計算機能夠產生更加真實、 有趣、生動的3D畫面。AGP:計算機內部的圖形卡專用插槽。它由Intel所設計出來的,它的傳 輸速度比一般PCI R快兩倍。AGP可以讓特定的顯示卡從使用專用內存來存儲或獲取游戲,3D 應用程序的圖片類型。
    3、 DirectMusic
    DirectMusic的核心包含了 “MIDI播放系統”及"互動音樂系統”這兩個部分,當Windows 加入了 DirectMusic的功能Z后,它對MIDI的支持能力便大人地提高,岡為以前Window經常被 脈沖及時序標簽等問題所困擾,而現在這些問題也都迎刃而解了,而且DirectMusic也采用了最 近止式被通過的DLS(Downloadable Sounds*.0技術。所以它也解決了 MIDI音樂播放時,效果不 一致的老問題,另外每首MIDI音樂還可以使用任何白定義的聲源,以及突破性的128種General MIDI的音源限制。
    4、 DirectSound
    DirectSound是用來處理聲音的API指令函數,除了播放聲音和處理混音之外,還加強了 3D 聲效的部分,而且提供了錄音的功能。
    5、 Directl叩ut
    Direct!叩ut是用來處理游戲的一些外圉設備裝置,例如搖桿、GamePad接口、方向盤、VR 手套、力冋饋等外鬧裝置。這對丁•模擬仿真來說可以處理與用戶的交
    6、 DirectPlay
    DirectPlay是為了滿足目前流行的網絡游戲所開發的API指令,而且它還支持許多通信協議, 讓使用者可以利用各種聯網的方式來進行網絡游戲的對戰,另外DirectPlay也提供了網絡對談的 功能,以及保密的措施。模擬仿真可以用來進行聯網分布仿真。
    3. 2基于DirectX的3D仿真技術
    3. 2.1 3D坐標體系
    1.3D坐標體系
    在兒何學中,物質的形狀在根本上是基丁-空間中一些點的坐標。我們在一個局部范圍內感知 到的周圍世界,在數學上對應丁歐兒里德兒何空間。
    平面上一個單獨的點,在歐兒里德空間中,可以明確地用笛E爾坐標指定:(X, y)o同樣地, 我們周鬧的世界(包含了二個維度),也能夠被歐幾里徳三維空間模擬,在這個空間中一個單獨的 點被二個坐標指定:(x, y, z)。
    3D圖形應用稈序通常使用兩種類型的笛卡爾坐標系統:左手坐標系和右手坐標系。在這兩 種坐標系中,X軸的止'卜軸方向均向右,Y軸止半軸方向也都向上。Z軸方向可以用左、右手定 則來確定,即握起左(或右)手的四指來代表由X正半軸方向旋到Y軸止半軸方向,則左(或右)手
     
     
     
    圖3-3 3D的坐標系
    在本系統中使用的是左手坐標系,如果需要在程序中使用右手坐標系,那么只需耍做兩個很 小的修改:
    1)改變二角形頂點的順序,使它們從前面看過來按照順時針方向排列,即如果右手坐標系下 頂點順序是VO, VI, V2,則左手坐標系下是VO, V2, VIo
    2)使用觀察矩陣(View Matrix),將Z軸止方向乘以-1(將代表觀察矩陣的D3DMATR1X結構的 _31, _32, _33和一34成員反號即可)。
    2.矩陣與3D變換
    3D場景中的各種變換都是使用矩陣運算來執行的。這一部分將解釋如何建立三維變換,描 述一些變換的基本用法,以及如何通過矩陣級聯來完成復雜的變換。分為以下幾個部分來討論: 二維變換、平移、縮放、矩陣級聯。
    2. I二維變換
    在二維圖形程序中,可以使用兒何變換來達到以下目的:
    1)表示一個對象相對丁•另一個對象的位置;
    2)旋轉和設定對彖的人小:
    3)改變視野范圉、方向和透視方法。
    可以使用一個4X4的矩陣將任意點變換到另一個點。下面的式子中,使用一個矩陣對點(x, y, z)進彳了變換,產生一個新點z'):
    Mu M]2 M]3 M]4
    M21 M22 M23 “24
    M31 M32 M33 M34
    —M" MA2 M43
    以上的矩陣實際上是對點(x, y, z)進行了以下運算,得到一個新點z'):
    = (xxMll) + (^xA/2l) + (zxA/31) + (lxM41)
    y' = (x x 2) + (y x 陸2) + (z x M32) + (1 x M42)
    z' = (xxM|3)+ (yxM23)+ (zxM33)+ (lxM43)
    最常用的變換是平移、旋轉和縮放。可以把產生這些效果的矩陣組合到一個知陣中來—次計 算兒種變換。比如可以創建一個單一的矩陣來平移和旋轉一系列點。
    2.2平移
    卜•面的變換把點(x, y, z)平移到另一個(x' ,y', z'):
    [x' y' z,l]=[xy
     
     
    2.3旋轉
    這里所描述的變換是針對左手坐標系的。下面的變換是繞x軸旋轉點(x, y, z),得到一個新 的點(x'j'. z'):
    10 0 0
     
     
     
     
     
     
     
    2.4縮放
    卜•面的變換是通過在x, y和z方向上設置任意值把點(x, y, z)縮放到一個新位置(x',/, z') 上:
    lx' y' i] = [xy z 1]= 0
    0
    2.5矩陣級聯
    使用矩陣的一個主要優點就是可以把兩種以上矩陣變換的效果通過相乘把它們組合起來。這 就意味著,旋轉一個模醴然后把它平移一段距離可以不必用兩個矩陣,而只要把旋轉和平移矩陣 相乘即可產生一個復合矩陣,這個矩陣包含了它們作用的總和。這一過程就稱為矩陣級聯,用下 面的公式表示:
    ……m2m,
    其中C是所創建的一個復合矩陣,表示單獨的變換矩陣。在進行矩陣級聯的時候,應該注意 級聯的順序。上面的公式反映的是一種從右到左的矩陣級聯規則。也就是說,用來創建一個復合 矩陣的每個矩陣的實際效杲是從右到左依次出現的。兩個矩陣相乘的順序是至關重要的,與標量 相乘不同,矩陣相乘的順序是不能交換的。如果將兩個矩陣的順序交換的話,就會使兩種運動的 次序顛倒。不論創建什么類型的矩陣,都要按照從右到左的順序,這樣才能達到預期效果,完成 需耍的變換。
     
    3.2.2 3D應用程序中的對象
    1 .二維圖元(Primitive)
    二維圖元就是形成單個三維實體的頂點的集合。最簡單的圖元就是在一個三維坐標系中點的 列表(Point List),二維圖元逋常是多邊形,該多邊形是一個封閉的、至少由三個頂點描繪的三 維圖形。最簡單的多邊形就是二角形。可以通過組合多個三角形來形成人而復雜的多邊形和網格。
    圖3.4左邊顯示了一個立方體,它的每個面都由兩個三角形構成。這些三角形一起組成了一 個立方體圖元。可以把紋理和材質貼到這個圖元表面,使它看起來像一個實心物體。也可以使用 二角形創建表面"現平滑曲面的圖元。圖2.2右邊展示了如何用三角形模擬一個球體。在使用材 質渲染它以厲,這個球體的表面看起來會更平滑、更逼真。
     
    圖3-4三角形組合成復雜網格
    2.頂點(Vertex)
    在DirectX中所冇可渲染的圖元都是由頂點組成的。從幾何學上來說,頂點是空間中的一點, 定義了一個多邊形的一角。Direct3D中的頂點包含了其位置坐標信息,還可包含其法向量、紋理 坐標和顏色等信息。
    頂點按格式可以劃分為兒個不同的種類,即未變換無光照頂點、未變換有光照頂點、己變換 有光照頂點和可變格式的頂點。這里"變換"的含義是通過世界變換(World Transformation)將頂 點的坐標從局部坐標空間變換到世界坐標空間;“光照”的含義是在頂點著色的同時逬行了燈光 計算。
    以卜是DirectX 9.0定義的木變換無光照頂點、未變換有光照頂點、己變換有光照頂點格式:
    1)木變換、無光照頂點
    typedef struct_ UN LIT VERTEX
    {
    float x. y, z; 〃位置
    float n.\. ny, nz; //法向量
    DWORD Diffuse; 〃散射顏色
    float tul> tvl; 〃紋理坐標
     
    float tut, tv2;
    }UNL1TVERTEX, *LPUNLITVERTEX;
    2)木變換、有光照頂點
    typedef struct_ L1TVERTEX
    float x, y, z: 〃位置
    DWORD Diffuse;
    DWORD Specular; 〃散射顏色
    〃反射顏色
    float tul, tvl; 〃紋理坐標
    float tut» tv2;
    float tu3, tv3;
     
    JL1TVERTEX, *LPLITVERTEX;
    3)己變換、有光照頂點
    typedef struct JRANSLITVERTEX
    float x, y;
    float z;
    float rhw;
    DWORD Diffuse;
    DWORD Specular: float tul» tvl;
    }TRANSLITVERTEX,
    3.光照和材質(Lighting and Material)
    光照用丁•照明場景中的對象。
    通俗地講,材質是指構成現實中物體的材料,它使人眼能夠分辨出一個物體是金屬、陶瓷、 述是塑料的。在現實生活中,當我們看一個鉛球,憑眼睛的觀察,手的觸摸,還有保存在我們頭 腦里的一些生活的常識,很容易判別該球是金屬做的,同樣看到一只足球,我們也很容易知道它 是橡膠做的。
    這樣就會產生一個問題,對顯示屏中虛擬的物體,光憑眼睛怎樣•辨別它是什么材料制成的呢? 或者說,在電腦上怎樣表示一個物體材質屬性呢?在Direct3D中,是用物體對光的反射屬性來表 達一個物體的材質的,很顯然,金屬的物體和塑料一的物體對光的反射會有不同的反射效果。這 樣做雖然有時會產生失真,但對于屏幕渲染來說也是足夠的了。
    4.紋理(Texture)
    紋理可以理解為物體的外表圖案。早期計算機生成的三維圖像,外觀像一個發亮的金屬制品, 不能表現二維對彖頁實、生動而復雜的斑紋,如磨損、裂紋和污跡等。近兒年,紋理作為一種增 強計算機生成的二維圖像真實性的工具在三維圖形圖像開發中流行。在3D場景中,它極大地增 加了物體的真實性。例如,我們可以在顯示屏上畫上一系列組合的矩形來表示一堵墻,但這樣的 墻看起來光禿禿的,顏色也不真實。我們可以再在上面加上一些劃痕、磨損、苔跡,還有標語, 使它看起來更像一堵真實的墻,這就是紋理。
    簡單地說,紋理就是一張像素顏色位圖。就這種意義上來說,“紋理”這個詞用在計算機圖 形環境中有一種特定的定義。從與紋理的止規語義上來說,既涉及了對象表面顏色的采樣,也涉 及其表面粗糙和平滑度。
    應用程序可以創建并操縱對象使其呈現木頭的紋理:草、泥土和仃頭的圖像可以應用丁•三維 圖元而構造一座小山,形成一個非常真實的山坡。紋理也可用丁-創建特效,如路邊的標志、懸崖 的巖層或人理仃地板表面。
    3. 2. 3 3D仿真中的場景建模與驅動
    1.場景建模
    場景建模是將所耍仿真的場景與對象通過數學方法表達成存儲在計算機內的三維圖形對象 的集合。虛擬二維空間建模的好壞是產生真實感的先決條件。場景太簡單,會使用戶覺得虛假, 而復雜逼真的場眾乂勢必會增加交互的難度,并影響實時性。
    當前世界范圍內圍繞虛擬場景建模問題的解決方式主要有兩種:一種是基于計算機圖形學的 二維兒何模熨建模和渲染(Geometry-based Modeling and Rendering-GBMR),又稱為基于圖形的建 模和渲染(Graphics-based Modeling and Rendering),但這種虛擬場景建模方法對硬件的計算能力和 圖形加速性能都有很高的要求,一般是用丁基于高性能圖形工作站的系統;另一種建模方式是近 兒年發展起來的基丁圖像的建模和渲染(Image-based Modeling and Rendering-IBMR)技術,它是用 待建二維虛擬空間的方限幅圖像樣本,在一定的圖像處理算法和視覺計算算法的基礎上,來冑接 構造二維場景。
    1. 1基丁•三維兒何模型的視景建模
    基丁模型的方法即運用兒何學原理和計算機圖形學技術來建立真實感幾何實體,并實時渲染 虛擬壞境,這種建模法生成的場景能實時操縱,真實感強,但建模復雜,實時性差,且對計算機 性能耍求高。
    兒何建模技術虛擬視景中的可見實體,從模型種類可以簡單分為地形模型、地物模型、復雜 實體模型:從數據結構上分為規則網格模型、三角面模型;從建模技術上可分為兒何形態建模和 紋理映射建模等。
    在實時二維視景仿真系統的實現中,一般可采用場景建模工具,逋過人機交互的方式完成場 景模型的建立。也可口行開發場景模型織織工具,將使用其它建模工具建立的個體模型組織成所 需要的場景模型[11]。目前,對丁•復雜三維實體模型的構造基本上基于3DS.3DS MAX, AUTOCAD 等商業軟件,利用其靈活的建模工具創建三維模型,并通過.3ds, .dxf, .x, .dwg等文件實現數據 的交換。這些文件中己將模型剖分為空間三角網,我們只需將這組數據以一定的比例、角度再通 過旋轉、平移、縮放在空間坐標系中定位。
    基丁計算機圖形學的兒何模型建模的優點是便于用戶與虛擬場景中虛擬對象的交互,以及能 對虛擬對象的深度信息進行玄接獲取,但由丁-兒何模型三維場景的克實感是建立在對兒何物體表 面材質的光照模型基礎上的,其陰影和紋理要在基于某種光照模型的計算下,通過硬件渲染 (Hardware Rendering),并配以圖形加速(Graphics Accelerating)性能才能顯示出來,若進一步要求 兒何模型實體在運動學、動力學等方面也滿足客觀物理規律,則兒何模型實體還必須被賦以相應 的物理特征屬性(這一點在科淫計算可視化及仿真中是至關重要的)。這在場景模型比較復雜的情 況卜,將會因計算臺校人而使用戶與虛擬場景無法實時交互,用戶對場景中虛擬對象的操作也無 法得到實時的反饋,明顯的時延會使用戶在生理和心理上感到難受,即使目前最快的基丁•對稱多 處理(MIPS)和高速圖形引擎的高性能圖形工作站也無法對超過1000萬個以上三角面的兒何場景 進行紋理和陰影的實時繪制和加速顯示,這將使場景的復雜度受到限制,從而也使在對復雜場景 進彳亍虛擬和仿真方面的應用(如虛擬戰場和虛擬巡航制導等)難以實現。
    1.2基于實景圖像的視景建模
    基丁實景圖像的虛擬視最是利用照相機采集的離散圖像或攝像機釆集的連續視頻作為基礎 數據,經過圖像處理生成全景圖像并對其進行空間關聯建立起的具有空間操縱能力的虛擬環境。 基丁實景圖像構造的虛擬信息、空間避開了復雜的場景建模與繪制,宜接利用照相機或攝像機拍 攝得創的實景圖像來構造虛擬信息空間,這種基于實景的方法具有快速、簡單、逼真的優點,正 在越來越多地應用丁•旅游景點、虛擬場館介紹以及遠地空間再現等方面。
    基丁•圖像的三維場景建模是在對場景已有圖像集合處理的基礎上生成的,其處理方法常用的 有圖像透視變換、圖像拼合、圖像變形、圖像合成與裁剪等,它與兒何模型場景的真實感圖形生 成算法相比,其計算量較小,也不受場景復雜度的限制,且對硬件的耍求也不及幾何建模那樣高, 還可以在PC機上實現,但由丁•場景中的虛擬物體是圖像中的二維對象,因而用戶很難,其至不 能與這些二維對象進彳亍交互。
    基丁•圖像的視景建模與基丁兒何模型的視景建模的根本區別在于:它不依賴于幾何模型,而 是利用爭先獲取的一織圖像,來對環境進行編碼,并通過適當地組合這些圖像來生成位于不同視 點的新視圖,最終實現壞境的完全漫游。這種方法的最大優點在于生成的環境是這組圖像所反映 的客觀真實場景,因此特別適合丁•基于真實白然場景的仿真研究,如作戰方案的決策模擬與戰術 仿真。匕機(如巡航導彈)制導的人工干預、機場調度優化等應用場合的三維虛擬環境的建立。通 常構造虛擬環境的圖像集合往往來自于對真實環境的多視點柱面攝影圖或多路軌跡視頻攝像的 采樣,或由CAD模熨場景生成的具有強烈真實感的人工圖像序列。
    為使場景既見有真實感,乂具有實時性,并融入增強現實的思想,可以通過將圖像法與建模 法相結合,把握虛實尺度來建立虛擬環境。對于不需要操作的實體,如場景背景或遠距離物體, 可采用圖像來建立虛擬環境;對需要操作的實體則采用幾何建模。建模的一般步驟如下:
    1) 獲取圖像。用眸通相機或數碼相機拍攝獲取一系列互相重疊的照片。這里需要注意相鄰照 片耍有一定的巫疊,而且,相機旋轉中心應為光心,這樣才便于實現圖像的插補和整合。
    2) 圖像的插補與整合。插補就是用已知視點的相片,通過插值的方法來求解新視點下的相片; 整合就是將某一視點卜的圖像拼接成全景圖,圖像拼接涉及到顏色融合的問題。由于拍攝方法、 拍攝時間以及曝光程度的不同,同一物體在相鄰照片上的顏色可能會有很大差異,如果簡單的把 兩幅圖像進行單純的兒何拼接,則拼接處會有明顯的縫合痕跡,因此,在確定了兩幅圖像的對應 關系后,還需要對兩幅圖像進行顏色融合,以便使過渡平滑自然,真止實現無縫拼接。
    3) 實體建模。對需要操作的實體進行實體建模,即通過構造實體,設置材質和光照,以形成 真實感圖形。
    4)虛實融合。通過設置攝像機,使實體場景與圖像場景視角一致,達到虛實融合的效果。
    2.場景驅動
    場景驅動是視景仿真程序根據所建立的場景模型以及場景中各類仿真對象運行時的狀態參 數來生成實時視景,視景仿真的結果以圖像的方式輸出;用戶可以宜觀地觀察到仿真對象狀態。 在視景仿真過程中,仿真對彖的狀態參數可能是由用戶的輸入來控制,也可能取決于仿真對象自 身的運動變化規律,或由系統中其它仿真系統的輸出來決定。
    視景仿真系統中,場景模型的組織結構對提高系統的運行效率、實現各類功能起著巫耍的作 用。在視景仿真過程中,視景仿真程序將預先建立好的各種文件格式的場景模型文件調入內存, 并以內部的數據結構對二維場景模型加以組織。對場景中各類仿真對象的控制和管理、場景的調 度、視景仿真算法等都是在這種特定的數據結構上實現的[13]o
    模型的驅動通過3D應用程序編程實現。目前主要使用的3D應用程序API主要有兩類: Direct3D和OpenGL°OpenGL是以SGI的圖形庫——Iris圖形系統為發端的。它是最早的3D API, 在Mac, PC和Unix開發商中有著最廣泛的基礎,它集中于快速畫111 2D和3D對象且比Direct3D API更低級。而Direct3D為程序員提供了一種顯示3D圖形的硬件無關API,并提供了能使應用 程序隨時使用系統現有圖形加速硬件的一種機制。使用DirectX開發三維視景模擬應用程序主要 有兩個好處:1)為軟件開發者提供硬件無關的開發接口,可使用DirectX開發的三維應用程序適 用丁•不同的硬件平臺:2)利用軟件模擬硬件的功能,為硬件開發提供策略。雖然Direc3D缺乏基 本的3D對彖,如柱體、球體和錐體,但它提供的函數優于OpenGL,包括動畫功能,這對游戲 開發商持別有用。
    在計算機輔助設計系統中,三維仿真子系統的模型驅動是通過Direct3D實現的,以卜•主要說 明使用Direct3DAPl顯示并驅動模型的方法。
    2.1 網格(Mesh)
    建模的過稈.實際上是對坐標系中的物體進行點采樣(Point Sample).這些釆樣點按一定順序連 接成為一系列的小平面(二角形或共面的四邊形,五邊形等),這些小平面稱為圖元(Primitive),驅 動引擎會處理每一個圖元(稱為一個獨立的渲染單位)。這樣取樣厲的物體看起來像是由許許多多 的三角形、四邊形或五邊形組成的,就像網一樣,稱為網格(Mesh)o網格中主要存儲的是對物體 的點采樣信息,所以一般會有物體采樣的頂點個數、頂點數據列表、面個數、面的數據列表的信 息。然后,為了增加采樣物體的真實性,還會加入物體的紋理、材質、燈光等信息。一記錄這些 頂點數據和連線悄況到一個文件中,引擎讀取這些數據,依次渲染每一個圖元,就能在顯示屏幕 上再現物體。當然,取樣的點越多,再現的物體也會越逼真,要處理的數據量也越大。
    2.2使用.x文件接口處理網格對象
    在Direct3D中,網格是以.x文件的模板來描述的。在DirectX 9.0中,提供了幾個接口用于 對.x文件進彳亍讀取:
    IDirectXFile 〃用于打開.x文件源
    IDirectXFileEnumObject 〃列舉x文件里的各個模板
    IDirectXFileData 〃得到模板中包含的數據
    IDirectXFileObject 〃代表內含數據的子模板
    IDirectXFileDataReference 〃代表引用的子模板
    由丁• x文件實際上是以樹的形式存儲模型信息,所以讀取.x文件的過程主要為樹的遍歷:
    1) 由頂級模板的指針獲得卜一個模板數據;
    2) 獲取枚舉出來的模板數據;
    3) 釋放模板數據指針;
    其中,獲取模板數據步驟如下:
    ①處理模板里包含的數據:
    ②讀子模板,當處理到底層沒有子模板時跳出循環:
    while(成功獲取卜•一子模板)
    {
    處理引用的子模板
    處理非引用的子模板
    }
    3. 3動畫實現原理
    動畫部分用VB實現。VB簡單易用,并且DirectX7.0及以后的版本對VB提供了完全的支 持,適用丁•快速開發高效的D3D動畫。
    軟件由兩人部分組成,分別是插秧機組裝設計和動畫演示部分。
    3. 3. 1組裝設計
    組裝部分主耍功能是加載模型文件,顯示模型實體,通過移動和旋轉各個部件最終組裝插秧 機的靜態模型,同時計算各個部件的運動軌跡并設置。
     
     
     
    圖3-5組裝部分工作流程
    3. 3. 2動畫演示
    動畫是3D應用程序的核心特性。在Direct3D保留模式中,提供了兩種方式來幫助用戶實現 高質量的動畫。
    3. 3. 2. 1宜接截取動畫
    這是最簡單的動畫方法,創建一個在每次動畫動作發生時調用的冋調函數,并在截取例程中 提供所需的處理。這種技術稱作直接截取方法,功能強大,但是也很費力。它的功能強人是因為 可以使用截取例程產生保留模式中可用的任何場景改變。對移動的類型或數量沒有限制,對可應 用丁單個場景的變化的數目也沒有限制。例如,可以使用回調函數變換對象,對網格進行變形, 改變顏色、密度或燈光的位置,或者更改對象的顏色濃淡,改變材質和紋理,操縱霧的密度,或 考對場景的對象執行淇他任何有效的動作。對可實現內容的唯一限制是帶寬和渲染性能。這種方 法的主耍限制是,它需耍計算和執行動畫的所有每個步驟。在貢接截取動畫中,沒有來口系統的 計算擬合或產生中間調用Z類的幫助。
    實現玄接截取動畫由兩個步驟組成:
    1.創建肓•接截取例程,有時被稱為移動冋調函數。
    2.在截取例程中計算和實現逐步的改變。
    1創建移動冋調函數
    IDirect3DRMFrame3的AddMoveCallBack()函數提供了一種創建冋調函數的方法,每次應用 幀運動屈性時調用這個冋調函數。AddMoveCallBack ()函數為肓接截取動畫創建一個移動冋調 函數禽要調用AddMoveCallBack ()函數,并把截取例程的名字作為一個參數傳入。
    2實現逐步變化
    實際的動畫在截取例程中實施。決定要執行什么動作并為這些動作提供某種形式的遍歷控 制,這是程序員的責任。
    假設耍實現這樣一個動畫:沿z軸平移,同時對象的顏色色調發生變化。這意味著對彖離觀 看者越來越遠,同時顏色逐漸褪色成黑色。
    在這種情況卜,實現宜接截取動畫的第一個設計決策是決定圖像更新序列中的不連續步驟的 數目,步驟越多,變化得越慢。讓我們假定對象要從Z軸的0坐標平移到z軸的40坐標。還要 假定動畫由40個不連續步驟纟R成。這意味著必須在每次動畫脈沖時將對象沿z軸平移一個單位。 同時,需耍把對彖的顏色從它的最大密度褪色成黑色。因為保留模式RGB顏色屬性被定義在1.0 到0.0范圍內,可以在每個循環期間通過將顏色密度減去1/40(0.025)來產生想要的顏色褪色。 就是從1.0顏色屈性開始,每次動畫脈沖時減去0.025-在第40次循環,顏色將褪色成黑色,并 且對彖將沿z軸移動40個單位。截取例程編碼如下:
    Implements Direct3DRMFrameMoveCalIback3
    Private Sub Direct3DRMFrameMoveCallback3_CallbackRMFrameMove(ByVal f As DxVBLib.Direct3DRMFrame3, ByVai arg As Object, By Vai delta As Single)
    Dim colorTint as single
    Dim z as single
    f.SetColorRGB 0, colorTint, 0
    f.SetPosition nothing, 0, 0> z
    End Sub
    33.2.2關鍵幀動畫
    這種方法基丁•定義兩個鍵位置,這兩個位置標記一個動作序列的開始和結束,然后創建擬合 圖像。計算機可以通過對關鍵幀執行幾何變換來生成擬合,這個過程在圖3-6中演示。
     
     
    圖3-6關鍵幀動畫
    圖3-6中所示的動畫把四角星從它在視區左上角的初始位置移動到右下角的最后位里,同時 它旋轉了人約30度。為了實現這個動畫,我們定義了 3個關鍵幀,在圖中標著數字1、2和3。 星星從關鍵幀號1到關鍵幀號2的移動是通過執行平移、縮放和旋轉變換實現的。從關鍵幀號2 移動到關鍵幀號3也是這樣實現的。一旦定義了關鍵幀,系統就可以計算并生成關鍵幀Z間中間 圖像。
    產生任何想要的變化。保留模式包含了對兒種關鍵幀動畫的擴展支持。
    3.323計算機生成的擬合
    在基丁•計算機的動畫中,是由計算機來生成擬合的。基于變換的動畫的基本算法就是為兩個 關鍵幀Z間發生的動作建立一個運動范圍。計算需要定義用于每秒動畫的圖像數。電視技術使用 的是每秒25幅圖像的速率,接著,要定義關鍵幀之間的時間流逝。當圖像速率和時間流逝已知 時,系統就能夠計算需耍的擬合圖像的數目。通常計算是基于線性內插的。
    假設決定要在2/3秒內發生如圖3-6所示的動畫,并且幀速率是每秒30幅圖像。在這個例子 中,關鍵幀號1和關鍵幀號2 Z間的運動區域需要1/3秒,或301ps的10幀。給出了這一信息, 系統就可以繼續確定出關鍵幀號1和關鍵幀號2之間所需的全部平移、旋轉和縮放。每個變換的 總數按位數進彳亍了劃分,在這個例子中幀數為10,并且結果變換應用丁•每一組圖像坐標。
    3.3.2.4保留模式中的關鍵幀動畫
    保留模式支持基本關鍵幀動畫,關鍵幀動畫功能可以在IDirect3DRM3 , lDirect3DRMAnimation2 接口中找到。
    在保留模式動畫的關鍵幀方法中,應用程序代碼首先創建動畫對象。然后可以給動畫對象代 碼添加位置、旋轉和縮放鍵。每個鍵包含一個獨立時間值,通過調用IDirect3DRMAnimation2的 SetTime()函數驅動動畫。
    更高級別的動畫可編程是利用動畫集合。在這種情況下,通過紐合兒個動畫對象創建復朵的 動畫。動畫集合可以通過添加每個動畫來建立,也可以通過從文件、資源、內存塊或流中加載動 畫集合來建立。后一種選項使利用建模程序創建動畫集合成為可能,動畫集合可以從X格式的文 件加載劍應出程序中。建模和動畫程序通過提供可視工具和技術控制來簡化創建復雜動畫的過 程。許多應用程序開發人員使用這種方法創建動畫,而不是在代碼中構造關鍵幀。
    創建保留模式動畫的第一步是調用IDirect3DRM3的CreateAnimation()函數,這個調用創建 了一個空的IDirect3DRMAnimation2對象,這個對象可以用于訪問IDirect3DRMAnimation2的方 法。
    當成功創建動畫對象后,代碼可以通過使用IDirect3DRMAnimation2和其他保留模式接口的 方法來實現動畫。應用程序可以使用一個調用渲染例程的定時器驅動的脈沖作為消息循環 RenderSceneO函數的基本實現的模板。創建動畫的過程由以下兒個步驟組成:
    1.選擇某些合適的動畫選項。
    2.為步驟1中創建的動畫對象定義動畫參數,其中包括要動畫顯示的幀、關鍵幀和動畫的 時間元素。
    3.把一個幀移動冋調函數附加到包含動畫對象的子幀。
    4.實際動畫利用驅動渲染循環的時間脈沖來實施。為動畫實現一個時間脈沖的最容易的方 法是使用程序線程本身,這就是當在程序的消息循環內部調用渲染函數時要做的事情。或者,還 可以使用其他定時機制來驅動動畫。典型地,渲染循環調用Move()或Tick。函數,而這些函數再 調用動畫冋調函數,圖像更新在動畫回調中執行。
    5.通過幀的連續縮放、旋轉和平移這樣的變換就可以形成基本級別的動畫。SetRotation()和 SetVelocityO在幀級別上實現了這個功能,而IDirect3DRM的Move()和Tick。函數提供了驅動動 畫的一個定時機制。
    6.利用SetVelocityO和SetRotation()進行簡單的幀級別的操作,提供了產生有趣的效果的一 種簡易途徑,在某些情況下,應用程序用這些方法就足夠了。但是,在需要功能更強大的動畫的 程序中,MJ SetRotation()和SetVelocityO實現的控制就太有限了。在這樣的情況下,保留模式提供 了其他功能更強、更貝有靈活性的機制。
    7.完全手動控制的動畫
    除了保留模式函數提供的動畫工具外,還有一種簡單的、常被忽略的動畫方法。這種技術基 丁創建一個截取例程,該例程在每次脈沖時接收到控制,然后在這個截取例程內執行逐步的圖像 改變。這種方法逋常需耍實現一個移動回調函數,由渲染循環調用它,代碼可以使用這個截取在 視像中產生任何想耍的變化。
    Private Sub Timer l_Timer()
    Static counter As Long
    -counter = counter + 1
    UpdateObject counter
    m_largewindow.Render
    End Sub
    Sub UpdateObject(ByVal counter As Long)
    Dim i As Long
    For i = 1 To m colObjects.Count Step 2
    Dim o As Direct3DRMFrame3
    Dim obj3d As Object3D
    Set obj3d = m_colObjects(i)
    lfobj3d.MPX o ”” Or obj3d.MPY o ,,H Or obj3d.MPZ <> ,H, Then
    Set o = m_colObjects(i + 1)
    Dim pos As D3DVECTOR
    o.GetPosition o.GetParent. pos
    Ifobj3d.MPXo,,H Then
    pos.x = CSEC.Calculate(nt=" & counter & vbNewLine & obj3d.MPX) End If
    Ifobj3d?MPYo”” Then
    pos.Y = CSEC.Calculate("t=" & counter & vbNewLine & obj3d?MPY) End If lfobj3d.MPZo'H, Then
    pos.z = CSEC.Calculate("t=" & counter & vbNewLine & ob^d.MPZ) End If
    o.SetPosition o.GetParent. pos.x, pos.Y, pos.z
    End If
    lfobj3d.MAX o ,H, Or obj3d.MAY o Or obj3d.MAZ o ”” Then
    Dim angle As D3DVECT0R
    Set o = m_colObjects(i + 1)
    angle.x = 0
    angle.Y = 0
    angle.z = 0
    lfobj3d.MAXo,,H Then
    angle.x = CSEC.Calculate(nt=" & counter & vbNewLine & obj3d.MAX) End If
    lfobj3d.MAYo,,n Then
    angle.Y = CSEC.Calculate("t=" & counter & vbNewLine & obj3d.MAY) End If
    Ifobj3d.MAZoHM Then
    angle.z = CSEC.Calculate("t=" & counter & vbNewLine & obj3d?MAZ)
    End If
    SetObjectAngle o, angle
    End If
    Next
    End Sub
    第四章XML技術及在計算機輔助設計系統的應用
    4.1XML概述
    4.1.1XML的產生
    1SGML的產生
    國際標準化纟fl織(ISO)為提高數據的可移植性,于1986年12月制定了文檔記述的標準一 SGML(Standard Generalized Markup Language標準通用標記語言)。該ISO標準闡述了與特定的字 處理軟件或文本處理系統無關的、文檔的內容部分和顯示、印刷時必耍的格式/排版信息部分分開 記述的方法。由T- SGML文檔的結構被明確記述,程序可解析它,所以,依SGML規則記述的 文檔,可在不同的系統Z間以不同的方法進行交換和處理,其結果也人人地方便了數據的管理和 利用[17]。
    SGML在計算機輔助出版、電子出版、數據庫出版、電子數據交換、數據轉換的中介語言等 領域被廣泛地應用。其優點是:
    不依賴丁•平臺,可容易地進行文檔交換;
    文檔格式與內容互相獨立的通用化置標;
    數據擴張性帶來了應用程序的可獨立性;
    苦者和編輯者明確易懂的格式。
    近年,隨著Internet的急速發展和普及,眾多的用戶通過Internet進行信息交換,Internet ± 的信息交換的革命也提到日程上。在當今網絡的大潮中,像電子商務、數字圖書館、遠程教育等 W用領域,文檔的共享成為最巫要的問題Z-o然而,SGML的設計早T Web的出現,故在網絡 環境卜,SGML不能直接應用。作為從SGML衍生的在網絡上應用的標記語言HTML登上了舞 臺。
    2HTML的缺陷
    盡管網終和它最初用以表込信息的方法HTML在很大程度上獲得圓滿的成功,但是HTML 并不完美,它只是一種表達的技術。它并不一定揭示HTML tag中所包含的意義。HTML中有一 個人問題就是它的tag的集合是同定的。用戶不能新增有意義的能供他人使用的tag。歸納起來, HTML有卜列的缺點:
    可用標簽種類有限,不能精確地描述信息;
    數據格式不能表現其內在意義;
    不能表現深層的信息結構,岡此不適于大量文檔的存儲:
    除去電子閱覽,將HTML用于其他領域應用時,機能欠佳;
    HTML的信息表現形式不適丁-再利用;
    不具有印刷頁的概念;
    不能制定粘細的編排;
    全文檢索的結果不精確;
    HTML和Web瀏覽器的機能強化的結果,造成了 Web瀏覽器間直換機能部分的消失。
    3XML的出現
    1996年萬維網協會(或者叫W3C)開始設計一種可擴展的標記語言,使其能夠將 SGML(Standard Generalized Markup Language標準通用標記語言)的靈活性和強大功能打己經被廣 泛采出的HTML結合起來。這種后來變成XML(extensible Markup Language可擴展標記語言)的 語言繼承了 SGML的規范,而且實際上就是后者的一個子集。XML是一種界定文本數據簡便而 標準的方法,曾被人稱作“ WEB±的ASCII碼”,就好像你可以使用口己喜歡的編程語言來創建 一種數據結構,然后同其他人在其它計算平臺上使用的其它語言來共享一樣,XML的標記用來 說明你所描述的概念。
    1998年2月,XMLI.0成為WK的推薦標準,接著便出現了許多支持XML的產品,包括微 軟的.NET和SUN的J2EE在內的多種主流開發技術和許多數據庫產An(SQLServer2000, Oracle 9i) 都內置了對XML的支持。XML能增加結構和語義信息,可使計算機和服務器即時處理多種形式 的信息,運用XML的擴展功能不僅能從服務器下載大量的信息還能大大減網絡流量。可以預 言,XML將在本世紀的互聯網上發揮舉足輕重的作用。
    4.1.2XML的特點
    XML語言可以讓信息提供者根據需要,自行定義標記及屬性名,也可以包含描述性,從而 使XML文件的結構可以復雜劍任意程度。XML具有以下的特點:
    (1)簡單性。XML經過精心設計,整個規范簡單明了。它由若干規則組成,這些規則可用于 創建標記語言,并能用一種常常稱作分析程序的簡明程序處理所有新創建的標記語言。
    (2)可擴展性。XML在兩個意義上是可擴展的。首先,它允許開發者創建自己的DTD (Document Type Definition,文檔類型聲明)或XML Schema,有效地創建可被用于多種應用的可擴 展標記集。其次,使用兒個附加的標準,開發考可以對XML進行擴展。這些附加標準可以向核 心的XML功能集增加樣式、鏈接和參照能力。企業可以用XML為屯子商務和供應鏈集成等應 用定義口己的標記語育,作為該領域信息共享與數據交換的基礎。
    (3)直操作性。XML可以在多種平臺上使用,而且可以用多種工具進行解釋。因為文檔的結 構是相容的,所以解釋它們的語法分析器就可以以較低的費用建立。XML支持用于字符編碼的 許多主耍標準,允許它在全世界許多不同的計算環境中使用。
    (4)靈活性。XML提供了一種結構化的數據表示方式,使得用戶界面與結構化數據分離。在 XML中可以使用樣式表,另外,XML文檔Z間的超鏈接功能由獨立的XLink來支持。
    (5)口描述性。XML文檔通常包含一個文檔類型聲明或XML模式,因而XML文檔是口描述 的。XML文檔中的數據可以被任何能夠對XML數據進行解析的應用所提取、分析和處理,并以 所需格式顯示。XML表示數據的方式真止做到了獨立于應用系統,并且這些數據可以被重用。
    (6)國際標準化。XML的國際化源于其統一代碼的新編碼標準,這種編碼標準支持世界上所 有主耍語言。在HTML中,就人多數字處理而言一個文檔一般是用一種特殊語言寫成的。不管是 英語、日語還是阿拉伯語,如果用戶的軟件不能閱讀特殊語言的字符,那么他就不能使用該文檔。 但是能閱讀XML語言的軟件就能順利處理這些不同語言字符的任意組合。因此,XML不僅能在 不同的計算機系統Z間交換信息,而且能跨國界和超越不同文化疆界交換信息。
    4.1.3XML的目標
    XML以其簡單的、靈活的文本格式,將在Web上各種各樣的數據交換中扮演越來越巫耍的 角色。XML的目標是:
    使耳嫌體無關的國際化電子出版成為可能;
    使「.業界(特別是電子商務領域)能定義平臺無關的數據交換協議;
    將信息以一種使接受者能口動處理的格式發布給用戶代理:
    使人們易于開發軟件來處理特定的信息;
    使用戶能很容易地使用廉價的軟件來處理數據;
    使出戶能以口己所需的方式來顯示信息;
    能提供元數據幫助用戶發現信息且有助丁 •信息的生產者和消費者彼此發現。
    4. 2 XML的基礎標準
    XML并不僅僅只是一種語言,廣義的XML是一系列標準的集合,XML作為核心,其他XML 相關標準都是用它制定的或為其服務的。圖4.1表明了 XML及其相關標準,在圖中,中間一層 是XML基礎標準,最卜層是XML的應用標準。XML標準已成為網絡世界的ASCII標準。
     
     
    XHTML BizTtilk HDML
    VoiccXXJ COPP Micro-Pay W/WEB | | PIP -
    MathML SMIL WAP
    圖4-1 XML相關標準
    4.2.1 DOM 和 SAX
    DOM及SAX推薦標準由W3C維護,它們是兩個用于XML文檔,且受到廣泛支持的API。 換句話說,DOM和SAX是處理XML文檔的兩種方式。
    SAX (Simple API for XML)是一種基于流的、以事件處理方式I:作的接口。它并非一個標準 組織的產品。它是早期XML開發過程中,許多開發者為了尋求一種有效的API,而創造出來的 產品。SAX并不把應用程序的注意力集中在整個文檔的樹狀圖上,而是在解析時提供事件驅動事 件的內容。
    DOM (Document Object Model)則是一種獨立于平臺和語言的接口,它對XML文檔進行分析 后,在內存中建立起一個完整的樹結構,然后在此基礎上對樹結構的文檔進行各種操作,如遍歷 XML文檔的節點、搜索內容、編輯。DOM通過在內存中構造一個對象樹,提供了文檔的一個視 圖。文檔的主耍組件結構是對象樹中的節點。
    SAX雖然對系統資源要求低、速度快,但對文檔的操作是只讀的。相對于SAX, DOM的 處理能力更強人,盡管耍求人量的系統資源,尤其是對于大的XML文檔。由于計算機輔助設計 系統中有人童文檔數據,較適用于用DOM解析。因此,選擇采用DOM作為本論文原型系統的 解析器。
    4.2.2 DTD 和 XML Schema
    1DTD的優點和局限性
    DTD (Document Type Definition文檔類利聲明)是一套關于XML標記符的語法規則。它說明 了可以在文檔的什么地方使用哪些標記,它們應該按什么次序出現,哪些標記有哪些屬性籌。早 在 XML 還沒 111現時,DTD 用 T SGML (Standard Generalize Markup Language). XML 被設計成為 SGML的一個子集,因此用DTD來定義XML文檔是理所當然的。
    DTDJX有以卜•特點:它易丁•學習,并且具有同一個標準;它是成熟的,并可以在多個應用程 序中應用:它有一人批專門的開發者,這些開發者從SGML的全盛期就開始使用;有很多關于使 用 dtd 的 r.Ao
    DTD的出現賦予了 XML文檔可擴展性、結構性和可驗證性。止因為如此,XML才具備了 類似丁•數據庫的一些性質,DTD并不是XML文檔必須的成份,具有DTD的XML文檔稱作Valid, 否則就是Well-formedo
    隨著XML應用領域不斷擴大,DTD的一些不足也暴露出來了。比如,XML和DTD使用不 同的語法;其復朵的語法不支持數據類型和名稱空間;用DTD表示某些類型的文檔結構困難等。
    2XML Schema的優點和局限性
    XML Schema最初出現是在1998年,其功能與DTD差不多,相對T DTD, XML Schema 有如卜優點
    (1)一致性它本身便是XML文檔,因而能用DOM/SAX等對它進行分析;
    (2)擴展性如引入了數據類型名稱空間等;
    (3)規范性它定義了 XML文檔的整體結構;
    (4)易用性岡為它本身便是XML文檔,因此具有簡單明了的特點,撰寫模式要比DTD簡單 得多。
    4.2.3 XSL 和 XSLT
    可擴展的樣式語言(Extensible Style Language XSL),是專門用丁 XML文檔的樣式單語言XSL 文檔本身就是結構完整的XML文檔。XSLT是XSL的轉換部分(XSL Transformation XSLT),它 主要用來識別XML文檔,以便使用樣式。XSLT的彈性相當大,允許你進行大多數XML中的轉 換排序和組織作,而不需耍編寫自己的程序代碼。一般根據元素顯示的先后關系編寫XML的 轉換規則。
    相應為HTML設計的是CSS (Cascading Style Sheets)級聯樣式單。它定義字號、字族、字重、 段落縮進、段落對齊和其他樣式籌格式化屬性,這些屬性都可以施加到個別的元素上。例如,CSS 允許HTML文檔來指定所有的Hl元素,應該被格式化為32磅、中間對齊的Helvetica字體的粗 體。單獨的樣式可以施加到人多數HTML標記上,它能夠覆蓋瀏覽器的缺省設置。多個樣式單可 施加到一個文檔上,而多個樣式也可用于單個元素上,樣式根據特定的一套規則級聯起來。
    CSS只能改變特定元素的格式,也只能以元素為基礎。但XSL樣式單可以重新排列元素, 并對元素進行巫排序。這種樣式單可以隱藏一些元素,而顯示另外一些元素,更進一步說,還可 以選擇應用樣式的標記。它不僅是基于標記的,而且還基于標記的內容和特性、基于標記在文檔 中相對丁•其他元素的位置以及基于各種其他的準則。
    4.2.4XI ink 和 XPointer
    將XML發布jilj Internet上,我們當然希望能夠對這些文檔尋址,并且可以將這些文檔鏈接起 來。標準的HTML鏈接標記可用在XML文檔中,而且HTML文檔也可與XML文檔加以鏈接。
    如果出戶跟隨著鏈接,瀏覽器能否顯示這個文檔,依賴于該瀏覽器處理XML文件的能力。 然而,XML是利用Xlink來與文檔鏈接,用XPointer來確定文檔個別部分的位置具有更多的功 能。Xlink可使任意元素成為鏈接,而不只是<a>元素。進一步說,鏈接可以是雙向的、多向的或 是指向多個鏡像的站點,并選擇這些站點中最近的一個。XPointer能使鏈接不僅指向特定位置處 的特定文檔,而且還可指向特定文檔的特定部分。XPointer可以引用文檔中特定的元素,如第一 個、第一個或是第十七個特定的元素。XPointer提供了文檔間連接的強大功能,而這些文檔不必 有包括附加標記的目的文檔。止因為如此,其中的個別部分才可以被鏈接。進一步說,與HTML 的錨anchor不同,XPointer不只是引用文檔中的一點,XPointer可以指向一個范圍或是一個區域, 因而,XPointer可以用來選擇文檔的特定部分,或許這樣一來就可以將這部分復制或是將其裝入 其他程序。
    4.2.5URL 和 URI
    XML文檔可用T Web,止如HTML和其他文檔一樣,使用時也如HTML文檔一樣被統一資 源定位符(Uniform Resource Locator簡寫為URL)所引用。雖然URL己被人們廣泛理解并被廣泛 支持,但XML規范使用的是更為通用的統一資源標識符(Unifbrm Resource Identifier簡寫為URI)。 URI對丁定位Internet ±的資源是更為通用的架構,更為注重資源,而不太注重位置。理論上說, URI可找山鏡像文檔的最為近似的副本,或是找出己經從一個站點移動到另一站點的文檔,但 URI仍然處丁進一步研究Z中,當前得到廣泛支持的仍是URLo
    4. 3 XML的應用標準
    XML已開始被廠泛接受,人量的應用標準,特別是針對Internet的應用標準,紛紛采用XML 進行制定。XML應用標準主要有兩大類別,一類是面向信息存儲與信息交換的,制定這一類標 準的日的主耍是規范系統信息,為將來實現不同系統間的信息交換做準備。另一類則是面向信息 發布與信息顯示的,這一類標準的制定主要是為了改善和促進直聯網上的信息發布,是面向信息 顯示的。
    4.3.1面向網頁的XHTML
    XHTML(eXtensible HyperText Markup Language)就是將過去以 SGML 定義的 HTML,改用 XML巫新定義,所有的標記都•既有的HTML標記一致。從很人程度上講,它是從HTML到 XML的過渡版本。
    XHTML的最人特點在丁它的模塊化。它將這些標記根據瀏覽者的需求和瀏覽器的支持能力 分解為一個個模塊。根據所選擇的DTD, XHTML有三種形式:嚴格烈、過渡型和框架型。由 丁•以后會出現不同種類的終端和平臺,例如手持設備和移動電話等,沒有必要每一種終端都百分 Z白地支持所有HTML中的標記,所以XHTML這一模塊化的思想是順應了網絡發展的潮流和 斤PC時代的到來的。其次,XHTML可以通過使用名稱空間而具有良好的擴展性。另外由于 XHTML遵循XML格式,因此可以用標準的XML T具瀏覽、編輯和處理,享有XML的諸多優 點。
    XHTML相對丁 HTML的這些變化都充分體現了未來網頁內容耳形式相分離,以及適用于多 種交A環境和瀏覽環境的人趨勢。
    4.3.2面向圖形圖像的SVG
    SVG是一種基于XML的用來描述二維矢量圖形和矢量/點陣混合圖形的標記語言。其中,“可 擴展”在圖形圖像技術上是指的它不局限丁•一個固定的分辨率和人小,譬如可以在不同分辨率的 厲幕上以相同的人小顯示,也可以在同一個網頁中以不同的夫小或觀全局或觀細節;而在網絡技 術上指的是這一規范能夠與其它規范相融合,從而滿足更廣泛的用戶需求,適合于更廣泛的應用 方式。“欠呈”是指規范中描述了直線、曲線、形狀等兒何圖形,而無須像PNG, JPEG籌圖像 格式那樣逐象素進行描述,這使得集成了 SVG的XML文檔更小,下載速度也大大提髙。"圖形” 是指它提供了對欠量和欠量/柵格混合圖形的描述,填補了大多數基于XML的置標語言規范對復 朵圖形描述的空白。
    4. 3. 3面向數學的MathML
    在MathML出現Z前,由于HTML缺乏描述數學表達式的標記,這些表達式不得不利用其 它公式編輯「•具先存為圖像格式再插到網頁中去,這樣大大降低了傳輸速度,MathML正是因此 而生。
    MathML專門用丁•描述數學符號并且捕獲其結構與內容,它的日的是使數學及科學內容可以 在Web上使用和巫用,并且可以在其它應用系統上,如計算代數系統、排版打印系統等,得到使 用和巫用。MathML從表現形式和語意兩個不同的角度定義了兩大類標一記,這樣一來,MathML 不但能夠用來為高質呈的顯示系統編碼數學符號的表現,也可以用來為科學軟件或聲音合成軟件 等基丁•語義的應用軟件編碼其數學內容。所有MathML部分都用一個math標記包起來,以便和 其它內容區分,可以插到HTML網頁中。
    4.3.4面向多媒體的SM1L
    SMIL是一種用丁描述多媒體演示文檔的語言,允許將一批獨立的多媒體對象,包抵視頻、 音頻、圖像、文字等等,在時間和空間軸上集成為一個同步的多媒體演示文檔。這個規范繼承了 XML跨平臺的優點,而且將所有資源都以URI的形式存在網絡中,無須編譯即可使用。
    SM1L包含了二個方面的內容:描述演示文檔的屏幕布局;描述演示文檔的時間行為;描述 媒體對象間的相關鏈接。
    4. 3. 5基干XML的Web分布數據交換技術WDDX
    WDDX是一種基丁 XML的Web分布式數據交換技術,有了它即使是再復雜的數據也都可 以在Web應用程序間相互交換。
    Web的不同應用環境都包含內在的數據結構,比如數組、記錄集和數據對。WDDX為每一 種語言提供了一個模塊,可以口動地將這些內在數據結構加以序列化或者翻譯成一種精練的基于 XML的描述;反Z亦然。WDDX不但支持基本數據類型,還支持復雜數據類型。WDDX是建立 在XML和HTTP的核心Z上,因此也就相應繼承了 Web環境的安全性模型。因而可以非常方便 地利用加密技術對其進行•加密和解密。在數據傳輸方面,WDDX廣泛支持基于原文數據傳輸的 協議,如 HTTP, SMTP, POP, FTP 等。
    口前WDDX還不是一種標準,但具有非常好的前景,對丁•分布式Web應用具有巨大的推動 作用。
    4.3.6面向電子商務的CXML
    CXML/1.0是一種基丁 XML標準的面向Internet中B2B模式電子商務交易的行業標準。它在 眾多的屯子商務交易中抽象出一種以訂單為中心、并緊密圍繞供貨方和采購方的交易模型,另外 還定義了一種信息交換的機制,進而完成訂單的釆購、處理等一系列過程。CXML提供了兩種信 息交換機制:Request-Response(請求一應答)和One-Way(單向)。請求一應答機制利用了 HTTP協 議,而單向機制并不局限丁•一種傳輸協議。
    CXML提出了電子商務交易的通用標準,使得基丁•該標準的數據交換成為可能。CXML標準 實際上是XML的一種應用,而XML本身所具有的形式與內容分離的特性,使得CXML看力于 電子商務的數據結構,而將商業規則分離出來。XML出色的可擴展性使其很容易地將商業規則 融入其中,進而擴展電子商務應用,各廠商都可根據自身需求開發岀適合自己的應用,但只要是 遵循共同的標準,采用相同的數據結構,就能實現靈活的數據交換,進行無縫連接。CXML還拓 寬了交易的范用,提髙了交易的口動化程度。
    4. 4 XML的應用模式
    XML的最人優點在丁•它的數據存儲格式不受顯示格式的制約。一般來說,一篇文檔包括三 個耍素,數據、結構以及顯示方式。對于HTML來說,顯示方式內嵌在數據中。這樣,在創建文 本時,耍時時考慮輸11!格式。如果因為需求不同而需要對同樣的內容進行不同風格的顯示時,要 從頭創建一個全新的文檔,巫復I:作量很大。此外,HTML缺乏對數據結構的描述,對丁-應用程 序理解文檔內容、抽取語義信息都有諸多不便。從某種意義上講,WDDX是一種“XML中間件”, 編程語言是將其作為一種在數據間交換的傳送工具來使用它[21]。
    XML把文檔的二要素獨立開來,分別處理。首先,把顯示格式從數據內容中獨立出來,保 存在XSL文件中,這樣,如果需要改變文檔的顯示方式,只要修改XSL文件就足夠了。XML的 口我描述性質能夠很好地表現許多復雜的數據關系,使得基于XML的應用程序可以在XML文 件中,準確、高效地搜索相關數據內容,忽略其它不相關部分。XML還有其它許多優點,比如: 它有利丁•不同系統Z間的信息交流,完全可以充當網際語言,并有希望成為數據和文檔交換的標 準機制。
    總結一下,XML的應用主耍分為以下四類[18]:
    ⑴充當不同數據源Z間交換數據的媒介。在這類應用中,XML解決了數據統一接口的問題。 但是與其他數據傳遞標準不同的是,XML并沒有定義數據文件中,數據出現的具體規范,而是 在數據中附加了標記來表達數據的邏輯結構和含義,這使XML成為程序能自動理解的規范。
    (2)可將人童運算負荷分布在客戶端,減輕服務器壓力。客戶可根據自己的需求,選擇制作不 同的應用程序來處理數據。而服務器只須發出同一篇XML文檔,XML將處理數據的主動權交給 客戶,服務器所耍做的只是盡可能的將數據完善準確的封裝成XML文檔。XML文檔的自解釋, 使客戶端在收到數據的同時也理解數據的邏輯結構含義,從而使廣泛通用的分布式計算成為可 能。
    (3)將同一數據以不同的面貌展現給不同的用戶。
    (4)代理稈序可對所取得的信息進行編輯、增減以適應不同用戶的需要。有些客戶取得數據并 不是為了氏接使用,而是根據白己的需要組織自己的數據,從而建立白己的應用系統。
    (5)作為行•業信息標準化的具。
    以卜是兒個XML的應用實例,它們均對應于上述的一種或多種應用類型:
    ⑴商務口動化處理。比如,基于XML的EDI(Electronic Data Interchange電子數據交換技術)。 XML半富的標一記完全可以描述不同類型的單據,例如,信用證、保險單、索賠單以及各種發 票等。結構化的XML文檔發送至Web的數據可以被加密,并且很容易附加上數字簽名。
    (2)信息發布。信息發布在企業的競爭發展中起著重要作用。服務器只需發出一份XML文件, 客戶可根據口己的需求,選擇和制作不同的應用程序以處理數據,特別適合于B2B的信息發布。
    (3)數據集成和應用集成。XML能夠更準確地表達信息的真實內容,其嚴格的語法降低了應 用程序的負擔,也使智能丄具的開發更為便捷。來自不同應用程序的數據也能夠轉化到XML這 個統一的框架中,進彳亍交互轉化和進一步的加工。
    4. 5 XML技術在計算機輔助設計系統的應用
    4. 5.1XML在數據交換中的應用研究
    1 XML的數據表示
    數據表示,是指利用某種機制對需要交換的信息的組織結構、內容及其關系進行表示。XML 對數搖的表示包括對數據的組織結構、信息內容和數據間的關系進行描述和表現。
    2數據結構表示
    在使用XML表示數據時,應當定義和約束這些數據在文檔中的組織結構。通過DTD或者 XML Schema來定義XML文檔的結構。DTD與文檔是相關的,文檔通過DOCTYPE指令標記與 DTD建立關聯。當文檔需耍被驗證有效性時,解析器通過該指令獲取DTD,并根據其中的規則 對文檔進彳亍檢驗。結構符合相應DTD的文檔被稱為有效文檔。對數據結構有嚴格要求的信息集 合應該存放在有效的文檔中。所以數據結構可以通過DTD來定義利約束。
    DTD僅僅是規定XML文檔的結構和語法規則,而不包括它的內容。因此,不同部門及異構 數據在實現XML應用時可以共享同一個DTDo DTD可以獨立于文檔,也可以在文檔內部進行定 義。
    DTD通過四種標記定義XML文檔中允許出現的內容,即ELEMENT(元素類型聲明)、 ATTLIST(屈性列表聲明)、ENTITY(可重用的實體說明)和NOTATION(非XML內容的聲明和處 理)。但是DTD語法不是使用XML來描述的,其擴展性差。在將多個文檔合并時可能會出現名 字沖突,不能表示數據類型信息。
    XML Schema也用來描述文檔的結構,它比DTD具有更強的表現能力,而且它允許在定義 中使出命名空間。命名空間就是一個應用T- XML文檔的具有結構的名稱的集合。名稱包括元素 名稱和屈性名稱,命名空間通過一種URI引用來標識,它解決了多義性和名字沖突的問題。
    4.5.2基于XML的數據模型
    系統中使用了 XML文檔對模型數據進行分類、編碼、存儲、檢索和維護,在制定XML數 據模犁的過程中,主要注意建立良好的數據結構,以建立一個完整的描述模型信息的數據模型, 同時該數據模型具有良好的層次結構。為數據統計和模型分析打卞了良好的基礎。
    該XML文檔的部分數據如下:
    <Object name="插秧機"〉 <author>作者 l</author> <date>20050101 </date>
    <file />
    <px /> <py /> <pz/>
    <subobjects>
    <Object name-'導桿”> <author> 作者 1 </author> <date>20050101 </date> <file>導桿 04.00?ll.x</flle> <px/>
    vpy/>
    <pz/>
    <subobjects />
    </Object>
    </subobjects>
    </Object>
    第五章計算機輔助設計系統實現
    5.1軟件的制作
    5. 1. 1設計功能的實現
    1、 部件結構的實現
    “部件”場景內使用了樹控件來實現,各部分的內容在控件內宜接選擇,3D圖形在右上方 顯示,各個參數在卜方顯示修改。
    3D圖形顯示和動畫使用Direct3D實現,從實際效果看,性能和效果都令人滿意。
    文件系統使用XML文件實現,省去了定義和解析文件格式的麻煩,同時由于XML是開放格 式的文件,也為以厲的進一步開發提供了便利。
    2、 主要實現方法
    根據計算機輔助設計的特點,對各個部件宜接輸入參數進行設定。
    1) 通過在3D顯示窗口中點擊來選取部件,這種方式簡單而且宜觀,同時,考慮到機械部件存 在子部件的實際情況,可以選擇各個子部件虛擬出一個基本部件,這個部件可以在導航窗口中選 擇并設置參數,比如通過螺栓,螺母固定在一起的各個子部件,他們Z間的位置是固定不變的, 并且進行運動模擬的時候其相對位置也是不變的,這樣就可以虛擬出一個基本部件,直接計算其 運動,這樣螺栓,螺母等的運動就自動實現了。通過這樣的方式可以大大提高設計效率,減輕基 本計算的「•作臺。
    2) 基T- Direct3D的3D控件。為了軟件的紐件化,同時為了簡化編程和以后的重復使用,軟 件中3D部分設計了一個通用的3D組件。
    3) 動態公式解析
    動態公式解析使用了隨想表達式計算類庫(CS Expression Calculator Class Library 4.0)來完 成,隨想表達式計算控件是一款可以讓用戶的程序立即實現表達式解算功能的系列DLL組件, 麥込式解算功能可以使您的程序具備更髙的可擴展性。隨想表達式計算類庫可以進行數學、統計、 金融、邏輯、文本、日期綜合運算,支持110余種函數,支持單行表達式計算和含有口定義變 呈的表達式織分部計算,具備完備的自動偵錯能力和錯誤處理能力。隨想表達式計算類庫含有多 個版本,COM版用VB6.0開發,適合構建Win32應用程序,托管代碼版在VB.Net下重寫,適 用丁不想引入COM的純.NET托管代碼程序。另外,還包含了針對.NET框架精簡版平臺的嵌入 式托管代碼版,可用丁•學上役備的開發。
    4) 基丁 XML的文件處理
    本系統采出DOM技術來解析和操作XML文檔。DOM將XML文檔看作是一棵有結構的信 息樹,每一個文檔的頂端是根節點,每一個元素都是一個節點。每一個節點代表一個可以和它交 A的對象。通過遍歷DOM樹。找到每個葉節點元素對應的關系屬性、存儲葉節點的內容。DOM 將一個XML文檔轉換成程序中的一個對象集合.程序可以對該對象集合進行任意操作。同時, 還可以通過XPath進行識別、選擇、匹配XML文件中基于樹的DOM圖,并進一步訪問和更新 XML文檔的結構和內容。以卜列出了一段VB程序,利用DOM型的解析器讀人一個XML文件, 生成DOM樹型結構,并根據樹型結構從文件中讀出有關的數據。
    Dim xmldoc As MSXML2.DOMDocument
    xmldoc.Load m_filename
    xmIdoc.setProperty("SelectionLanguage", "XPath");
    Dim nodelist As IXMLDOMNodeList
    Set nodelist = xmIdoc.selectNodes(n//*[@name='導桿T)
    dim node as IXMLDOMElement
    set node = nodelist.Item(O)
    此程序運行厲得到如下的子節點:
    <Object name=M 導桿"〉
    <author>作者 l</author>
    <date>20050101 </date>
    <file>導桿 04.00?ll.x</file>
    <px />
    <py/>
    <pz/>
    <subobjects />
    </Object>
    5. 2軟件實現過程
    5.2.1.素材制作
    在機械設計中,傳統上是使用AutoCAD來進行計算機輔助設計的,也積累了大量的相關圖 紙,所以把設計基礎定為AutoCAD可以很好地重復使用已有地資源。素材的制作是一項較為復 朵的作,也是制作軟件的一個重要環節。
    (1)圖形的制作以AutoCAD為主,這里不再贅述。
    (2)3D建模出3DSMAX實現,3DSMAX可以很好地使用AutoCAD設計完成的圖紙。
    任我國,使用較多的是3DS4與3DSMAX兩個軟件。3DS4比3DSMAX推出較早,3DSMAX 應是3DS4的升級換代產品,因此,二者Z間必有共同之處和井異就總體共性而言:3DS4與 3DSMAX都是Autodesk公司的三維動畫產品,它們的主要功能都是利用計算機來實現物體的幾 何造型和動畫。他們在計算機中模擬了一個三維空間,該空間中的事物與現實空間中的事物相同, 如物體本身都具有某種材料、光線照到物體上它才能被看到等籌;并提供了眾多命令和丁.具。使 你能在該空間中造醴任何物體并使之產生動畫。另外,還可以模擬口然現象,如火、雨、雪、閃 電等,并最終將動畫輸出至錄像機、電視機等設備。因而,它們都是功能強大的廣告、影視作品 的制作r.Ao
    此外,在其他方面它們也有許多共同點和區別,尤其在運行環境上普別較大,具體如下:
    1運行環境的區別
    1)軟件環境
    3DS是在DOS環境卜運行的16位軟件,而3DSMAX則是運行在windows環境中的32位 軟件,這就是說,3DSMAX不能在DOS環境中運行,而3DS也不能在Windows環境中運行, 但由于WindowS95能兼容支持16位軟件,因而,若在Windows 95的DOS環境中也能運行3DS。
    2)3DS耍求的硬件環境遠低丁-3DSMAX。它只須386Dx以上的微機并加協理器、8M內存及 一個20M以上的傾盤即可以啟動,顯示分辨率在640X480以上,最好有16M內存和幾百兆的硬 盤。
    3DSMAX則要求CPU為Pentium90Hz以上,對于1.0版應有32兆內存和一個至少100兆的 硬盤,顯示分辨率在800X600以上的256色顯示卡,最好應有64兆內存和更大的硬盤及1024X 768及256色以上的顯示對丁-更高的版本則至少應有64兆內存才能啟動,正常運行需要128 兆內存。兩個軟件都可以在網絡環境中運行,甚至是無盤網,但內存、顯示卡的要求必須滿足。
    2操作界面的異同
    3DS有五人功能模塊,即二維圖形編輯模塊ZD Shaper、三維放樣造型模塊3D Lofter、三維 場景編輯模塊3D Editor、關鍵幀編輯模塊Keyframer,材料編輯模塊Material□啟動3DS斤首先 進入3D Editor,然厲可使用F1?F5鍵或下拉菜單的選項實現各模塊間的切換。3DSMax有上述 五人功能模塊,但將其有機的結合起來,形成了一個統一的工作環境,即五塊均在同一界面中操 作,無須相乂切換,此時的屏幕與3DS的3D Editor和Key^amer非常相似,但其命令多為按鈕 和卷展欄,而3DS則是列舉式的。
    3功能方面
    就3DS來說,功能與3DSMAX基本相同,但操作起來MAX比3DS4更方便一些,制作動 畫的方法都是造型物體,然后設定關鍵幀,最后生成動畫。不同Z處是:3DS4在造型和動畫設 計階段需要在五個模塊中來冋切換。例如:制作一個物體,首先在Zd Shaper中繪出物體的橫截 面或截面掃描的路徑,然后在3D Lofter模塊中放樣造型,再在3D Editor中設置場景、架設燈光、 選擇材料,根據需要還可以在Material中編輯制作材料,最后在Keyframer中設定動畫及生成。 而3DSMAX的上述操作則在同一界面中完成。另外,3DS4包含了一個可編程的關鍵幀腳本語言 Keyscript,用丁•編'寫關鍵幀腳本程序代碼以控制場景的動畫。3DSMAX無此功能,但它使用軌跡 視圖的表達式控制來實現部分關鍵幀腳本語言的功能。
    4操作方法
    兩者都通過鼠標點擊屏幕的命令及按鈕進行場景的編輯和其它操作,但各命令的具體操作方 法有了 一定的變化。例如:在3DS4中移動物體需:單擊+移動+單擊。而在3DSMAX中則是按 卜•并拖動;3DS中造型標準兒何體時,只能邊移動邊觀察狀態行信息以確定兒何體的尺寸,而 3DSMAX除可拖動兒何體人小外,還可以在相應的窗口輸入具體的尺寸數值以達到更精確的目 的。另外兩點,3DSMAX比3DS4明顯方便:
    (1)3DSMAX若是運行在中文Windows環境中,則隨時可輸入漢字制作中文造型,而3DS不 能肓•接輸入漢字,必須通過其它軟件處理或在3DS中采用描紅方法繪出漢字的形狀;
    (2)3DSMAX的場景中若用戶不架設燈光,系統自動為你提供兩盞照明光源,這在初期編輯 場景時非常有用。但在3DS4中若用戶不架設燈光,則場景一片漆黑,什么也看不見。
    5輸入與輸!1]
    3DS4可以輸入的文件格式有:.3DS(其自身的場境文件)、.PRJ、.SHP、.DXF等,MAX輸入 的有其口身的場景文件、MAX、還可以輸入3DS的各種格式文件,不過MAX在接收.3DS場景文 件時,源文件的變形信息被忽略,其它信息均被保留。
    兩者的輸出均可指向屏幕或文件,不能直接打印,它們都可以輸出多種格式的圖像文件,3DS 中前四個模塊場景存盤厲的文件格式分別為.SHP、.DXF、.LFT、.3DS,生成的動畫文件格式為.FLC 或.FLI,而MAX中的場景除了可以保存為.AVI,也可以生成.FLC的動畫文件。若配備有響應的 設備及驅動軟件,兩者都可以將動畫輸出至錄像機等視頻設備。
    5. 2. 2三維建模過程
    建模即建立模型,就像是做一件產品的毛坯。做完了毛坯Z厲才能對其裝修美化。從簡單的 基本形體開始,逐步修改、變形,得到復雜的模型是建模的一項重要技術。基本形體的建立參數 可以在創建Z前設置,也可在創建之后編輯。如3DSMAX中,你就可以在Create面板中設置創 建參數,或者在Modify面板中對選擇物體的參數修改。而Maya中,你一定早己注意到很多菜單 右側的小方塊,點擊這些方塊就能激活相應命令或操作來執行參數編輯窗口,這種功能為我們的 「.作提供了很人的方便。
    日前廣泛采取的兒何建模包括以下幾種:
    1) 利用基本元素(如平面多邊形、正方形、圓柱形、圓錐體、球體、曲面片)進行拼接組合來制 作兒何模型。
    2) 逋過兩個造型Z間進行布爾運算(交、并、差等)來產生新的兒何模型。
    3) 通過Sweep造型「•具來制作客觀物體模型。這種方法是目前應用最廣泛的造型方法之一。 它首先通過數字化儀或鼠標在二維平面上描繪出客觀物體的各種特征曲線(一般又為輪廓線或橫 斷面截線),后通過Sweep方法將這些曲線轉變成三維模型。簡單的Sweep法包括平移掃描及旋 轉掃描法。平移列描是將2D曲線沿路徑平移后,再與原曲線連接而成三維模型,較好的平移掃 描還包括bevel(斜角)處理,產生棱角效果。圖5-1中左上為一多邊形延負z軸方向平移掃描而得 到的二維模型。旋轉掃描是將2D曲線沿指定軸旋轉而產生三維模型。
    圖5-1中右I-. 2為曲線繞y軸旋轉掃描而得到的三維模型。復雜的Sweep法可根據需要改變特 征曲線的人小、方向及形狀,使Z在空間形成多個相似的特征面,連接這些特征面形成三維模型。 3DSQ3DSMAX具有共性與區別,3DSMAx是3DS的升級版,具有很多優勢,一般情況下,考 慮到專業耍求等方面岡素,3DS能制作的動畫,選擇3DSMAX來制作一般比較好。目前在我國, 尤其是在高校內擁有3DSMAX的用戶很多,但對于一個準備學3D動畫的建筑專業的學生來說, 如隨波逐流選擇3DSMAX就犯了一個大錯。因為3DSMAX是以機械專業的方向上去做的,與建 筑專業的若距較人,而3DSVIZ卻是以建筑專業的方向去做的。盡管二者的界面、快捷鍵的使用、 對計算機硬件和軟件系統的耍求等方面非常相似,但在建筑上常用到的窗戶、門、墻等若利用 3DSVIZ就很容易建模,而選擇3DSMAX則比較麻煩。在動畫方面,利用3DSVIZ動畫模塊中所 提供的Walkthrough Assistant很容易制作出針對建筑所需的全景漫游。
     
    圖5-1三維模型建立
    建模完成厲,利用相關插件將模型導出到.X文件。.X文件是Direct3D開發包所宜接支持的 唯-…種3D模熨格式,.X文件包含了對于一款3D系統而言有用的信息,諸如模型中頂點的位 置、頂點顏色、材質、UV紋理坐標、動畫關鍵幀等等。
     
     
    5.2.3設定部件工作狀態
    1.部件的調入
    將部件的數據文件加載,放置如三維場景的過程。首先對部件進行區分,將相對位置不變的 部件分組進行纟吐合,將整體發生運動的部件分組進行整體安排,然后按照分組分別進行調入場景。
    調入的具體過程為在分織的名稱下選擇“添加”,輸入部件名稱,雙擊“.X文件”后的輸入 || E,選擇路徑及其部件對應的文件名稱,部件即可顯示在三維場景中。
    2.部件的位置設置
    部件調入二維場景后,部件的設計基準和軟件空間三維坐標的原點巫合,即部件在原點位置。 此時需要對部件的空間位置和角度進彳亍調整,按照我們的需要進行擺放。
    在本軟件的設計中,對丁部件的位置和角度的設置分為兩種方法輸入:一是直接根據原始設 計數據推算各個部件相對丁•原點的尺寸鏈,根據尺寸鏈輸入部件的位置和角度;二是手動調整, 在位置及角度標簽X、Y、Z輸入框中,每個輸入框后設置增加減小調整按鈕,三個輸入框厲單 獨設置…個輸入框用丁•手動調整的步長設置。這樣對丁部件的位置和角度都可以靈活的進行■調 整,并且可以根據顯示的效果,隨時方便的進行調整。
    選.擇整體機構的名稱標簽時,可以對整個機構的位置和視角進行調整,可以控制機構沿著三 個進行旋轉、移動,便丁•整體觀察裝配后的效果,對于設計中出現的問題,可以隨時進彳亍修改。
    在修改后,選擇修改按鈕,對XML文件數據進行修改,選擇保存按鈕,對修改后的數據進 
    行保存。這樣卜次進入系統時,機構及部件按照上次保存的數據進行顯示。
    3.部件的人小設置
    傳統的軟件設汁中,對丁部件的人小進行調整時,需要退出程序,對部件進行重新建模,然 后調入使用,或者預先建立不同規格的部件庫備用,這樣的方法過程繁瑣,并且不可以實現部件 的均勻“無級”放人,效果不佳。
     
    圖5-3部件放人的顯示效果
    本軟件的設計中,對丁部件的人小設計了 X、Y、Z三個方向的比例系數,可以根據口己的 需要隨時設置部件的形狀尺寸系數,同時顯示該系數作用下部件的尺寸,隨時可以觀測部件人小 發丫變化厲的效果,并且可以根據乘以系數后的人小重新確定部件尺寸,對部件重新進行設計, 簡單方便。
    4.部件的運動設置
    機械機構中部件的運動方式分為移動、轉動,本軟件中只要輸入相對于時間的運動方程,就 可以實現部件的運動。
    對丁•移動,在“運動軌跡定義”后面的三個輸入框分別輸入沿著X、Y、Z三個坐標軸的運 動方程,三個運動方程可以單獨使用。也可以單獨使用,在測試頁面即可實現三個方程組合產生 的部件的移動。
    對丁•轉動,在“運動軌跡定義”后面“角度”的三個輸入框分別輸入沿著X、Y、Z三個坐 標軸的運動方程,二個運動方稈可以單獨使用。也可以單獨使用,在測試頁面即可實現三個方程 纟口合產生的部件的轉動。
    如果移動方程和轉動方程同時作用,即可產生移動和轉動的組合實現。
    例如,對丁•輸秧機滾筒,在“角度”后X輸入框輸入方程T*0.03,即可實現滾筒沿著X軸 方向的轉動。
    對丁氣缸組件,在“運動軌跡定義”后面的三個輸入框分別輸入沿著Y軸的運動方程 (-1.8-0.42)*sin ⑸ n(t*0.2)*0.5)+(4.5-0.9)*cos(sin(t*0.2)*0.5)+0.9 , 沿著 Z 軸的運動方程 (-1.8-0.42)*cos(sin(t*0.2)*0.5)-(4.5-0.9)*sin(sin(t*0.2)*0.5)+0.42,然厲在"角度”后 X 輸入框輸入 方程-sin(t*0.2)*0.5,即可實現組件的擺動。
    對丁•其他運動部件的運動設定采用相同的方法分別設置,調試通過后即可實現機構的整體運 動狀況設置。
     
    第六章計算機輔助設計系統在水稻缽苗行栽機設計中的應用
    6.1拔秧輸秧裝置的設計計算與參數確定
    6.1.1拔秧輸秧裝置的工作過程
    拔秧輸秧裝置是口動從育秧盤中拔秧,拋秧,并且自動輸送育秧盤實現喂秧的部件。其性能 的好壞宜接影響到整機的I:作質量。本課題所用的育秧盤為15X28孔,縱向放置在輸秧機構上, 拔秧采用夾秧爪,共5個,因此,取一排秧苗每個夾秧爪重復三次動作,完成每個動作以厲夾秧 爪口動移位刮卜一個秧苗的位置;當每個夾秧爪拋完第三株秧苗后,停在原位不再平移,取而代 Z的是輸秧機構動作一次,使育秧盤進給一行的距離,實現送秧。夾秧爪在原位置繼續工作,然 后反方向平移,玄到完成第二次動作,然厲輸秧機構乂動作一次。如此循環下去。其工作工程如 2
    6.1.2拔秧裝置的結構設計及參數確定
    拔秧裝置耍完成如卜動作:將秧苗夾緊、從秧盤中拔起、拋秧,然后回位,在回位過程中平 移一個育秧穴孔的距離。由拔秧爪部件、擺秧氣缸部件組成。拔秧爪部件主要由夾秧爪、滑套、 滾輪、導桿、連接板、拔秧氣缸、棘輪移位機構等組成。擺秧氣缸包括連接件和氣缸以及氣缸導 座等。
     
    中國農業人:學碩I:學位論文
     
     
    圖6-2夾秧爪結構示意圖
    本課題的夾秧機構(如圖所示)夾秧爪用2imn彈簧鋼板制成錫子形狀,靠夾秧爪自身的形狀 及根部的滾輪來保證柔性的夾緊。
    其參數如下:
    (1)秧苗高在80?140mm Z間,取為125mm,夾秧位置距秧苗分藥點10?30mm,設計秧爪指 寬12mm,距分槃點20mm處為中心,夾秧在12. 5?27. 5mm范圍內,取秧爪結構尺寸〃=128nim (大 T 125-20+6+10=121mm)。
    (2)育秧穴盤上口徑為20mm,相鄰穴孔邊緣間隙為2mm,故取秧爪尺寸c=24mm,(小于等于 20+2+2=24 ),取 ^12mmo
    ⑶ 選擇夾秧爪拔秧行程為21mm,因為要小于氣缸的行程30rran,大于育秧盤上穴孔的深度 18mnio氣缸多出來的一段行程用于夾秧爪夾緊秧苗。
    (4)夾秧爪Z間的距離是由育秧盤的尺寸決定,因為兩個穴孔之間的距離22mm,每三個穴孔 Z間較人的間距為23mm,所以秧爪之間距離為22+22+23=67mm。
    (5)每個夾秧爪平移一次的距離拔秧機構每個秧爪每次能拔一株秧苗,然后整個機構平 •移育秧盤上一個秧苗的距離,為下一株秧苗的拋秧做準備。育秧盤上一組三個穴孔,相鄰兩個之
    間的距離為22mm,所以設計棘輪移位器時,其螺旋升角每轉動30度,平移22mm。即拔秧機構每 次平移的距離是22mm。
    擺秧氣缸的作用是送夾秧爪到育秧盤中預定的拔秧位置(圖中2位置),同時通過其擺動, 帶動棘輪移位機構動作,實現拔秧裝置的移位。其動作靠擺秧氣缸活塞桿的伸縮實現。拔秧裝置 的I:作過稈如圖所示:
     
     
    1——夾秧爪初始位置:1’ 一擺秧氣缸初始位置:2一 秧爪拔秧位置;2, 一 秧氣缸工作位置; xl—夾秧爪初始狀態時秧爪夾秧端的位置; x2—夾秧爪傾條拔秧時秧爪夾秧端的位置; x3——夾秧爪拔完秧苗后秧爪夾秧端的位置;
    ° —夾秧爪轉過陽度a =35°
    A=15. 5niiii (夾秧位置):
    C=30 mni (等于拔秧氣缸的行程);
    B-6. 5mm (夾秧爪的位置稍低于秧苗莖稈的生長方向,與其有一個夾角,人約為2.5。)。
    初始狀態時,拔秧氣缸活塞桿伸出,夾秧爪夾秧端位于圖中X1點,滑套體對夾秧爪不起 作用,秧爪處丁倣松狀態。擺秧氣缸活塞桿也處于伸出狀態(圖中1'位置)。拔秧時,擺秧氣 缸進氣活塞桿縮冋,在氣缸、氣缸座、滑套體等的作用下夾秧爪和滑套體一起擺過35°的角度, 把夾秧爪送到預先設計的拔秧位置即夾秧爪夾秧端位于圖中點x2 (此時秧爪處于圖中2位置, 而擺秧氣缸處丁圖中2,位置),準備拔秧;然后拔秧氣缸進氣活塞桿縮回,使夾秧爪夾秧端回 到點x3,在此過程中夾秧爪夾緊秧苗并拔秧;接著擺秧氣缸活塞桿乂伸出,使擺秧氣缸冋到圖 中1'位置,同時拔秧氣缸活塞桿伸出,夾秧爪回到圖中1位置,夾秧爪夾秧端回到xl點。在 此過程中夾秧爪放下被拔下的秧苗,實現拋秧。至此,一個工作周期結束。其一個工作循環圖 表示如下。夾秧爪夾秧端位置:
     
     
     
     
    圖6-4夾秧爪工作循環圖
    6.1.3輸秧裝置的結構設計及參數確定
    輸秧裝置的作用是將軟塑穴盤育秧秧苗自動精確定量地輸送到拔秧機構,以保證拔秧機構的 止常作。拔秧裝置每次完成一排秧苗的拋秧后,育秧盤要進給一行,以保證下一個工作循環的 順利進行。為減小每個•作周期的時間,這個動作在拔秧裝置回位的過程中實現,同時要求準確 定位。
    6.1. 3.1輸秧裝置的結構設計
    滾筒式輸送裝置是肓接將 育秧盤放在•肓•徑較人的滾筒上, 利用育秧盤與滾筒的摩擦帶動 育秧盤運動。該機構結構簡單, 體積小,便丁拔秧機構配合。 因此,本課題采用了這種結構, 芥做了適當的改進。改進厲的 輸秧裝置包括氣缸及其連接裝 置、擺桿、煉爪和棘輪、定位
     
    器、輸秧規等。如圖所示。 1——行程開關 2— 缸及其連接裝置
    氣缸和擺桿的運動帶動棘爪運動 3——棘輪定位器 4棘爪
    使練爪練輪機構實現步進,棘 5桿 6棘輪
    輪轉動的過程中帶動刷秧餛周轉 7―秧盤座 8―秧滾筒
    動,這樣固定丁•輸秧轆上的育秧盤就隨之轉動而進給一行。定位器使棘輪固定于指定位置,實 現精確定位。
    6.1. 3. 2輸秧裝置的主要參數的確定
    柵狀滾筒式輸秧機構的主要設計參數有滾筒直徑〃,拔桿宜徑“籌。其設計的依據主要是育 秧盤的結構。
    1、輸秧滾筒玄徑的計算
    根據育秧盤結構,輸秧滾筒的最小直徑應為育秧盤彎曲到缽體底部相連時的育秧盤彎曲半徑 R,見圖所示。由圖可知:
    3 = tg~x
    Knin = ~
    2-sin-
    2
    式中:8——缽體錐角;
    4 育秧盤缽體上口肓.徑(d]=19mm); d2 育秧盤缽體下口盲•徑(©hll™11); h 缽體髙度(〃=18mm);
    L——育秧盤孔穴縱向間距(Z=21.5mm): 心in一育秧盤最小彎曲、I':徑。
    所以由公式(2. 1. 1)可得:
    由育秧盤結構圖可知: a = 25 ° 圖6-6輸秧滾筒直徑計算簡圖
    L 21.5
    所以由公式(2. 1.2)可得:Rmin = = =49. 7mm
    2-sin— 2-sin一
    2 2
    考慮到輸秧滾筒輸秧時的連續性,滾筒的周長應為育秧盤缽體縱向間距的整數倍N=
    可近似得: +冷=L
    NL
    即: D = — (6.1.3)
    n
    其中: N> — =14
    輸秧滾筒肓.徑D除滿足人丁•最小直徑的條件外,還應考慮到與拔秧機構的配合等問題。如果 滾筒應徑過小,會造成秧盤輸送阻力增大,造成秧盤損傷。因此,綜合考慮率各種同素,本課題 選擇N=32。由式2. 4計算得:
    n NL 32x21.5 nin
    U = = = 219 mm。
    n 3.14
    2、撥桿氏徑和位置的確定
    在確定了輸秧滾筒的肓.徑厲,撥桿直徑和位置是相互關聯的。撥桿應配置在育秫盤缽體的下 部空隙處,距滾筒中心距離人丁•缽體底部距滾筒中心距離。即:
    (D-2h)<2lh<D
    其中:lh——撥桿配置的位置距滾筒中心的距離。
    撥桿的玄徑耍考慮到強度和加工性能,一般取4~5mm3
    6.1.4小結
    本節通過對總件的結構設計、各部件的設計及各主要參數的計算選取,得出如下結論: 拔秧輸秧裝置 拔秧裝置耍完成如下動作:將秧苗夾緊、從秧盤中拔起、拋秧”然后冋位, 在冋位過程中平移一個育秧穴孔的距離。由拔秧爪部件、擺秧氣缸部件組成;輸秧華置的作用是 將軟塑穴盤育秧秧苗口動精確定量地輸送到拔秧機構,以保證拔秧機構的正常工作。拔秧輸秧裝 置的主耍「.作部件有夾秧爪和輸秧滾筒,通過計算,其參數如下:
    秧爪結構尺寸:用 128mm, a=21mm, b=22mm, c=24mm, d=12mm;
    相鄰夾秧爪Z間的距離:67mm;
    輸秧滾筒玄徑:廬219mm;
    6. 2計算機輔助設計系統的應用
    6. 2.1虛擬組裝
    1.將AutoCAD圖形轉換為3D MAX圖形
    根據原始設計的一維AutoCAD圖形進行三維建模,因為AutoCAD與3D MAX之間不可以直接 轉換,一般有兩種形式來完成。一,根據AutoCAD圖紙繪制3DMAX圖形,此方法工作量較大。二 采用文件轉換,將AutoCAD文件導入3D MAX,然后進行修改,工作量有很大減小。
    AutoCAD中圖形以DXF文件格式輸入到3D MAX中;將DXF文件導入3D MAX中需要注意:
    (D若在AutoCAD R12中用AME生成的物體,首先要用命令Solmesh進行表面網格化(可用 Shade命令檢杳,否則不能進入3D MAX) o
    (2)用Dxfout命令將二維物體存成DXF文件時,在給出文件名字斤,會出現以下提示Enter decimal places of accuracy (0 to 16)/Entities/Binary<6>*\ 即"十進制精度(0 到 16)/實體 /'二進制〈6〉”,一般選擇二進制,文件較小,操作較快。
    (3) 將AutoCAD中的DXF文件導入3D MAX時,將出現對話框。其中有Layer(層),Color(顏 色),Entity(實體)三種轉換物體的方式供選擇。
    Layer:進入3D MAX時保留層名,一個層中的物體在3D MAX中為同一物體。]
    Color:按AutoCAD中的顏色轉換物體,一種顏色是一個物體。
    Entity:按AutoCAD中的實體進入3D MAX, 3D MAX自動給物體賦名編號,較罔用的方法是 將同一類物體(如表面要貼同一種材質的物體)放在AutoCAD同一層中,并給予易辨認的層名。
    (4) 對轉入2D Shaper和3D Lof ter中進行操作的AutoCAD實體必須是多義線(polyline)。
    岡此,在AutoCAD中應把它們用Bpoly和Ped辻轉成多義線。進入3D MAX后再用cjieck命令檢 查節點和減少節點,并在其對話框中將Weld Vertexes(節點合并),Unify Normal統一法線) 選 “No”; Auto Smooth(口動平滑)選 “Yes”。 !
    2.將零件3D MAX文件轉換為.X文件
    3D MAX默認狀況卜•不可以按照.X文件類型保存文件,需要安裝3D MAX的.X交件導出插件
    I x_file_plugin斤可以肖接輸出.X文件。 |
    xfile. exe是directx sdk中的一個.X模型文件資看工具。MeshX是一款用于初建、觀看、 編輯和保存DirectX X文件的二維建模軟件。對于3D MAX導出的.X文件可以使用*兩個工具軟 件方便的杳看或編輯修改。
    I
    3.裝配
    按照第五章介紹的方法,將前期制作的部件的.X文件調入系統中進行虛擬裝配] 在調入過程中,應注意將一同運動的部件進行組合,這樣在后期,可以按照一人部件來設定
    運動方式進行運動控制。對丁•本例的水稻缽苗行栽機具體的分組情況如下:
    外殼組件:包括兩側的外殼、外罩之間的支架及其固定才外殼上的零件; |
    輸秧機構:包摘輸秧滾、輸秧輾軸、棘輪等隨著輸秧滾一同轉動的部件; i
    插秧控制機構:包括擺桿、步進棘爪等;
    拔秧機構:包括拔秧氣缸氣缸組成(固定在氣缸體上的部件)、活塞組成(與活塞相連的部 件)、拔秧煉爪、夾秧爪()等部件;其中每只拔秧爪兩只爪臂之間有相當運動,由以分成兩個
    I
    部件處理。
    擺動控制機構:包括氣缸支架、擺動氣缸(擺動氣缸、擺動氣缸連接頭等)等如件; 秧苗:秧苗、育秧盤等部件;為了實現秧苗拔斷的過程,秧苗做成上下兩個部*,未拔斷的 時候按照組合后的整體控制,拔斷的時候分作兩個部件進行控制:育秧盤沿著輸秧翠軸的方向做 成條狀,動畫過程對單條進行控制。
    練輪定位器:包括棘輪定位器、棘輪定位器軸、軸承等部件: i
    地面:地面、環境背景等; :
    i
    6.2.2動畫實現 |
    i
    I
    1.設定部件的運動方式 1
    對丁運動的部件分別設定運動的方程,具體情況如下: ,:
    插秧機輸秧滾組件,在“運動軌跡定義”后面的X角度輸入框中輸入繞X軸旋轉的運動方 程:T*0.03,其中T為時間因子,調整滾輪的轉動速度。
    氣缸組件,在“運動軌跡定義”后面的位置輸入框分別輸入沿著Y軸的運動方程 (-1.8-O.42)*S1N(sin(t*0.2)*0.5)+(4.5-0.9)*COS(sin(t*0.2)*0.5)+0.9 , 沿著 Z 軸的運動方程 (-1.8-0.42)*COS(sin(t*0.2)*0.5)-(4.5-0.9)*SlN(sin(t*0.2)*0.5)+0.42,然后在“角度”后 X 輸入框輸 入方程-sin(t*0.2)*0.5,即可實現組件的擺動。
    棘輪移位器同插秧機滾輪一起運動,運動方程一致。
    2.仿真實現
    對機構中各個部件或者組件的設置完成后,點擊測試按鈕進入仿真頁面。在仿真頁面中,分 為兩個部分構成,一是可以在輸111窗口中看到機構的整體運動情況,并且可以根據需耍調整觀察 視角,對各個細徉進行觀察分析。二是數據顯示部分,可以根據需耍將選定部件的數據進行及時 的動態輸出,便丁隨時的監控以及后期對部件進行運動學、動力學等方面的分析。
    本例中,對丁水稻缽苗行栽機的顯示效果如圖:
     
    圖6-7水稻缽苗行栽機仿真效果
    上部的顯示柜中,動態顯示機構的工作狀況,可以通過下部的按鈕調整觀測視角,包括觀測 的位置,角度等,對機構的「作狀況進行整體或者局部進行觀測,例如對輸秧機滾筒和圧盤板的 細節觀測如圖:
     
    圖6-8輸秧機滾筒和床盤板細節
     
    6.2.3分析調整
    通過計算機輔助設計軟件,我們要對前期的設計思路以及設計方案進行審核改進,這就耍求 輔助設計軟件可以發現設計存在的問題,包括產品或者部件的形狀外觀、設計合理性、可行性等 方面,•并且可以針對出現的問題進行調整,對調整后的情況進行演示分析。
    1.部件裝配調整
    根據機構虛擬組裝及仿真的情況測試零件的裝配工藝,對零件的外觀、形狀、尺寸、裝配等 方面進行•校核。
    2.輸秧滾宜徑調整
    輸秧滾筒玄徑D除滿足人丁最小直徑的條件外,還應考慮到與拔秧機構的配合等問題。如果 滾筒宜徑過小,會造成秧盤輸送阻力增人,造成秧盤損傷。模擬分析不同的氏徑下的狀況,確定 滾筒直徑的合理人小,
    3.拔秧力人小調整
    拔秧力過小會造成拔秧火敗,過大則造成秧苗拔斷。輸入秧苗拔秧失敗和拔斷時拔秧力的大 小對系統參數進行初始化,然后根據不同的拔秧力人小、秧苗附著力在允許范圍內隨機生成,模 擬分析實際的拔秧狀況。
    4.拔秧行程調整
    拔秧行程的人小,對拔秧的夾持部位、拔取力大小等產生影響,在允許范圍內隨機模擬不同 秧苗高度下行栽機的門午狀況,確定合適的拔秧行程大小。
    6. 3應用效果分析及改進意見
    在水稻缽苗彳亍栽機的輔助設計過程中,發現了以下的問題,并提出了相關的修改建議,并在 輔助設計系統中進行修改校核:
    1.在演示過程中對壓盤板的受力分析發現原始設計的強度存在問題,當秧苗的密度較人時容 易發生彎曲或者傾斜。針對這一情況,首先調整了壓盤板的厚度,并且在支撐點位置設計了凸臺 及加強筋,加強了它的抗彎變形能力,實際效果良好。
    2「在設計中發現,秧苗被拔取的過程與理論分析基本一致。當輸秧軌宜徑為219 mm時,拔 秧性能最優,調幣了最初的設計數據。
    3.初期設計中的方形機殼外形過于呆板,設計中改為前后不對稱設計。
    4.前期設計中輸秧餛橫柵格間距過小,造成輸秧過程阻力加人,設計中加大。
    5.原設計中插秧機支架翻邊向內,雖然美觀,但是會對輸秧過程中輸秧幅和秧苗的運動造成 干擾,改為向外翻邊設計。
    6. 4仿真輸出
    經過調整改進后機構的二維演示如圖:
     
    圖6-9改進后機構的三維演示
    6. 5本章小節
    本章在機械設計計算機輔助系統軟件制作中充分運用了組件化的開發方法,并利用DirectX, XML等當前主流的計算機技術,成功地實現了具有圖片、動畫等交互功能的機械設祁軟件,并 結合水稻缽苗行栽機的計算機輔助設計的進行實踐使用,對機構的整體工作情況進彳亍了驗證審 核,發現了初期設計中存在的問題,對存在的問題進行了改進,并且對改進方案進行了演示分析, 運用本系統程序極人地提高了插秧機的設計效率,為產品的實際試制以及后期的生序奠定了良好 的基礎。
    第七章結論
    計算機技術的E速發展,各行業已經認識到計算機輔助設計的優勢,計算機輔助設計系統在 我國的應用范圍逐步擴人。由于軟件開發公司的專業水平受限,行業口行研發時又苦于計算機技 術水準不高,同時受到計算機軟、硬件環境等因素的限制,計算機輔助設計軟件還不是十分晉及, 僅僅周限在某些寧科或者行業上。所以,計算機輔助設計的工作潛力還非常大,還有待丁社會各 界、各個專業寧科引起高度的巫視,特別應引起那些集專業知識和計算機軟件開發于一身的優秀 人才的關注。
    對丁•一個非計算機專業其至部分計算機專業的人員來說,開發計算機輔助設計系統中比較困 難的環卩是二維動畫的制作。本文就是基丁這點考慮,把三維動畫的開發方法作為本課題的研究 方向。通過分析計算機輔助設計的實質、組成,以及三維動畫的軟、硬件環境、完整的計算機動 畫系統構成,設計了--套實用的計算機輔助設計系統的實現方法及平臺,最后將該軟件運用到農 業機械設計中去。這個過稈中得到的結論以及由此得到今后工作的展望可分為下面兒點論述。
    1.分析了計算機輔助設計的發展動態和趨勢,根據計算機輔助設計的理論、模式,以及機械 設計口身的特點,設計了計算機輔助設計軟件應具有的功能和功能模塊Z間的相互關系,完成了 軟件的設計,為計算機輔助設計軟件的進一步發展奠定了基礎。
    2.根據AutoCAD. 3DS MAX等通用軟件的特點,利用其口身的優勢,應用于計算機輔助設 計的不同階段,用來制作對餛式拋秧機部件的建模,發揮了不同軟件優勢,效果良好。
    3.引入了基T' XML的數據管理方法,對XML在網絡以外領域的應用進行了拓展。實踐證明 利用XML技術對運動和不運動的部件分組管理,模式合理,靈活簡便,適應計算機輔助設計系 統軟件開發的需耍。
    4采用 DirectX 9 For Visual Basic Type Library 的接口技術,利出 DirectX 中的 Direct3DRM 獨 特的功能,建立了二維編輯器,可以按照需要將其他軟件建立的部件模型調入,并可以方便的控 制構件在選定場景中的視點位置與縮放;
    5.應用Visual Basic語言豐富的ActiveX控件的強人功能,開發了其附加控件,可以對運動 部件設置運動方程,控制部件的運動方式,進而實現了機構的三維動畫效果,為計算機輔助設計、 開發提供了便捷的軟件平臺;
    6.用VB快速開發出漂亮的界面以及應用程序框架,再嵌用VC編寫底層的各種操作的控件, 通過這些可以方便的構建了一個良好的人機交互界面,實現具有圖片、動畫等交互功能的機械設 計軟件。
    以上所做的I:作只是對計算機輔助設計三維動畫方法的一般研究,而不是深入研究,在以后 的「作中,個人認為「作的方向和重點應當是:
    1.網絡集成化、功能全程化、超高智能化是計算機輔助設計發展的主流方向,作者希望本軟 件朝著這個方向發展。同時根據行業自身的需要,可以研發適合口己的小型軟件,機動靈活,簡 便易用,適應不同用戶樣體的需耍。
    2.二維動畫制作方面,應增加實踐項目,盡可能充分利用計算機行業的新技術,開發較難制 作的動畫,而該動畫運用到輔助設計中又起著非常重要的作用,是傳統設計無法比擬的。嘗試采 取不同的方法制作,比較實現的效果,以積累更多的經驗。
    3.對計算機輔助設計軟件的功能逐步進行擴充,用最小的投入,方便快捷的達至j設計開發的 要求,并對軟件的通用性進彳亍深入的研究。
    4,.將計算機輔助設計與機械設計課程中的教學相結合,將計算機輔助設計的成果組合到CA1 課件中去,對教學內容進行補充,促進機械設計CAI課件的日趨完善。
    盡管對計算機輔助設計方法的研究取得了一定的成績,并將計算機輔助設計軟件應用到了農 業機械設計當面,但由丁•計算機輔助設計方法的研究需要大量的時間和需要大量的實踐來驗證, 有許多問題還需耍考慮和解決,所以還有待于大家的共同努力。
    參考文獻
    1.曽杰,魯東.計算機輔助設計(CAD)在農業機械中的應用及實踐[J].中國農機化,
    2000 (4) : 33-3 1.
    2.趙紅雁.CAD技術的發展趨勢及其相關技術[J].計算機輔助設計與制造,2001. 12.
    3. 蔡穎,薛慶,徐弘山,等.CAD/CAM原理與應用[M].北京:機械「業出版社,199&
    4.孫文煥等.機械CAD/CAM技術概論[M].西安:西安電子科技人學出版社,1995.
    5.湯徳忠,李止仟.CAD CAM應用技術[M].北京:機械工業出版社,198&
    6.崔洪斌,曹康,楊鐵男,李增L<. AutoCAD R14實用教程[M].北京:人民郵電出版社,1999.
    7.林穎,曾志新,孫延明.Pro/ ENGINEER快速入門及運用[M].北京:屯子工業出版社,2000 .
    8.壬龍,韓中領.3DS MAX 4.實例應用[M].北京:中國鐵道出版社,2001 .
    9.郝利劍.Pro/ ENGINEER 2001中文版1:程圖制作與飯金件設計[M].北京:北京大學出版社,
    2002 . 37 .
    10.童汞樞.機構CAD. CAM技術「M].北京:清華人學出版社,2003 .1 - 16
    11..J Julio Sanchez, Maria Canton. DirectX 3D圖形編程寶典[M]韓傳釗.尹巖青譯北京:電子 「.業岀版社.2000.
    12.武永康.Di reel 3D原理與API參考[M].北京:清華人學出版社,2001
    13.yT成為,高文,卩行仁.靈境(虛擬現實)技術的理論、實現及應用[M].北京:清華人學出版社. 南7:廣西科學技術出版社,1996
    14.熊光楞,彭毅.先進仿真技術與仿真環境[M],北京:國防工業出版社,1997.
    15.李建漢.DirectX實川技巧[M].北京:中國鐵道出版社,2000.
    16.Fxancesco Balena. Visual Basic編程技術大全[M]北京:機械「業出版社,2000
    17.w3C. Extensible Markup Language (XML) 1. 0. (SecondEdition), http: //www. w3. or8 / TR / REC-XML-20001006, 2000
    18.XML Unleashed, MichaelMonison, Sams Publishing, 2000
    19.XML' s impact on Databases and DataSharing, Computer 2001.6,V01.34, No.6. 59-67
    20.王珊等.數據庫系統原理教程.清華大學出版杜.2001.2
    21.Simon St laurent.康曉林等譯.XML A Primer (2nd Edition) [M].電子匸業出版社,2000. 01
    22.盧佐潮.計算機輔助機械設計[M].廣州:華南理工大學出版社,1995.
    23.陳恒高,「元賀,久來田等.機械手式水稻拋秧機的研究.農業機械學報,1998, 299 (2):
    48 ?52
    24.久來田,李延華等.齒板式水稻缽秧擺栽機的研究.農業丁.程學報,2000, 16 (2): 72?74
    25.金炯官,劉厚淸.水稻缽體苗移栽機.農業機械學報,1991, 22 (3) 102-104
    26.馬瑞峻.穴盤育秧水稻機械手拔拋秧機理的研究:[博士論文].廣州:華南農業忙學,2001
    27.中國農業機械化科學研究院編.農業機械設計手冊(上).北京:機械丄業出版社1998
    2&中國機械I:業年鑒編輯委員會編.中國機械工業年鑒.北京:機械工業出版社,1997
    29.《機械設計手冊》聯合編寫組編.機械設計手冊.北京:化學工業出版社(第二厳),1987
    30. 李允文主編業機械手設計.北京:機械工業出版社,1996 I
    31.•未建農,魏文軍,王立臣.旋轉錐盤式水稻拋秧機的試驗研究.農業工程學報,1996, 27(增 刊):96?101
    32.郭豐屣.滾筒式水稻拔秧機設計原理.農業機械學報,1981, 13(3): 32?43
    33.袁釗和•論我國水稻拋秧、插秧、直播機械化技術的發展.農業機械學報,1998,; 29(3): 181
    34.中華人民共和國國家技術監督局.GB5667-85.中華人民共和國國家標準一農業機械生產試 驗方法.北京:中國標準出版社,1993
    35.魏文軍.離心式水稻拋秧裝置.中國,實用新型專利,94246483. 4, 1994
    36.魏文軍.離心式水稻拋秧機.中國,實用新型專利,95226850. 7, 1995 i
    37.宋建農.水稻拋秧機輸秧拔秧裝置.中國,實用新型專利,94211915. 0, 1994
    3&魏文軍,氣力式水稻精密拋秧機.中國,實用新型專利,95226849. 3, 1995
    39. 徐潮主編.新編機械設計師手冊(上冊).北京:機械工業出版社,1995
    40.徐澈主編.新編機械設計師手冊(下冊).北京:機械工業出版社,1995
    41. 東北I紓:院《機械零件設計手冊》編寫組編.機械設計手冊.北京:冶金工業沖版社,1982
    42.鄭磚Z,李徳錫等.常用機構的計算機輔助設計.北京:機械工業出版社,199q
    43.干.文博主編.機構和零部件優化設計.北京:機械工業出版社,1990
    【本文地址:http://www.bzhlmm.com//jiaoyulei/xiaoxueyuwen/8180.html

    上一篇:長沙市農業機械經營模式問題研究

    下一篇:我國農業機械購置補貼效益研究

    相關標簽: