999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

倉儲仿真三維圖元管理平臺

2013-09-29 11:27:14張世辰張翔立黃金國
網絡安全與數據管理 2013年19期
關鍵詞:數據庫信息模型

張世辰,張翔立,黃金國

(華中科技大學 機械科學與工程學院 工業工程系,湖北 武漢 430074)

計算機仿真是應用電子計算機對系統的結構、功能和行為以及參與系統控制的人的思維過程和行為進行動態地模仿,進而得出數量指標,為決策者提供有關這一過程或系統的定量分析結果,作為決策的理論依據。

以倉庫仿真為例,倉庫管理人員可實時掌握貨物信息,直觀地了解當前倉庫的狀態。相較于二維圖表,三維模型在仿真方面有著很大的優勢。三維的圖元需要有圖形用戶界面 GUI(Graphic User Interface)的支持,在Windows系統平臺上從事圖形用戶界面程序開發的工具歷 經 了 Win32->MFC (及 同 類 產 品 )->ActiveX/COM/Visual Basic->Windows Forms的變遷,從 2007年開始微軟推出了新一代GUI開發工具WindowsPresentation Foundation,并把它作為未來十年Windows平臺GUI開發的主要技術。

1 平臺設計思想

1.1 平臺設計的出發點

在倉儲物流系統中,包括入庫臺、傳送帶、叉車、堆垛機、AVG小車、貨架、貨物、緩沖區臨時堆場等資源。倉儲仿真應用既需要展現實際倉庫動作的動態信息(例如:堆垛機的實時運動,貨架上是否有貨物,當前入庫、出庫的貨物);也要能夠顯示倉庫的靜態信息(例如貨物的數量信息、供應商/客戶信息等)。因此,仿真應用的圖元不僅僅包含要顯示的模型信息,從面向對象的角度要把應用中的圖元對象化,增加相應的屬性使之能夠描述現實中的倉庫資源[1]。

開發仿真應用首先需要創建圖元,一般通過三維軟件建模獲得,根據圖形用戶界面——GUI的標準不同,直接使用或者進行轉換生成符合要求的圖元文件,此時的圖元只具有幾何信息,為了實現應用中的功能,還需要增加相應的屬性,使之成為一個完整的圖元對象,得到所有圖元對象后需要設置每個模型的位置,即完成場景布置。完成這些步驟往往需要多個工具的參與,工具的切換增加了開發的繁瑣,更重要的是這些步驟中缺乏對已有圖元的管理,對于一些相似的圖元,重復制作浪費時間和精力,故需要將這些圖元管理起來,建立圖元庫。因此,本文提出的平臺模型將這些步驟封裝成相應模塊,并與其他模塊聯合簡化開發步驟。

1.2 平臺的功能分析

仿真圖元的加載。單獨開發出繪圖模塊工作量較大,現有的三維軟件造型功能已十分完整,并能支持如obj等中間圖形文件,使用三維軟件(pro/e、SolidWorks、3DMax等)創建圖元,生成的圖形文件需要由平臺的相應模塊將其轉換為平臺可用圖元。

仿真圖元的對象化。被模擬的對象除了幾何信息外,應具有很多特有的屬性,比如貨物的基本信息,因此平臺中需要創建圖元對象,使之更貼近現實倉儲資源。

仿真圖元對象的編輯與管理。平臺需要實現圖元對象的存儲及屬性修改以滿足相似圖元的重復利用提高開發效率,對于已保存的圖元,平臺也需要提供基本管理的功能模塊[2]。

圖元輸出功能,平臺的最終目的是為倉儲仿真應用提供圖元,因此需要輸出完整的圖元文件。該圖元文件中包含了圖元的幾何信息確保模型的準確外形;包含了坐標屬性使模型顯示在場景的正確位置;包含圖元的屬性定義,使圖元對象攜帶現實倉庫中資源的信息。

2 平臺結構及模塊分析

2.1 平臺結構

平臺采用典型的三層架構,圖1是平臺的內部結構,表示層負責把仿真數據和操作工具展示給用戶。在該平臺中,表示層的主要作用是顯示三維模型,提供屬性的可視化編輯等工具,管理數據層的圖元。

業務邏輯層中需要實現表示層中各個工具的功能,為表示層展現的場景提供模型數據,調用和處理數據層的圖元信息。

數據層使用數據庫軟件來保存三維圖元的屬性信息,圖元對象是在程序運行的時候創建出來的,保存圖元對象就是將圖元對象的所有屬性保存數據庫表中,通過相應模塊能夠將這些信息快速還原為圖元對象,通過數據庫操作,能夠修改表中圖元的屬性信息,提高幾何相似圖元的利用率。

圖1 平臺內部結構

2.2 模塊分析

邏輯層是平臺的核心層,參照圖1平臺內部結構,邏輯層按照功能分為4個模塊[3]。

(1)圖元加載模塊

圖元加載工具調用加載模塊的相應功能加載圖元,圖元的加載有兩種方式:一種是從外部導入三維圖形軟件生成的中間文件,并將其轉換為平臺可用的圖元;另一種方式是從數據庫中獲取保存的圖元。加載模塊將圖元的幾何信息傳遞給圖元對象模塊。

(2)圖元對象生成模塊

該模塊生成一個圖元對象,此對象的幾何屬性來自圖元加載模塊,同時將幾何信息顯示于表示層場景中,此時的對象只具有幾何屬性,只能在場景中顯示,不能承載信息,故還需要使用圖元編輯模塊完成屬性編輯。

(3)圖元屬性編輯模塊

表示層的屬性編輯工具調用屬性編輯模塊的相應功能對前一模塊生成的圖元對象進行屬性的創建和編輯,完成屬性編輯的圖元對象存入數據庫中。

(4)圖元管理模塊

此模塊的作用主要有兩個:對數據庫中的圖元進行管理,比如圖元的刪除、重命名、以及部分屬性的直接修改;圖元的輸出,將數據庫中的圖元對象輸出,為脫離本平臺的仿真應用的開發提供可用圖元。

3 平臺的關鍵模塊實現

3.1 圖元加載模塊

XAML是WPF技術中專門用于設計 UI的語言,用ViewPort3D標簽定義一個三維場景,其中幾何信息定義在標記<GeometryModel3D.Geometry>的子標記<MeshGeometry3D>中,其中主要由 Positions、TriangleIndices這兩個屬性決定模型的形狀,Positions屬性的值為一系列點的三維坐標,每3個點構成1個三角形面作為構成模型表面的最小單元,Positions屬性中按照3個坐標一組,分別對應第 i個點(i=0,1,2,3,…),TriangleIndices屬性保存Positions中點的索引i,每3個索引為一組,構成1個三角形面,簡單的三維模型表面分割成三角形時,Positions的點坐標及 TriangleIndices中索引的數量不多,但遇到稍微復雜的圖元,此時Positions中的點以及TriangleIndices中索引的數量將大大增加。這將大大增加XAML代碼的篇幅。

obj文件作為大多數三維軟件支持的輸出文件,包含了模型的全部幾何信息。obj文件定義三維模型的方式與positions屬性不同,不能直接使用,在WPF中使用展現三維模型通常需要使用微軟提供的Blend軟件的圖形導入功能,使用Blend軟件在WPF項目中導入obj文件就是按照上文描述的這種規則將表面劃分成很多的三角形,并將三角形的頂點坐標按照指定的規則寫入Positions屬性中,造成XAML代碼的大量增加[4]。因此在Blend中加載obj文件的方式并不理想。

由于Positions屬性中點的坐標冗長,通過改變坐標達到改變模型形狀或位置的做法并不可取,通過三維軟件重新編輯obj文件相對方便,因此完全可以將Positions及TriangleIndices的屬性賦值放在邏輯層完成。在平臺界面上通過圖元加載工具通過文件對話框選擇相應的obj文件,此時加載模塊調用轉換功能將obj文件的幾何信息提取,生成一系列點的坐標,在邏輯層將這些點的數據添加到Positions屬性中,這樣在XAML代碼中就避免了加入ModelVisual3D標簽,這種方式既保留了Blend軟件加載obj文件的方便性又減少了XAML代碼的篇幅,使其便于維護。

3.2 圖元對象生成模塊

obj文件中的幾何信息被轉換為符合Positions屬性值規則的點的集合后賦給GeometryModel3D的Geometry屬性,并將此GeometryModel3D對象賦給ModelVisual3D對象的Content屬性,該ModelVisual3D對象將被添加到一個繼承自ModelVisual3D的ModelVisual3DWithName類的Children屬性中。Viewport3D對象的Children屬性添加ModelVisual3D類型對象。此時完成了一個圖元對象的創建,此對象只包含幾何信息等一些內置屬性,再設置好相機、光線等屬性即可顯示三維模型。

3.3 圖元屬性編輯模塊

(1)內置屬性的編輯

內置屬性主要包含位置信息、顏色信息。位置信息只反映出了模型的空間坐標及姿態,ModelVisual3D對象中通過Transform屬性來改變模型的位置屬性、旋轉屬性、放縮屬性;GeometryModel3D.Meterial屬性表示模型的材質屬性。

Transform屬性值是Transform類型,TranslateTransform3D繼承自Transform類,TranslateTransform3D類有3個表示位置信息的屬性OffsetX、OffsetY、OffsetZ。每個都有相應的依賴屬性:OffsetXProperty、OffsetYProperty、OffsetZProperty。依賴屬性就是一種可以自己沒有值,并能夠通過Binding從數據源獲得值的屬性[5]。因此可以將模型的依賴屬性OffsetXProperty等屬性綁定到界面上Slider(滾動條)控件的Value屬性,這樣就可以控制模型的位置。自定義的圖元對象ModelVisual3DWithName有一個location屬性,表示模型固定點的空間坐標,該點為模型邊界立方體的固定頂點[5]。通過該點的坐標,可以確定模型的空間位置,進而確定模型間的相對位置。其余內置屬性的編輯方式可以參照上述過程。

(2)自定義屬性的編輯

ModelVisual3D對象擁有最基本的三維模型的屬性,比如上文提到的顏色、位置等屬性。但在實際應用中,針對不同的模型還需要用到一些自定義屬性。比如說貨物的重量屬性、生產日期屬性、客戶屬性等。

自定義的屬性是某個圖元所特有的屬性,不必要為所有圖元對象都加上這樣的屬性否則會在應用程序中產生一些不必要的內存空間浪費,于是在本模塊中只將自定義的屬性保存在數據庫中[6],并與特定的圖元對象相關聯。將自定義的屬性添加到圖元對象這一步驟在下一模塊中完成。

3.4 圖元管理模塊

圖元管理模塊實現數據庫中已有圖元數據的管理。可以刪除圖元,修改圖元的部分屬性信息。對于需要輸出的圖元,為了實現其自定義屬性,平臺通過動態代碼為每個圖元定制一個類型。該類型繼承自ModelVisual3D類,根據數據庫中的圖元信息添加自定義的CLR屬性或依賴屬性,最終將動態編譯成.dll文件保存。

在應用中,只需要引入所需圖元對象的.dll文件及名稱空間并實例化該類就可以得到圖元對象。可以通過該對象的CLR屬性獲得自定義的屬性信息,將依賴屬性綁定到相應的數據源,或者將此類型作為父類型,擴展方法、事件等操作。

4 已完成模塊的測試

以一個鋼卷倉庫為例,使用該平臺布置倉庫場景。首先用Pro/e軟件做出三維模型:立柱、橫梁、鋼索、鋼卷、抓手。并導出各個模型的obj文件。通過平臺圖元加載模塊加載這些obj文件,通過圖元生成模塊生成圖元對象,顯示場景如圖2所示。

圖2 場景顯示

使用平臺的屬性編輯模塊調整各模型的相對位置及各個模型的材質,并將圖元信息保存,再使用圖元管理模塊導出dll文件。在新的WPF項目中引用dll及相應名稱空間,實例化各個圖元及場景,效果如圖3所示:布置好場景后后臺可以控制場景中的每一個模型,獲得圖元屬性,根據邏輯需求實現模型的仿真動作。

圖3 完成布置后的場景

本文提出了一個倉儲仿真及三維圖元管理平臺的模型,并在WPF下實現了平臺關鍵模塊,通過對平臺模塊的測試可以看出這些模塊可以簡化倉儲仿真的開發步驟,提高相似圖元的利用率,節省開發時間。后期任務:增加仿真模塊,即從數據庫中獲取指定場景的所有圖元,自動完成場景布置,通過設定參數仿真場景,或者對于簡單的項目直接將圖元相應的屬性與實時數據相關聯,以完成場景的實時仿真。

[1]蔡靖,申婷婷,王海丹.基于Flexsim的某自動化倉儲系統的仿真結果和分析[J].制造業自動化,2012,34(7):107-122.

[2]張建奇,李墨翰,鄭偉.基于WPF的工廠物流管理系統界面設計[J].自動化技術與應用,2011,30(12):17-20.

[3]李成剛,馮靜,凌玲.基于WPF的交互繪圖系統的開發[J].微型機與應用,2011,30(6):50-52.

[4]張洪定,孟冬梅.基于 Expression Blend4中文版 WPF和Silverlight項目設計基礎[M].北京:清華大學出版社,2011.

[5]劉鐵錳.深入淺出 WPF[M].北京:中國水利水電出版社,2010.

[6]石怡.WPF使用XAML實現對SQL Server數據庫綁定的方法[J].電腦開發與應用,2011,24(10):70-74.

猜你喜歡
數據庫信息模型
一半模型
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
數據庫
財經(2017年2期)2017-03-10 14:35:35
3D打印中的模型分割與打包
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
主站蜘蛛池模板: 中文字幕 日韩 欧美| 亚洲国语自产一区第二页| 久久香蕉国产线看精品| 亚洲一级毛片免费观看| 亚洲a免费| 亚洲熟妇AV日韩熟妇在线| A级毛片无码久久精品免费| 精品欧美一区二区三区久久久| 在线观看免费国产| 玖玖精品视频在线观看| 欧美视频在线播放观看免费福利资源| 亚洲国产欧洲精品路线久久| 色天堂无毒不卡| 国产美女丝袜高潮| 香蕉视频在线观看www| 国产香蕉在线视频| 精品无码日韩国产不卡av| 国产一区自拍视频| 欧美精品黑人粗大| 全午夜免费一级毛片| 国产成人狂喷潮在线观看2345| 99无码中文字幕视频| 国产一级视频在线观看网站| 99精品国产电影| 99九九成人免费视频精品| 国产亚洲精久久久久久无码AV| 国产成人无码AV在线播放动漫| 亚洲国产91人成在线| 中文字幕精品一区二区三区视频| 亚洲中文字幕国产av| 怡春院欧美一区二区三区免费| 激情综合激情| 国产成人一区二区| 亚洲精品视频网| 综合五月天网| 亚洲欧美一区二区三区麻豆| 国内自拍久第一页| 欧美日韩免费观看| 欧美日韩亚洲国产主播第一区| 97成人在线视频| 久久久久夜色精品波多野结衣| 一级香蕉视频在线观看| 91美女视频在线观看| 91www在线观看| 日韩不卡高清视频| 欧美日韩午夜| 亚洲男人天堂网址| 久久婷婷五月综合色一区二区| а∨天堂一区中文字幕| 国产二级毛片| 正在播放久久| 91探花在线观看国产最新| 国产一级视频久久| 一级全免费视频播放| 激情六月丁香婷婷| 国产制服丝袜91在线| 亚洲国产无码有码| 极品尤物av美乳在线观看| 中文字幕亚洲精品2页| 日韩在线欧美在线| 亚洲无码高清一区| 国产97区一区二区三区无码| 无码视频国产精品一区二区| 成年人福利视频| 国产成人一区免费观看| 亚洲成人网在线播放| 欧美日韩午夜| 人妻中文久热无码丝袜| www中文字幕在线观看| 国产熟睡乱子伦视频网站| 青青草原国产免费av观看| 亚洲欧美在线综合图区| 婷婷色中文| 国产9191精品免费观看| 激情乱人伦| 国产成人精品在线1区| 成人午夜天| 一级成人a毛片免费播放| 伊人成色综合网| 久久超级碰| 无码专区在线观看| 国产成人亚洲精品无码电影|