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例
主站蜘蛛池模板: 日韩AV手机在线观看蜜芽| 青青草91视频| 国产免费网址| 国产AV无码专区亚洲A∨毛片| 欧美高清国产| 国产网友愉拍精品视频| 在线观看国产黄色| 日本精品一在线观看视频| 国产成人a毛片在线| 伊人久久婷婷| 国产小视频在线高清播放| 国产毛片一区| 国产自产视频一区二区三区| 中文字幕久久亚洲一区| 亚洲一区二区三区麻豆| 99精品欧美一区| 在线观看国产精品第一区免费| 欧美日韩国产一级| 欧美日韩一区二区三区四区在线观看| 日韩东京热无码人妻| 亚洲人成网7777777国产| 国产免费人成视频网| 国产精品美女免费视频大全| 欧美在线网| 国产sm重味一区二区三区| 黄片在线永久| 无码专区国产精品第一页| 亚洲娇小与黑人巨大交| 国产好痛疼轻点好爽的视频| 欧美国产在线看| 99爱视频精品免视看| 日韩精品高清自在线| www亚洲天堂| 久久综合丝袜长腿丝袜| 人人妻人人澡人人爽欧美一区| 伊人久热这里只有精品视频99| 亚洲av无码专区久久蜜芽| 999国产精品永久免费视频精品久久| 亚洲狼网站狼狼鲁亚洲下载| 婷婷色一二三区波多野衣| 国产福利在线免费观看| 亚洲精品手机在线| 久99久热只有精品国产15| 色噜噜狠狠狠综合曰曰曰| 欧美伦理一区| 欧美综合区自拍亚洲综合天堂| 久久永久免费人妻精品| 国产精品欧美日本韩免费一区二区三区不卡| 中文无码毛片又爽又刺激| 四虎永久在线精品国产免费| 欧美精品啪啪| 人妻无码中文字幕第一区| 狠狠色丁香婷婷| 高清国产va日韩亚洲免费午夜电影| 欧美翘臀一区二区三区| 福利片91| 国产一级裸网站| 亚洲国语自产一区第二页| 日韩不卡免费视频| 2019年国产精品自拍不卡| 亚洲一级无毛片无码在线免费视频| 欧美日韩第三页| 99精品这里只有精品高清视频| 超清人妻系列无码专区| 91亚洲精品第一| 久久亚洲精少妇毛片午夜无码| 精品少妇人妻av无码久久| 国产美女精品在线| 露脸一二三区国语对白| 亚洲美女久久| 无码丝袜人妻| 免费国产在线精品一区 | 亚洲精品无码av中文字幕| 久久综合干| 国产呦精品一区二区三区网站| 国产国语一级毛片在线视频| 国产激情影院| 国产在线观看人成激情视频| 福利视频一区| 91蜜芽尤物福利在线观看| 国产人免费人成免费视频| 婷婷亚洲视频|