技術報告基于Three.js的機械產品自動裝配演示_第1頁
技術報告基于Three.js的機械產品自動裝配演示_第2頁
技術報告基于Three.js的機械產品自動裝配演示_第3頁
技術報告基于Three.js的機械產品自動裝配演示_第4頁
技術報告基于Three.js的機械產品自動裝配演示_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、計劃類別 項目編號 項目技術報告課題名稱 項目主持人 承擔單位 題目:基于Three.js的機械產品自動裝配演示隨著前端展示技術的發(fā)展,HTML5和WebGL技術在機械領域的應用正逐漸增多,這為機械產品在網頁上的裝配展示提供了新的解決途徑。為了避免網頁展示所需的渲染插件的麻煩,提出了基于WebGL的第三方類庫Three.js的裝配展示平臺的構建方法。本文對網頁上實現(xiàn)簡單三維模型展示流程和機械產品網頁裝配的功能進行了分析,顯示了WebGL的開放性、免插件、跨平臺、硬件加速的優(yōu)勢。在網頁上實現(xiàn)機械的裝配,方便了用戶的觀看和操作,取得了良好的效果。關鍵詞:HTML5;Three.js;無渲染;Web

2、GL;裝配Abstract:With the development of front-end display technology,using HTML5 and WebGL technology in the field of machinery is gradually increased,which provides a new way for the assembly of mechanical products demonstrated in web pages.In order to avoid the trouble of the rendering plug-in neede

3、d for the web page display,the construction method of the assembly display platform of the third party class library Three.js based on WebGL is proposed.This paper analyzes the function of displaying simple 3D models on web pages and functions of web page assembly of mechanical products,and shows th

4、e advantages of open,plug-in free,cross-platform,hardware-acceleration of WebGL.The realization of mechanical assembly on the web facilitates the viewing and operation of the users,and has achieved good results.Keywords:HTML5;Three.js;no rendering;WebGL;assembling1 引言(Introduction)隨著CAD/CAM技術在制造業(yè)領域的

5、應用逐漸擴大,產品的設計效率得到了有效的提高,同時也提高了生產過程的自動化水平。但是,產品的裝配環(huán)節(jié)還存在著一些問題,因為此環(huán)節(jié)與對于技術人員的知識及經驗的積累要求較高,這一約束使制造業(yè)自動化的發(fā)展受到了極大的制約。裝配設計的性能和保證產品質量和可靠性,降低產品成本,提高競爭力具有重要意義1。隨著三維畫圖軟件技術的發(fā)展,技術人員開始在復雜的CAD應用軟件(如Pro/E,UG,Soildworks,Creo等)上進行機械產品的虛擬裝配,此種裝配方式存在著一些問題。例如:不同軟件對于電腦的配置要求不同、不同軟件所畫的圖之間不能互相利用、所需要生成的裝配圖文件存儲量過大、在向客戶展示時對軟件依賴性強

6、,不方便操作、對技術人員的專業(yè)素質要求高等。尋求一種操作簡便、開放性高、可跨平臺且對硬件要求低的裝配展示方式,成為了研究人員迫切需要解決的問題2。隨著前端網頁技術的迅速發(fā)展,在網頁上實現(xiàn)產品的展示技術逐漸受到了人們的青睞?;谛聵藴实腍TML5和WebGL技術網頁展示方法,使上述難題得到了一定的解決。在網絡環(huán)境中,用戶只需將每個機械零部件保存為單獨的文件,通過JSON格式的語言將零件的相關信息反饋給瀏覽器,借助于瀏覽器就可以很清晰的了解三維的機械產品的裝配順序,操作簡單方便且對三維繪圖的軟件依賴性低。本文闡述了基于Three.js的機械產品自動裝配的動畫演示平臺,使得用戶能夠在客戶端可以體會到

7、一些三維模型逼真的裝配效果,從而為實物裝配提供一定的指導,具有很好的應用價值。2 關鍵技術(Key technology)2.1 虛擬裝配應用現(xiàn)狀的研究機械產品的裝配是在一定的精度和技術要求下,將一組零散且無序的零件按照最終所要得到產品的要求進行組合的過程。產品零件裝配的序列規(guī)劃則成為其無法繞開的核心內容,其對產品質量有著決定性的作用。許多學者通過對裝配過程的大量研究,提出了自動化途徑的方法完成裝配,這種方式只能依靠產品的幾何拓撲結構進行推理,缺乏裝配過程因素和操作因素,易陷入組合爆炸問題3。據統(tǒng)計,在產品的生產過程中大約1/3以上的人直接或間接從事與裝配有關的活動4,而產品的裝配費用所占的成

8、本,大約為整個生產成本的30%50%(如果產品比較復雜,這個比例則會更高)。除此之外,產品的自動化生產往往被裝配環(huán)節(jié)所制約,產品是否能夠實現(xiàn)自動化裝配的關鍵在于其裝配性能的好壞。因此,一個合理的裝配順序規(guī)劃和工藝規(guī)劃,對于產品設計的改進、成本的降低、產品生產周期的縮短具有重要意義。在產品的開發(fā)過程中,通常傳統(tǒng)的做法都是在借助實物模型的基礎上來對產品的裝配性能進行分析和評價,此種方法不但花費更多的時間、浪費更多的精力、有時候準確性也很差,而且又不能根據需要及時、快捷地進行修改,使產品的生命周期有所延長,浪費了財力和物力。針對上述問題,研究人員提出了虛擬裝配技術,此種技術為解決產品的裝配問題提供了

9、新的途徑。工程師可以在虛擬環(huán)境下完成產品的裝配過程。這樣,工程師在裝配過程中可以融入自身經驗的同時,又可以用產生的裝配信息完善產品的裝配規(guī)劃,然后進行整理歸納,將經驗的形成規(guī)則存儲到知識庫。對于機械產品的規(guī)劃路徑演示,有技術人員提出可通過真人的現(xiàn)場演示來展現(xiàn),也有人提出可以以視頻的形式展現(xiàn)出來,但這些都存在著一些問題,人員的表達方式是否完整、視頻的演示畫面是否清晰等?;趖hree.js的網頁展示技術可以使上述問題得到一定的解決。在網絡環(huán)境中,用戶只需借助于瀏覽器就可以對三維的機械模型的裝配流程有清晰的了解。2.2 以HTML5標準為載體呈現(xiàn)三維圖像在沒有HTML5標準之前,并不是所有版本的瀏

10、覽器都支持HTML、CSS和JavaScript,常常因為打開瀏覽器的版本不同而效果不同5。HTML5通過對以前的技術進行改進和總結,制訂出了新的標準,并且在原來的基礎上添加了一些新的功能,以便打造出一種內容豐富、操作簡捷、免插件且跨平臺性更好的產品,它可以在各系統(tǒng)平臺上實現(xiàn)的無縫鏈接與交互6。從目前來看,效果還是相當不錯的,部分主流瀏覽器都已支持HTML5,例如,F(xiàn)irefox、Opera、Chrome、IE9+等7??傮w來說,HTML5有下面的優(yōu)點8:(1)加入了幾個新的Tag,使得瀏覽器表現(xiàn)更加豐富。(2)使得在瀏覽器中實現(xiàn)了視頻與音頻的展示。(3)取代了Silverlight與Flas

11、h,不用任何插件可以在客戶端實現(xiàn)它們的功能。(4)提高了用戶體驗。(5)將會在網頁三維游戲與移動設備應用中發(fā)揮重要作用。2.3 基于WebGL的畫面渲染WebGL本身是一套Javascript API,也是一種3D繪圖標準,可以在兼容WebGL的瀏覽器中對交互式的圖形場景進行渲染。WebGL可以通過Web頁面的Canvas標簽,完全集成在支持GPU(Graphics Processing Unit)加速的Web瀏覽器中。在Web應用程序中WebGL的工作模式如圖1所示。依據WebGL規(guī)范,對底層的WebGL圖形接口進行簡單的封裝,形成了更出色的框架Three.js。通過掩蓋細節(jié)來加快產品的開發(fā)

12、效率,降低了開發(fā)者的負擔。在各版本的瀏覽器3D效果方面,它的表現(xiàn)和兼容性能也很出色。Three.js通過創(chuàng)建所需的基本元素,如點、線、面、矩陣等,通過將相機(Cameras)、物體(objects)、光線(lights)等添加到場景(Scene)中,借助渲染器(renderer)進行場景渲染,即可實現(xiàn)基本的網頁三維模型展示9。3 基于Three.js的機械自動裝配展示系統(tǒng)的創(chuàng)建(Establishment of automatic mechanical assembly and display system based on Three.js)3.1 場景設置場景實際上相當于一個三維空間,后續(xù)

13、添加的物體模型都是添加到場景中去,它相當于一個大的容器。一般來說,場景的建立十分簡單,只需在程序最開始的時候進行實例化,然后就可以將物體模型添加到場景中。其格式如下:var scene;function initScene() scene=new THREE.Scene();3.2 攝像機設置Three.js中,相機依據三維空間中的物體投影到二維空間方式的不同,將投影分為兩種方式:透視投影和正投投影。透視投影和日常生活中人眼觀看物體的原理是一致的,就是視點越近的物體看起來越大,當物體離得較遠時看起來會較小;正投投影則是不管視點和物體有多遠的距離,所要繪制的物體都按照統(tǒng)一的大小進行。另外,相機用

14、的是右手坐標系工作原理,使用時需要設置位置坐標和視野中心坐標。其格式如下:var camera;function initCamera()camera=newTHREE.PerspectiveCamera(40,window.innerWidth/window.innerHeight,1,100);camera.position.set(-5.00,3.43,11.31);camera.lookAt(new THREE.Vector3(-1.22,2.18,4.58);3.3 光源設置為了優(yōu)化場景中的視覺效果,可添加適當的光源來展現(xiàn)相應的主題和效果。為了模型在放大、縮小、旋轉時更好的顯示,則需

15、要多種光源的結合。在一個場景中可以有多個光源,其基本上都是環(huán)境光和其他幾種光源的組合。其格式如下:var pointLight;function pointLightpointLight=new THREE.PointLight(0 xffffff,1);pointLight.position.copy(camera.position);scene.add(pointLight);3.4 渲染器設置渲染器就是在已經定義好的場景中,通過添加好相機之后,調用渲染函數使存在于三維空間里的模型以二維平面的形式顯現(xiàn)出來的功能。其格式如下:var renderer;function initThree()

16、renderer=new THREE.WebGLRenderer(antialias:true );renderer.setClearColor(0 x000000,1);renderer.setPixelRatio(window.devicePixelRatio);renderer.setSize(window.innerWidth,window.innerHeight);container.appendChild(renderer.domElement);3.5 物體模型導入及自動裝配的實現(xiàn)場景中的模型可以是Three.js中自帶的規(guī)則模型,也可以是通過3D建模工具導出的模型文件。HTML

17、腳本本身自帶一些簡單的規(guī)則三維模型,如正方體,球等。由于機械裝備一般都比較復雜,用簡單的幾何體組合的方式很難將其表現(xiàn)出來。基于此,可以先通過3dsMax、PRO/E、UG和SolidWorks制作的三維模型,再將其通過軟件轉化成瀏覽器可加載的文件格式,添加到場景中。Three.js自帶了加載json的方法,所以不需要額外引用插件?,F(xiàn)在的JSON格式有兩個類型,一種需要JSONLoader加載;另一種需要ObjectLoader加載。本次實驗采用3dsmax把模型格式轉換成obj,再導入blender處理好模型后導出json文件。其引用的格式如下:new THREE.ObjectLoader()

18、.load(models/json/pump/pump.json,function (model) scene.add(model);mixer=new THREE.AnimationMixer(model);mixer.clipAction(model.animations0).play();animate(););JSON文件中的模型的基本信息描述格式如下:geometries:uuid:CFB2696C-B6EA-4FCA-96E3-EA3C959F148C,type:Geometry,data:vertices:-0.46194,1.25,-0.191341;/頂點數normals:-

19、0.92388,0,-0.382683;/頂點法線向量uvs:0.603154,0.532581,0.607054,;/uv映射faces:42,0,1;/threejs內的類型,存儲了頂點vertices的索引materials:uuid:686b7161-539c-4515-9ee1-90bad1383a69,type:MeshLambertMaterial,name:Blue_S,map:7e397f39-0de8-45b2-88fd-7006e65ff9e5,/漫射貼圖color:16777215各零件出現(xiàn)的時間和軌跡描述格式:animations:name:default,/動畫名稱

20、fps:24,/幀頻tracks:type:vector3,name:camTrick_G.position,keys:/動畫幀,每一幀都有當前骨骼的信息value:-77.460685,-1.56741,-60.086754,time:1/當前幀的時間,value:-68.295416,-1.56741,-66.434409,time:156,value:-68.562223,-1.482206,-62.153825,time:157,value:0,0,0,time:170該模塊的工作流程及自動裝配展示技術的實現(xiàn),如圖2所示。其最終效果如圖3所示。4 結論(Conclusion)通過應用W

21、ebGL技術,調用Three.js、Detector.js、TrackballControls.js、stats.min.js等加載器,借助STLLoader.js來導入外部建好的模型;通過Three.js自帶的渲染器(Renderer)、場景(Scene)、照相機(Camera)、光源(Light)和著色器功能設置,使得3D模型在網頁中能夠給人以真實絢麗的3D效果;用TrackballControls.js實現(xiàn)鼠標的操作功能,在通過JSON語言給出物體的顏色、坐標、開始出現(xiàn)時間、裝配的時間等實現(xiàn)網頁自動裝配功能。參考文獻(References)1 Xinping Yu,Peng Gu,Xia Liu,et al.Modeli

溫馨提示

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

評論

0/150

提交評論