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

CGM圖形解析技術(shù)在民用航空交互性電子手冊(cè)中的應(yīng)用

2022-02-19 04:24:12上海航空工業(yè)集團(tuán)有限公司邱昱
關(guān)鍵詞:定義結(jié)構(gòu)

上海航空工業(yè)(集團(tuán))有限公司 邱昱

隨著國內(nèi)民用航空業(yè)的不斷進(jìn)步和發(fā)展,交互性電子手冊(cè)(IETM)也逐漸成為民用航空業(yè)在生產(chǎn)、交付、運(yùn)營流程中的一個(gè)重要應(yīng)用。為了能夠使民航飛機(jī)提供便捷高效的維修、技術(shù)支持保障。對(duì)民用航空交互性電子手冊(cè)的研究就顯得尤為重要。其中CGM作為民用航空交互性電子手冊(cè)的重要插圖格式,對(duì)電子手冊(cè)的交互性提升、信息查詢效率有顯著提升效果。本文展示了一種基于Web的CGM解析技術(shù),介紹了CGM圖片在交互性電子手冊(cè)的應(yīng)用。

1 CGM發(fā)展背景

CGM(Computer Graphics Metafile)計(jì)算機(jī)圖形元文件,是一種廣泛應(yīng)用于航空航天、石油天然氣、船舶制造業(yè)等領(lǐng)域技術(shù)出版物的通用插圖格式。CGM圖形最早出現(xiàn)于20世紀(jì)80年代。早期,在許多圖形預(yù)覽類型和CAD的應(yīng)用程序中對(duì)CGM的支持非常常見,然而隨著其他圖片格式的發(fā)展和CGM標(biāo)準(zhǔn)的不斷演變,一些供應(yīng)商和圖片軟件編碼制作者并沒有對(duì)CGM的格式支持進(jìn)行隨時(shí)更新。1999年,一些致力于CGM文件結(jié)構(gòu)的組織共同成立了CGM OPEN基金會(huì),致力于加速CGM文件的進(jìn)一步使用和實(shí)施[1]。

在航空航天、國防安全、汽車制造商、石油天然氣等領(lǐng)域的IETM電子技術(shù)出版物的應(yīng)用系統(tǒng)中,無論是基于S1000D標(biāo)準(zhǔn)、HDBK-511標(biāo)準(zhǔn)還是ATA標(biāo)準(zhǔn),均使用CGM矢量圖作為技術(shù)出版物插圖,在這些行業(yè)內(nèi)部開發(fā)使用的交互性電子手冊(cè)系統(tǒng)中,普遍使用了CGM作為主要圖形類型[2]。使用CGM作為技術(shù)出版物的插圖,在信息查詢、數(shù)據(jù)格式化處理、圖片信息熱點(diǎn)跳轉(zhuǎn)、內(nèi)容導(dǎo)航方面具有眾多優(yōu)點(diǎn)。

2 CGM的應(yīng)用局限性

隨著因特網(wǎng)的發(fā)展,以瀏覽器為中心的B/S網(wǎng)絡(luò)結(jié)構(gòu)逐漸開始替代傳統(tǒng)的C/S網(wǎng)絡(luò)模式。目前,航空業(yè)基于S1000D標(biāo)準(zhǔn)實(shí)現(xiàn)的交互性電子手冊(cè)系統(tǒng),都是基于B/S瀏覽器結(jié)構(gòu)的。雖然CGM OPEN基金會(huì)早在1999年就發(fā)布了Web CGM1.0標(biāo)準(zhǔn),以滿足CGM在瀏覽器的瀏覽需求。但是隨著互聯(lián)網(wǎng)技術(shù)的進(jìn)步,現(xiàn)代瀏覽器和HTML5技術(shù)發(fā)展迅速,CGM僅能實(shí)現(xiàn)在傳統(tǒng)的支持Active X的IE瀏覽器中實(shí)現(xiàn)預(yù)覽訪問功能。如今,谷歌和微軟紛紛表示放棄對(duì)IE瀏覽器的支持,所以在現(xiàn)代瀏覽器高速發(fā)展的今天,現(xiàn)代瀏覽器并不能對(duì)CGM類型的圖片支持做到及時(shí)更新。

目前,在航空業(yè)的IETM系統(tǒng)中,預(yù)覽和訪問CGM類型圖片一直依賴于商業(yè)化插件集成系統(tǒng),如Larson公司的VizEx插件。CGM圖形的解析技術(shù)主要掌握在少數(shù)供應(yīng)商如PTC軟件和Larson軟件公司,PTC軟件公司的Arbortext IsoDraw產(chǎn)品和Larson公司提供的前端開發(fā)組件VizEx,提供了編輯、預(yù)覽和解析CGM圖形的功能。這些成品的商用軟件,這些商業(yè)軟件廣泛的應(yīng)用于波音、空客等飛機(jī)制造商或航空公司的各類技術(shù)出版物編輯與開發(fā)工作中,但商業(yè)軟件封閉性和可控性始終是難以解決的問題[3]。

3 CGM結(jié)構(gòu)解析

3.1 CGM元文件結(jié)構(gòu)概述

CGM元文件整體結(jié)構(gòu)如圖1所示,所有基本元素都編碼為統(tǒng)一的編碼格式。其中,圖片組成部分由多個(gè)圖片元素組成,每個(gè)圖片元素相對(duì)于其他圖片元素都是相對(duì)獨(dú)立的。換言之,每個(gè)單獨(dú)的圖片元素在得到解釋時(shí),畫面就能夠?qū)崿F(xiàn)即時(shí)渲染和隨機(jī)存取了,這些圖片之前沒有任何的前趨、先后關(guān)系,因此各個(gè)圖片元素的改變不影響畫面整體的結(jié)構(gòu)和展示[4-7]。

圖1 CGM元文件結(jié)構(gòu)圖Fig.1 The structure of computer graphics metafile

其中向量元素的定義有以下十類:

(1)分隔符元素。在CGM元文件中用以界定元素范圍、維持文件的結(jié)構(gòu)性、如文件開始標(biāo)記、圖片開始標(biāo)記。

(2)元文件描述符元素。包含描述文件功能內(nèi)容、默認(rèn)條件、文件版本標(biāo)識(shí)和CGM特征。

(3)圖片描述符元素。包含解釋和描述圖片內(nèi)容的各種類型,如圖片包含的字體列表、圖片所包含的元素列表、字符集、圖片顏色模式、顏色校準(zhǔn)元素集、字體屬性、字形映射等各類描述圖片的基本元素。

(4)控制元素。包含控制類基本數(shù)據(jù)類型如SI(Signed Integer)、UI(Unsigned Integer)、C(Character)、FP(Fixed Point Real)、FP(Floating Point Real)五種類型,除了字符類型外,每種類型都可以使用多種精度定義。這些控制類的數(shù)據(jù)類型用以表達(dá)圖片中存在的數(shù)字變量和文本變量。

(5)原始圖像元素。CGM圖片的原始圖像元素由折線PolyLine、多點(diǎn)標(biāo)記PolyMarker、文本Text、限制性文本Restricted Text、擴(kuò)展文本Append Text、多邊形PolyGon、多邊形集合PolyGon Set組成,這些最基礎(chǔ)的圖像圖形共同構(gòu)成了CGM文件的圖形結(jié)構(gòu),是CGM圖片的實(shí)現(xiàn)基礎(chǔ)[8-9]。

(6)屬性元素。用以描述原始圖像元素的基本屬性,如線條寬度、字體大小、多邊形填充效果、填充顏色等。

(7)轉(zhuǎn)義元素。用以描述圖片和設(shè)備相關(guān)、系統(tǒng)相關(guān)的元素,如不同設(shè)備之間的字體編碼不同,需要用轉(zhuǎn)移元素進(jìn)行控制和描述。

(8)外部元素。用以描述與圖形圖像本身沒有直接關(guān)聯(lián)的其他信息。

(9)段元素。用以對(duì)圖片進(jìn)行操作的元素,如對(duì)圖片進(jìn)行復(fù)制、分組。

(10)應(yīng)用程序結(jié)構(gòu)元素。用以對(duì)圖片進(jìn)行響應(yīng)應(yīng)用的元素,如熱點(diǎn)鏈接、檢索和其他特定的應(yīng)用程序相關(guān)的操作。

3.2 CGM元文件二進(jìn)制編碼結(jié)構(gòu)

CGM元文件的二進(jìn)制編碼是由8位二進(jìn)制的順序集合組成的邏輯數(shù)據(jù)結(jié)構(gòu),即CGM數(shù)據(jù)以8字節(jié)作為基本數(shù)據(jù)單位。根據(jù)源文件不同元素的數(shù)據(jù)長(zhǎng)度及二進(jìn)制數(shù)據(jù)對(duì)齊方式,在文件結(jié)構(gòu)中使用兩種不同大小的字段定義,這兩種不同大小的字段用于說明元素的類別、結(jié)構(gòu)和參數(shù)的內(nèi)容。在8字節(jié)基礎(chǔ)上,CGM使用兩個(gè)8字節(jié)作為一個(gè)“字”,用以在多平臺(tái)計(jì)算機(jī)上優(yōu)化二進(jìn)制元文件的處理。所以,CGM基本指令的二進(jìn)制表示如圖2所示,CGM圖片的所有基本元素遵照短格式指令模式或長(zhǎng)格式指令模式構(gòu)成[10]。

圖2 短指令格式和長(zhǎng)格式指令模式結(jié)構(gòu)圖Fig.2 The structure diagram of short and long instruction format mode

其中,元素類別是指在3-1章節(jié)中定義的元素類別,表1是相應(yīng)元素類別編碼所對(duì)應(yīng)的二進(jìn)制編碼表。對(duì)于每個(gè)類別都包含了一個(gè)類別的詳細(xì)定義,定義CGM元文件元素、元素ID、參數(shù)類型、參數(shù)列表長(zhǎng)度和參數(shù)規(guī)范。根據(jù)CGM的文件結(jié)構(gòu)和二進(jìn)制編碼結(jié)構(gòu)定義,我們使用Java語言實(shí)現(xiàn)了CGM解析工具。

表1 元素類別定義表Tab.1 Element category definition table

4 CGM文件解析及實(shí)現(xiàn)

根據(jù)對(duì)CGM元文件結(jié)構(gòu)和CGM元文件二進(jìn)制編碼的研究,我們將CGM的實(shí)現(xiàn)分為結(jié)構(gòu)定義、元素解析、圖形渲染三個(gè)部分。

4.1 結(jié)構(gòu)定義

根據(jù)CGM的指令結(jié)構(gòu),定義指令基礎(chǔ)類,并實(shí)現(xiàn)CGM結(jié)構(gòu)讀取,Command基類實(shí)現(xiàn)了CGM基礎(chǔ)數(shù)據(jù)的讀取,其實(shí)現(xiàn)如下。

public class Command implements Cloneable {

protected int args[];

protected String fileName=null ;

protected int currentArg=0;

private int posInArg=0;

private final int elementClass;

private final int elementCode;

public Command(int ec,int eid,int l,DataInput i n) throws IOException {

this.elementClass = ec;

this.elementCode = eid;

if (l != 31) {

this.args = new int[l];

for (int i = 0; i < l; i++)

this.args[i] = in.readUnsignedByte();

if (l % 2 == 1) {

int skip = in.readUnsignedByte();

}

}else{

boolean done=true;

int a=0;

do{

l=read16(in);

if(l == -1)

break;

if((l&(1<<15))!=0){

done=false;

l = l&~(1<<15);

}

else{

done=true;

}

if(this.args==null) {

this.args=new int[l];

}

else {

this.args=Arrays.copyOf(this.args,this.args.length+l);

}

for(int i=0;i

this.args[a++] =in.readUnsignedByte();

if (l % 2==1){

int skip=in.readUnsignedByte();

assert(skip==0):"skipping data";

}

}

while (!done);

}

}

}

4.2 元素解析

在實(shí)現(xiàn)了結(jié)構(gòu)定義和基本數(shù)據(jù)讀取的基礎(chǔ)上,根據(jù)CGM文件結(jié)構(gòu)的向量元素分類,進(jìn)行分類數(shù)據(jù)讀取。每個(gè)元素類別都定義了一個(gè)抽象類,用以描繪這個(gè)類別的共有特性和方法,每個(gè)類別都有若干個(gè)實(shí)現(xiàn)類,用以實(shí)現(xiàn)具體的向量元素,抽象類的讀取分類方法如下,由于目前基于交互性電子手冊(cè)系統(tǒng)應(yīng)用場(chǎng)景限制,在日常的CGM圖片中,通常不存在段元素和應(yīng)用程序元素,所以CGM中的段元素和應(yīng)用程序結(jié)構(gòu)元素尚未實(shí)現(xiàn),但是CGM圖片的整體和細(xì)節(jié)都不會(huì)受到影響[11]。

protected static Command readCommand(DataIn put in,int ec,int eid,int l,String fileName,String... params) throws IOException {

switch (ElementClass.getElementClass(ec)) {

case DELIMITER_ELEMENTS:// 0

return Delimiter.readDelimiterElements(in,ec,eid,l,fileName,params);

case METAFILE_DESCRIPTOR_ELEMENTS://1

return MetafileDescriptor.readMetaFileDescriptor Elements(in,ec,eid,l,fileName);

case PICTURE_DESCRIPTOR_ELEMENTS://2

return PictureDescriptor.readPictureDescriptorEle ments(in,ec,eid,l);

case CONTROL_ELEMENTS://3

return Control.readControlElements(in,ec,eid,l);

case GRAPHICAL_PRIMITIVE_ELEMENTS://4

return GraphicalPrimitive.readGraphicalPrimitive Elements(in,ec,eid,l,fileName);

case ATTRIBUTE_ELEMENTS://5

return Attributes.readAttributeElements(in,ec,ei d,l);

case ESCAPE_ELEMENTS://6

return Escape.readEscape(ec,eid,l,in,fileName);

case EXTERNAL_ELEMENTS://7

return External.readExternalElements(in,ec,eid, l,fileName);

case SEGMENT_ELEMENTS://8

unsupported(ec,eid);

return new Command(ec,eid,l,in);

case APPLICATION_STRUCTU_ELEMENTS: //9

unsupported(ec,eid);//10-15

return new Command(ec,eid,l,in);

default:

assert(10<=ec && ec <=15):"unsupported eleme nt class";

unsupported(ec,eid);

return new Command(ec,eid,l,in);

}

}

4.3 圖形渲染

CGM是由多個(gè)元素向量組成的圖形,如果要做到圖形渲染,需要將向量映射到設(shè)備的虛擬空間坐標(biāo)中,形成絕對(duì)的二維坐標(biāo),CGM的VDC空間用以定義圖像元素的方向、尺寸、坐標(biāo)原點(diǎn)[4]。由于VDC空間的定義,可以將整個(gè)CGM的向量元素約定在一定的范圍之內(nèi),這個(gè)范圍就是VDC范圍,VDC范圍由屬性左下角、右上角、和坐標(biāo)夾角組成共同建立了VDC空間的意義和所屬坐標(biāo)象限,VDC圖形一般處于第一象限和第四象限,某些屬性如文本屬性、字符方向、所有圖形內(nèi)的枚舉值的方向都與這些變量有關(guān),根據(jù)VDC范圍的可以按照比例的將圖形渲染到相應(yīng)大小的Java圖形中,相關(guān)代碼如下。

public void scale(Graphic s g,int w,int h){

this.g2d = (Graphics2D)g;

if (this.extent==null)

return;

double extentWidth=Math.abs(this.extent[1].x - this.extent[0].x);

double extentHeight=Math.abs(this.extent[1].y - this.extent[0].y);

double fx=w/extentWidth;

if (fx*(extentHeight)>h){

fx=h/extentHeight;

}

this.canvasWidth=(int)(fx*extentWidth);

this.canvasHeight=(int)(fx*extentHeight);

this.isScaled =true;

}

4.4 圖形應(yīng)用

經(jīng)過4-1、4-2、4-3的CGM文件解析步驟后,可以將CGM圖片使用Java

Graphics2D展示到桌面端,點(diǎn)擊圖片內(nèi)容則可實(shí)現(xiàn)放大、縮小。在我國航空業(yè)內(nèi)實(shí)現(xiàn)的交互性電子手冊(cè)系統(tǒng)中廣泛使用了CGM作為插圖格式[12],為了使CGM圖片更好的在Web瀏覽器中展示,我們將已經(jīng)成功渲染的Java Graphics2D圖形轉(zhuǎn)化為SVG格式,SVG格式能夠保存CGM格式的熱點(diǎn)信息、向量信息并同樣可以實(shí)現(xiàn)放大縮小功能,其實(shí)現(xiàn)效果如圖3所示。

圖3 交互性電子手冊(cè)插圖實(shí)現(xiàn)Fig.3 The implementation of IETP's illustrations

5 結(jié)語

IETM系統(tǒng)作為飛機(jī)維修、運(yùn)營流程中的重要組成部分,承擔(dān)著信息交流、數(shù)據(jù)共享等功能。CGM作為其中重要的數(shù)據(jù)載體之一,對(duì)IETM系統(tǒng)的作用也至關(guān)重要,本文從CGM的背景、目前應(yīng)用局限性出發(fā),經(jīng)過對(duì)CGM文件的結(jié)構(gòu)進(jìn)行分析描述,對(duì)CGM元文件二進(jìn)制編碼進(jìn)行解析和加載。最終實(shí)現(xiàn)了一種自主可控的CGM解析技術(shù),從而摒棄對(duì)商業(yè)軟件的依賴性。本文對(duì)CGM在民用航空業(yè)交互性電子手冊(cè)的應(yīng)用研究,將應(yīng)用于國內(nèi)航空業(yè)的技術(shù)出版物手冊(cè)系統(tǒng)。

猜你喜歡
定義結(jié)構(gòu)
《形而上學(xué)》△卷的結(jié)構(gòu)和位置
永遠(yuǎn)不要用“起點(diǎn)”定義自己
海峽姐妹(2020年9期)2021-01-04 01:35:44
定義“風(fēng)格”
論結(jié)構(gòu)
中華詩詞(2019年7期)2019-11-25 01:43:04
新型平衡塊結(jié)構(gòu)的應(yīng)用
模具制造(2019年3期)2019-06-06 02:10:54
論《日出》的結(jié)構(gòu)
成功的定義
山東青年(2016年1期)2016-02-28 14:25:25
創(chuàng)新治理結(jié)構(gòu)促進(jìn)中小企業(yè)持續(xù)成長(zhǎng)
修辭學(xué)的重大定義
基于BIM的結(jié)構(gòu)出圖
主站蜘蛛池模板: 日韩国产精品无码一区二区三区| 国产97视频在线观看| 久久综合九色综合97婷婷| 精品国产Ⅴ无码大片在线观看81| 一级毛片在线播放| 91在线国内在线播放老师| 青青青亚洲精品国产| 无码日韩视频| 国产欧美视频综合二区| 国产高清免费午夜在线视频| 久久综合九九亚洲一区 | 欧美一区二区三区欧美日韩亚洲| 99在线视频精品| 波多野结衣一区二区三区88| 色婷婷狠狠干| 五月婷婷丁香综合| 五月激情婷婷综合| 97se亚洲| 四虎成人精品| 青青草原国产免费av观看| 青青草a国产免费观看| 精品久久久久无码| 天天综合亚洲| 在线综合亚洲欧美网站| 一区二区三区四区日韩| 久久久精品国产SM调教网站| 色天堂无毒不卡| 亚洲精品无码不卡在线播放| 亚洲日本精品一区二区| 一级毛片基地| 免费又爽又刺激高潮网址| 久久精品亚洲中文字幕乱码| 日韩123欧美字幕| 国产最新无码专区在线| 久久国产高清视频| 色综合久久久久8天国| 国产一级毛片yw| 亚洲精品图区| 精品福利一区二区免费视频| www欧美在线观看| 美女无遮挡拍拍拍免费视频| 免费看a级毛片| 一本一道波多野结衣一区二区 | 国产成人精品在线| 国产日韩精品欧美一区喷| 国产在线八区| 中文字幕亚洲专区第19页| 久久婷婷六月| 成人综合在线观看| 亚洲精品无码人妻无码| 日韩中文精品亚洲第三区| 四虎影视永久在线精品| 精品1区2区3区| 国产中文一区二区苍井空| 亚洲资源站av无码网址| 精品国产美女福到在线直播| 伊人久久婷婷| 国产真实自在自线免费精品| 国产在线日本| 国产日韩精品一区在线不卡| 国产69精品久久久久孕妇大杂乱| 亚洲三级影院| 找国产毛片看| 国产免费a级片| 国产毛片不卡| 91午夜福利在线观看| 国产爽爽视频| 中文字幕天无码久久精品视频免费| 国产精品熟女亚洲AV麻豆| 99久久国产精品无码| 国产成人你懂的在线观看| 影音先锋亚洲无码| 成人看片欧美一区二区| 54pao国产成人免费视频| 狠狠做深爱婷婷综合一区| 国产人人射| 亚洲第一成年人网站| 日韩视频免费| 波多野结衣中文字幕一区二区| 99久久国产综合精品2020| av手机版在线播放| 91青青视频|