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

S1000D規范下交互式IPC發布技術研究

2017-02-27 11:33:38趙洪利謝亞偉
計算機測量與控制 2017年1期
關鍵詞:功能模型

趙洪利,陳 飛,謝亞偉,郭 慶

(1.中國民航大學 航空工程學院,天津 300300;2.北京飛機維修工程有限公司,北京 100621)

S1000D規范下交互式IPC發布技術研究

趙洪利1,陳 飛1,謝亞偉2,郭 慶1

(1.中國民航大學 航空工程學院,天津 300300;2.北京飛機維修工程有限公司,北京 100621)

基于S1000D規范編制電子技術手冊是目前電子手冊發展趨勢;為促進S1000D規范在以信息化為中心的綜合保障技術中的應用,提高技術資料的使用性和經濟性,在研究了S1000D規范下IPC數據模塊及交互性問題的基礎上,采用VRML編寫的3D模型作為IPC的技術插圖,利用VRML自身優秀的交互性能并配合Javascript網頁腳本,實現了3D下的IPC圖文交互式發布功能,提升了IPC使用效率。

IPC; S1000D; VRML; 交互式發布

0 引言

在飛機發動機各類技術文檔中,圖解零部件目錄(illustrated parts catalog: IPC)手冊是其中之一,它把零件件號、構型標準、零件名稱、零件數量、供應商等相關信息與零部件圖形相對應,以方便維修人員進行部件查找、識別和定位部件位置。

基于S1000D規范編制IPC時,可以用VRML編寫的3D圖形替代以往的2D圖或CGM(computer graphics metafile)圖形作為IPC的技術插圖,從而以立體的形式展示零部件,以增強可視化效果。為了實現IPC的交互功能,本文探討了如何利用VRML語言本身所具備的交互能力,并結合Javascript網頁腳本,來實現網頁式IPC中的3D圖形和文本之間的交互功能。

1 基于S1000D規范編寫IPC數據模塊

S1000D規范中,數據模塊是最小的數據單元,采用XML語言進行編制。數據模塊分為兩部分,即標識狀態段和內容段。S1000D根據技術信息的類別,將數據模塊進行了分類,并且分別給出了各類數據模塊所對應的XML Schema。編寫IPC數據模塊時,采用IPD(illustrated parts data) Schema即可。

依據具體項目的業務規則和S1000D對IPD數據模塊中各元素的定義和元素屬性取值的規定,將IPC中涉及技術資料信息填入IPD數據模塊所對應的元素中,即可完成數據模塊的編寫。

2 3D模型與VRML交互功能

VRML(virtual reality modeling language)即虛擬現實建模語言,它具有平臺獨立性、可擴展性、實時圖形渲染、基于事件交互等特點。本文制作IPC時之所以采用VRML編寫3D模型,是因為一方面考慮到文件大小對頁面加載速度的影響,另一方面是基于VRML本身良好的交互特性。VRML語言編輯而成的3D模型文件是以.wrl或者.wrz為擴展名,本身是不能被目前常用的瀏覽器直接解析的,需要安裝專門的瀏覽器或者插件才能使用,本文采用的插件是Cortona 3D viewer。

2.1 VRML節點

VRML語言建立的3D模型是一個虛擬的三維空間,VRML空間采用的是卡式右手立體坐標系統(Cartesian right-handed dimensional system),由X、Y、Z 3個坐標方向構成,其方向可以用右手規則來確定。而在VRML空間中,空間單位統一使用VRML單位,與尺寸單位不具有可比性,實際應用時由開發者自主協調。

一個VRML文件通常由文件頭、節點和路由3個部分組成。節點是VRML中構成虛擬場景的基本單元,是VRML對現實世界各種對象和概念的抽象描述。VRML 2.0版本提供了54種節點,可以分為七類:幾何節點、屬性節點、編組節點、傳感器節點、插補器節點、腳本節點和其他節點。節點由域和事件組成。域的概念類似于其他計算機語言如C、C++中所說的“變量”、“數組”等,域的取值決定了虛擬場景的狀態。事件是由操作者、節點、系統本身、程序代碼產生的行為動作,節點通過事件來從外界接收信息及向外界發送信息。

VRML中的幾何圖形是通過造型節點來構造的。造型(Shape)節點定義了幾何圖形的尺寸和外觀,其節點的語法如下:

Shape{

exposedField SFNode appearance NULL

exposedField SFNode geometry NULL

}

Shape節點通過appearance 域定義了物體造型的外觀,如顏色和紋理等,通過geometry域設定幾何造型節點。VRML中幾何造型節點分為五類:原始幾何造型節點(Box、Cone、Cylinder、Sphere),點、線、面集節點(PointSet、IndexedLineSet、IndexedFaceSet、Coordinate),高度節點(ElevationGrid),突出節點(Extrusion)和文本造型節點(Text)。一般來講,對于形狀較為復雜的幾何圖形的建立,采用的多為面集結點,通過設定連接坐標并將坐標編號,然后按照坐標索引號設定點的連接順序,按此順序連接形成平面封閉的邊界線,再將平面填充,構成完整的平面造型,由此可以看出采用此方法制作的圖形相當于是中空的,但由于圖形都是封閉的,IPC圖解所展現的也并不涉及質量等物理性參數,所以并不影響幾何圖形的視覺表現。

2.2 VRML交互

交互過程實際相當于一個動畫,因此動畫過程的描述和動畫時間控制的描述是必不可少的,對于VRML語言,前者使用插補器節點和腳本節點實現,后者則需要借助傳感器節點。

插補器節點是為制作線性關鍵幀動畫而設計的,每個插補器節點都使用一個關鍵時刻和關鍵值的列表來描述動畫,關鍵時刻列表作為插補器key域值給出,關鍵值列表作為插補器keyValue域值給出。腳本Script節點是一個與VRML場景外的程序相結合的節點,它是事件處理的核心部分。Script節點內包含一個可被瀏覽器理解并執行的腳本程序。Script節點接收入事件,通過腳本程序產生結果,然后以出事件進行輸出。

傳感器節點用來感知用戶行為和目的,接收輸入信息。VRML 2.0中傳感器分為三類:時間傳感器、觸動傳感器和感知傳感器。時間傳感器的作用就是創建一個虛擬時鐘,并對其他節點發送時間值。觸動傳感器通過感知瀏覽者對于鼠標的操作,觸發并輸出事件。感知傳感器通過感知瀏覽者在虛擬場景中的觀察位置,觸發并輸出事件。

節點間的輸入、輸出事件傳遞路線即為路由。一般節點都有兩種事件即:入事件和出事件。通過路由可以從一個節點A發往另一個節點B一個值,將A節點出事件值賦予B節點入事件,從而B改變節點中某些域的域值。

2.3 視圖轉換功能集成

傳統IPC插圖,往往將一個組件主結構中各部件單獨剝離,然后標定各部分所包含的零件,如圖1所示,這種方法雖然能夠顯示組件中所有零件的信息,但也使得插圖頁面排版復雜,給使用帶來一定阻礙,這是2D平面圖本身所帶有的缺陷。而使用VRML語言編寫的3D模型則沒有這方面的顧慮,對于一個組件模型,可以在其VRML文件內部創建視圖轉換按鈕,結合插補器節點實現組件整體主視圖和爆炸視圖之間的切換。

圖1 傳統IPC插圖

利用Cortona提供的Transform2D和Layer3D這兩個擴展原型節點,可以實現創建一個獨立于3D幾何圖形的VRML場景的造型,它不會隨著場景的動作(如旋轉、縮放等)而變化位置,通過為這兩個節點添加傳感器和插補器即可完成與3D圖形的交互,實現視角切換。兩個原型節點的定義如下:

EXTERNPROTO Transform2D [

eventIn MFNode addChildren

eventIn MFNode removeChildren

exposedField SFVec2f center 0,0

exposedField MFNode children []

exposedField SFFloat rotationAngle 0.0

exposedField SFVec2f scale 1,1

exposedField SFFloat scaleOrientation 0.0

exposedField SFVec2f translation 0,0

]

[

"urn:inet:parallelgraphics.com:cortona:Transform2D"

"http://www.parallelgraphics.com/vrml/proto/Cortona/extensions.wrl Transform2D"

]

EXTERNPROTO Layer3D [

eventIn MFNode addChildren

eventIn MFNode removeChildren

exposedField MFNode children NULL

exposedField SFVec2f size -1, -1

exposedField SFNode background NULL

exposedField SFNode fog NULL

exposedField SFNode navigationInfo NULL

exposedField SFNode viewpoint NULL

]

[

"urn:inet:parallelgraphics.com:cortona:Layer3D"

"http://www.parallelgraphics.com/vrml/proto/Cortona/extensions.wrl

Layer3D"

]

圖2是利用Transform2D節點和Layer3D節點為某泵體模型創建的view1和view2兩個視圖切換按鈕,view1是泵體的主視圖,view2是部分拆解視圖。

圖2 view1(上)和view2(下)

3 圖文交互

借助VRML語言本身的優秀交互性,可以實現部分交互功能,而IPC發布形式為HTML網頁,VRML文件作為網頁的一部分嵌入其中,網頁的另一部分內容是IPC零件目錄表格。本文實現的IPC交互功能是圖文交互,即實現3D模型中的零件和零件信息之間的一一對應,為此需要用到VRML與網頁間的交互技術。

3.1 交互理論基礎

最初的交互技術中,VRML與網頁的交互功能實現主要通過兩種方式:一種是Java腳本創作接口(Java Script Authoring Interface, JSAI),另一種是外部創作接口(External Authoring Interface, EAI)。

JSAI使用Java和VRML相結合來實現VRML腳本。應用Java編寫腳本來讀取場景中的節點、向虛擬場景中的其他節點發送事件、在場景中創建新節點等等,實現腳本驅動場景動畫和場景交互的行為邏輯。

EAI的主要目的是增強VRML場景與外部環境通信聯系和整合能力,使得一個外部程序使用VRML事件模型就可以訪問和控制VRML場景中的節點。EAI的實質是同HTML頁面內的Java Applet與VRML場景間通過EAI進行交互。

然而隨著技術的發展,Java的功能不斷增強,若繼續采用JSAI和EAI進行交互編碼的話會導致無法正常交互,為了解決這個問題,新的交互機制應運而生,這種機制以Javascript腳本語言為橋梁來連接起VRML與Java Applet之間的通信,Javascript既可以訪問VRML虛擬場景又可以訪問Java Applet程序,因此通過Javascript編寫的函數,采用VRML-Javascript-Java Applet的通信機制就可以實現VRML與Java Applet間的通信,從而實現復雜交互功能。

Java Applet程序能夠實現較為復雜的交互功能,如VRML場景節點的域值參數修改、動畫的參數控制等等。本文所要實現的IPC交互功能不涉及這些參數的變動,所有參數設置、動畫路徑等等都集成在了VRML文件本身,交互所要控制的內容主要在于事件的觸發,因此單純通過嵌入網頁的Javascript腳本即可實現事件觸發功能。

3.2 圖文交互功能實現

采用Javascript腳本來實現簡單交互,在VRML文件已嵌入網頁的基礎上,首先要定義VRML虛擬場景的引擎,獲得對于虛擬場景的引用:

MyEngine=Scene.Engine

Scene.Engine中的Scene對應于嵌入代碼中的標簽的id值,如上文所列代碼中的“cortonaControl”。

建立虛擬場景引擎后,就可以借助引擎對象來訪問場景節點,引用場景節點的一般語法形式如下:

MySceneEngine.Nodes(”NodeName”).Fields(”fieldName”);

NodeName為VRML虛擬場景中的節點名稱,fieldName為該節點的域名。

建立好虛擬場景引擎,采用正確的語法引用虛擬場景的節點之后,其余交互功能的代碼編寫則要依靠根據所需功能編寫適當的Javascript函數。

要在瀏覽器上正常加載VRML文件需要安裝相應的插件,本文選用了Cortona 3D viewer插件,同時利用Cortona公司的SDK文件進行代碼解析能夠有效理解IPC API文件。以下是根據API文件中的函數編寫的具有交互功能的部分主程序代碼:

function initialize_api(data) {

if(with3D){

ipcApi = new IPCApi(cortona);

if(!isMSIE)ipcApi.ATP=1;

workTable = new IPCTable(document.getElementById("mainTable"));

if(ipcApi.checkCortonaComponent()){

var verC3D = 7;

if(!isMSIE){

try{verC3D= parseInt(cortona.Version);}catch(err){}

}

if(!("Version" in cortona) || verC3D<7){

alertx(iWarningCortonaOldVersion);

}

workTable.on_selection_changed= on_3D_selection;

ipcApi.SKIP_TRANSPARENCY_THRESHOLD_LEVEL=0;

ipcApi.on_part_over = new Function('n', 'if (!isCalloutsMode) workTable.onOver3D(n);');

ipcApi.on_part_click = new Function('part', 'button', 'shift', 'X', 'Y','if(!isCalloutsMode)workTable.onClick3D(part, button, shift, X, Y);');

ipcApi.on_mouse_up = _onCortonaMouseUp;

ipcApi.on_mouse_down = _onCortonaMouseDown;

ipcApi.on_mouse_move = _onCortonaMouseMove;

ipcApi.on_reset = new Function('workTable.clearHighlight(); navControl.checkMode();');

ipcApi.on_simulation_load = on_simulation_load;

ipcApi.on_view_changed = on_view_changed;

ipcApi.loadMetadate(data);

on_set_properties(data);

}else{

}

}

這段代碼主要功能就是設置鼠標在懸停、點擊、移出等操作時所需要的交互函數設置,具體各個函數的完整定義的程序代碼這里不作詳細解釋。在Javascript腳本中定義的函數想要起到作用需要在網頁代碼中進行函數的調用,調用函數如下:

這幾個調用函數大體結構式非常相似,其意義為,對于嵌入VRML文件的名稱為”cortonaControl”的

標簽,如果有鼠標移入、點擊等事件發生,則執行相對應的函數。

4 發布成果展示

IPC數據模塊是存儲信息的載體,要想看到信息內容,需要發布引擎根據發布樣式表,把XML數據模塊轉換成希望的展現樣式。本文采用HTML網頁形式展現信息內容的,從XML到HTML的轉換是通過XSL樣式表進行的。實現的交互式功能包括:1)部件主視圖和爆炸視圖的切換;2)當鼠標懸停于IPC表格某一行上方(或3D幾何圖形某一零件上)

時,相對應的3D圖上的零件(或IPC表格中對應的零部件描述行)的顏色顯示會產生變化,參見圖3。3)當進行鼠標點擊操作時,則產生更加明顯的顏色變化。場景視圖的切換不會影響圖形與文本的交互功能。這些效果簡化了IPC查詢操作,同時3D模型的使用也使得零件位置信息和外觀信息更為立體直觀,更好識別。

圖3 鼠標懸停(左)與點擊(右)交互效果

5 結束語

本文基于S1000D規范創建IPC數據模塊,采用VRML語言編制的3D模型代替以往的2D圖形作為IPC技術插圖,基于VRML交互技術實現視圖切換功能,結合VRML自身優秀的交互性能和Javascript腳本程序,實現了交互式IPC發布,優化了IPC的使用方式和使用效率。

[1] 薛慶文,辛允東.虛擬現實VRML程序設計與實例[M].北京:清華大學出版社,2012.

[2] 周 偉.基于S1000D標準交互式電子技術手冊的研究[D].青島:青島科技大學.2012.

[3] 王 哲.基于VRML的三維交互式網頁的設計[J].吉林省經濟管理干部學院學報,2010,10(5):69-71.

[4] Nicholas C.Zakes著,李松峰,曹力 譯. Javascript高級程序設計[M].北京:人民郵電出版社,2012.

[5] 張金釗,張金銳,等. VRML編程實訓教程[M].北京:北京交通大學出版社,2008

[6] Micheal Moncur. JavaScript入門經典[M].王 軍譯.北京:人民郵電出版社,2012.

Study on Publishing Technology of Interactive IPC ased on S1000D Specification

Zhao Hongli1, Chen Fei1, Xie Yawei2, Guo Qing1

(1.College of Aeronautical Engineering, Civil Aviation University of China, Tianjin 300300, China; 2.Aircraft Maintenance and Engineering Corporation, Beijing 100621, China)

It is the tendency of electronic manual publishing by adopting S1000D specification to generate electronic technical manual. In order to promote the application of S1000D standard in the integrated logistics support with information as the center, and improve the operation and economy of technical materials, the problem of IPC data module and the interaction based on S1000D is studied. Using VRML 3D models as IPC technical illustrations,benefited from VRML convenient interactive characters, 3D IPC graphical interactive publishing features were programmed in Javascript web scripts and serviced, which improves IPC performance.

IPC; S1000D; VRML; interactive publishing

2016-07-17;

2016-09-06。

趙洪利(1964-),天津人,副教授,碩士研究生導師,主要從事發動機維修與維修管理方向的研究。

1671-4598(2017)01-0152-04

10.16526/j.cnki.11-4762/tp.2017.01.043

TP311

A

猜你喜歡
功能模型
一半模型
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
關于非首都功能疏解的幾點思考
懷孕了,凝血功能怎么變?
媽媽寶寶(2017年2期)2017-02-21 01:21:24
“簡直”和“幾乎”的表達功能
3D打印中的模型分割與打包
FLUKA幾何模型到CAD幾何模型轉換方法初步研究
中西醫結合治療甲狀腺功能亢進癥31例
主站蜘蛛池模板: 亚洲综合色吧| 国产成人精品视频一区二区电影| 亚洲 欧美 日韩综合一区| 婷婷综合亚洲| 午夜一区二区三区| 国产精品99在线观看| 国产精品任我爽爆在线播放6080| 青草娱乐极品免费视频| 欧美精品1区2区| 国产亚洲精品91| 亚洲天堂视频在线观看| 激情网址在线观看| 亚洲综合18p| 人禽伦免费交视频网页播放| 亚洲三级影院| 在线观看免费AV网| 嫩草在线视频| 久久久噜噜噜久久中文字幕色伊伊| 午夜福利免费视频| 日韩国产欧美精品在线| 国产欧美在线观看一区| 91在线激情在线观看| 成人午夜在线播放| 国产成人禁片在线观看| 国产本道久久一区二区三区| 色精品视频| 无码人妻热线精品视频| 最新无码专区超级碰碰碰| 欧美精品成人一区二区在线观看| 日韩无码真实干出血视频| igao国产精品| 在线观看亚洲精品福利片| аⅴ资源中文在线天堂| 91福利一区二区三区| 2020最新国产精品视频| 一区二区日韩国产精久久| 亚洲最大福利视频网| 日韩天堂网| 国产欧美另类| 成人另类稀缺在线观看| 国产91视频观看| 国产欧美日韩va另类在线播放| 一级片一区| 日本精品视频一区二区| 亚洲午夜福利精品无码不卡| 亚洲有无码中文网| 欧美日韩亚洲综合在线观看| 欧洲熟妇精品视频| 日韩欧美国产成人| 久久精品国产免费观看频道| 亚洲天堂首页| 亚洲一级色| 色婷婷成人| 少妇被粗大的猛烈进出免费视频| 一本大道视频精品人妻| 成人国产免费| 四虎国产永久在线观看| 久久人搡人人玩人妻精品一| 日韩欧美综合在线制服| 超碰91免费人妻| 一级毛片免费不卡在线视频| 欧美日韩国产在线人成app| 色噜噜狠狠狠综合曰曰曰| 亚洲色图综合在线| 浮力影院国产第一页| 国产国拍精品视频免费看 | 九九九国产| 日韩精品免费在线视频| 精品国产www| 亚洲精品免费网站| 国产伦片中文免费观看| 久久6免费视频| 亚洲精选高清无码| 91网在线| 尤物亚洲最大AV无码网站| a级毛片视频免费观看| 日韩午夜福利在线观看| 波多野结衣一区二区三区88| 97超碰精品成人国产| 亚洲激情99| 人妻精品全国免费视频| a天堂视频在线|