劉正春,王 勇,張晨光
(軍械工程學(xué)院,河北 石家莊 050003)
新型高炮的電氣系統(tǒng)是整門高炮的神經(jīng)中樞,具有設(shè)備繁多、連接關(guān)系復(fù)雜等特點(diǎn),一旦電氣系統(tǒng)出現(xiàn)故障,整門高炮將無(wú)法運(yùn)作。通常的在線檢測(cè)系統(tǒng)只提供各測(cè)試點(diǎn)的數(shù)據(jù)顯示,無(wú)法體現(xiàn)實(shí)物檢測(cè)的直觀性、測(cè)試點(diǎn)間的電路邏輯關(guān)系以及系統(tǒng)各裝置間的電氣連接關(guān)系,使得工程人員容易忽視故障點(diǎn),導(dǎo)致診斷失誤。
將虛擬現(xiàn)實(shí)技術(shù)[1]應(yīng)用于新型高炮在線診斷系統(tǒng)中,利用Delphi搭建上位機(jī)的在線診斷平臺(tái),采用ActiveX技術(shù)嵌入Cult3D炮上虛擬環(huán)境交互模型,從而創(chuàng)造出一個(gè)形象逼真的炮上虛擬內(nèi)部場(chǎng)景,并實(shí)現(xiàn)各虛擬電氣設(shè)備的在線測(cè)量,就能給工程人員提供一個(gè)良好的輔助維修環(huán)境。
新型高炮在線診斷系統(tǒng)通過(guò)虛擬交互技術(shù)模擬炮上各電氣設(shè)備的實(shí)際空間位置、連接關(guān)系以及設(shè)備箱體拆裝過(guò)程,并提供設(shè)備內(nèi)部電路板塊的在線測(cè)試交互控制。工程人員在計(jì)算機(jī)前操作虛擬裝置具體測(cè)試點(diǎn),系統(tǒng)通過(guò)USB接口向下位機(jī)下達(dá)測(cè)試指令,下位機(jī)將測(cè)量的實(shí)際信號(hào)上傳至用戶界面,其數(shù)據(jù)傳遞如圖1中所示。工程人員可以采用手動(dòng)測(cè)試排障,即從虛擬炮上環(huán)境中選擇測(cè)試點(diǎn)進(jìn)行在線測(cè)試,通過(guò)下位機(jī)反饋測(cè)試結(jié)果進(jìn)行經(jīng)驗(yàn)式排障;也可以從故障診斷模塊選擇專家知識(shí)庫(kù)內(nèi)現(xiàn)有故障現(xiàn)象,由計(jì)算機(jī)以專家決策庫(kù)為推理機(jī)制自動(dòng)測(cè)試、反饋和排障。
如圖1所示,由用戶操作逐級(jí)調(diào)用相應(yīng)虛擬炮上環(huán)境模型,各電氣裝置模型由Cult3D模型庫(kù)存儲(chǔ),包括炮上視景、單體裝置、拆裝結(jié)構(gòu)和單板(電路板)等模型。信號(hào)識(shí)別轉(zhuǎn)換模塊用于識(shí)別界面被選測(cè)試點(diǎn)信號(hào),從測(cè)試點(diǎn)屬性庫(kù)中獲取硬件測(cè)試號(hào),通過(guò)通信模塊從USB接口向下位機(jī)傳達(dá)測(cè)試指令(根據(jù)通信協(xié)議,唯一標(biāo)識(shí)測(cè)試點(diǎn)的硬件測(cè)試號(hào)作為測(cè)試指令,標(biāo)號(hào)為0~1 023)。
在設(shè)計(jì)中要滿足工程人員虛擬炮上環(huán)境的真實(shí)沉浸感,在診斷故障時(shí),既能達(dá)到界面操作如同操作真實(shí)炮上各電氣裝置的效果,又能通過(guò)軟件提供的電氣連接導(dǎo)航快速切換各電氣裝置,從而輔助診斷。要達(dá)到這樣的效果,如何構(gòu)建炮上環(huán)境的虛擬平臺(tái)以及如何利用Cult3D技術(shù)實(shí)現(xiàn)模型的動(dòng)態(tài)交互控制是其關(guān)鍵。
使用3DS Max軟件建立炮上虛擬環(huán)境平臺(tái)的三維模型。首先需分析新型高炮炮體結(jié)構(gòu)、電氣系統(tǒng)各電氣空間位置、內(nèi)外部結(jié)構(gòu)、以及各級(jí)間層次關(guān)系(包括分系統(tǒng)級(jí)、箱體級(jí)與板級(jí)),由此建立3DMax中彼此獨(dú)立又具有裝配關(guān)系的組件,以便于在Cult3D中建立各組件的父子關(guān)系[2],系統(tǒng)組件層次關(guān)系如圖2所示。以隨動(dòng)系統(tǒng)為例,它由隨動(dòng)控制箱、電機(jī)擴(kuò)大機(jī)組、高低方位受信儀(箱體級(jí))組成,隨動(dòng)控制箱又由若干個(gè)電路板、若干個(gè)控制板(電路板級(jí))等組成。
炮上虛擬環(huán)境和系統(tǒng)層以高炮內(nèi)部場(chǎng)景為對(duì)象,鼠標(biāo)提示各裝置名稱以及父級(jí)系統(tǒng)名稱,這兩層為虛擬漫游方式,建模以形體和照片紋理為主,以保證交互畫面的流暢;當(dāng)用戶操作進(jìn)入到箱體層和電路板層,以虛擬模型展示及交互為主,工程人員可360°旋轉(zhuǎn)、縮放對(duì)象,操作箱體的開關(guān)、旋鈕等器件,也可在線測(cè)試電路板關(guān)鍵點(diǎn)的電壓、波形等參數(shù)。
系統(tǒng)將3DS Max+Cult3D+Delphi作為一種新型的虛擬現(xiàn)實(shí)交互技術(shù),實(shí)現(xiàn)在高炮炮塔的擬實(shí)環(huán)境中進(jìn)行動(dòng)態(tài)交互式設(shè)計(jì),并在Delphi這個(gè)強(qiáng)大的編程工具中完成對(duì)動(dòng)態(tài)模型的控制,即Delphi通過(guò)Cult3D提供的動(dòng)態(tài)鏈接庫(kù)來(lái)實(shí)現(xiàn)對(duì)三維模型的漫游與操作,并獲取用戶操作信息,從而向下位機(jī)下達(dá)測(cè)試指令。
借助Cult3D Exporter插件將3DS Max中的各電氣裝置模型輸出為*.c3d文件,在Cult 3D Designer中將*.c3d導(dǎo)入,對(duì)預(yù)設(shè)動(dòng)畫進(jìn)行交互性設(shè)計(jì),逼真地模擬出炮上環(huán)境漫游與各裝置的連接關(guān)系與拆裝過(guò)程,對(duì)各實(shí)體還可以提供文字提示(Tooltip)。Cult3D是一個(gè)完全拖放式軟件,從場(chǎng)景圖窗口(Scence Graph)選中要操作的箱體(如圖3中的**Box01)、電路板(**Circuit01)或開關(guān)等組件,拖入事件映射窗口(Event Map),然后在動(dòng)作窗口(Action)中選擇要實(shí)施的動(dòng)作和觸發(fā)該動(dòng)作的事件,其中有鼠標(biāo)和鍵盤兩種觸發(fā)事件。通過(guò)預(yù)覽窗口(Stage Window)可以預(yù)覽交互動(dòng)作的效果。最后輸出*.co壓縮文件,以供Delphi調(diào)用[3]。
圖3部分顯示了某箱體拆分、可測(cè)點(diǎn)測(cè)試等動(dòng)作的映射圖。最終文件輸出為(*.co)壓縮文件,該格式文件占用空間小,可嵌入HTML網(wǎng)頁(yè)或 Word、Power point、Acrobat等多媒體應(yīng)用軟件中。利用動(dòng)態(tài)鏈接庫(kù)的顯示調(diào)用方式將其嵌入Delphi軟件平臺(tái)中。
3DS Max和Cult3D是兩個(gè)不同的應(yīng)用軟件平臺(tái),電氣裝置虛擬模型的建立是在3DS Max軟件上完成(格式為*.max),而模型的交互動(dòng)作是在Cult3D軟件中編輯完成的,最終具有交互動(dòng)作產(chǎn)品(*.co)要發(fā)布到Delphi軟件平臺(tái)上使用。Cycore公司提供的Cult3D Exporter和Cult3D Viewer兩個(gè)插件分別用于3DS MAX向Cult3D Designer(*.max->*.c3p)和Cult3D Designer向Delphi(*.c3p->*.co)3個(gè)軟件平臺(tái)接口的格式轉(zhuǎn)換,如圖4所示。
新型高炮在線診斷平臺(tái)采用Delphi軟件開發(fā)。ActiveX控件是一組采用COM(Component Object Model,部件對(duì)象模型)使得軟件部件在網(wǎng)絡(luò)環(huán)境中進(jìn)行交互的技術(shù)集,可嵌入到包容器宿主應(yīng)用程序中,與開發(fā)平臺(tái)無(wú)關(guān)。因此,在一種編程語(yǔ)言上開發(fā)的ActiveX控件在Delphi軟件平臺(tái)上調(diào)用無(wú)須作任何修改,其效果如同使用Windows通用控件一樣。選用ActiveX技術(shù)來(lái)嵌入電氣裝置的虛擬模型。
Cult3D ActiveX Player提供動(dòng)態(tài)鏈接庫(kù)IECult.dll,在Delphi環(huán)境下有2種調(diào)用方法:
1)隱式調(diào)用(靜態(tài)調(diào)用),使用“external ‘IECult.dll’”,在程序運(yùn)行時(shí)自動(dòng)加載dll,加載完畢后,應(yīng)用程序中可以任意使用dll中的函數(shù)、過(guò)程,應(yīng)用程序結(jié)束時(shí)會(huì)自動(dòng)釋放dll。
2)顯式調(diào)用(動(dòng)態(tài)調(diào)用),編程控制dll的加載與釋放,使用更加靈活。由于隱式調(diào)用會(huì)存在自動(dòng)終止和內(nèi)存駐留的問(wèn)題,因此使用顯式調(diào)用法,其關(guān)鍵代碼如下:
myHandle:=LoadLibrary(‘IECult.dll’); //加載dll
if myHandle>0 then //加載成功則執(zhí)行 try
FPointer:=GetProcAddress(myHandle, PChar(‘LoadCult3D’));
//取函數(shù)‘LoadCult3D’的地址
if FPointer<>nil then //如果函數(shù)存在
begin
myFunc:=TDLLDemo(FPointer);
….// ‘LoadCult3D’函數(shù)調(diào)用
end;
finally
FreeLibray(myHandle);
End;
利用顯式調(diào)用,可以靈活控制動(dòng)態(tài)鏈接庫(kù)的加載與釋放,并且如同通用控件一樣調(diào)用鏈接庫(kù)中的各種Cult3D函數(shù),主要分為兩類:
1)模型屬性函數(shù),用于控制被調(diào)用模型的背景、初始位置等各類場(chǎng)景基本屬性,比如‘bgcolor’可控制模型空間背景色。
2)模型交互控制函數(shù),包括模型的加載(‘LoadCult3D’)、當(dāng)前操作姿態(tài)的捕獲(‘GetActionStatus’)、觸發(fā)事件的操作(‘TriggerAction’/‘TriggerEvent’)等函數(shù)。其中的事件為Cult3D中已經(jīng)定義好的操作事件,比如,Cult3D中將“拆分箱體”這個(gè)動(dòng)作過(guò)程定義為‘Dispart’,在Delphi平臺(tái)中用語(yǔ)句“TriggerEvent(‘Dispart’)”實(shí)現(xiàn)這個(gè)動(dòng)作的調(diào)用。
Delphi調(diào)用Cult3D模型的關(guān)鍵代碼如下,第1段代碼根據(jù)用戶操作,從數(shù)據(jù)庫(kù)提取被選模型路徑,將模型加載至界面;第2段代碼實(shí)現(xiàn)通過(guò)桌面按鈕控制模型的拆分。
procedure TForm1.Button1Click(Sender: TObject);
var str:string;
begin
with ADOQuery1 do
… end; //從數(shù)據(jù)庫(kù)中提取模型路徑
str:=getcurrentdir+’/’+ADOQuery1.FieldByName(’模型路徑’).AsString;
Cult3DP1.LoadCult3D(str); //加載模型
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Cult3DP1.TriggerEvent(’Dispart’);
//通過(guò)Button控制拆分動(dòng)作
end;
診斷系統(tǒng)最終實(shí)現(xiàn)界面如圖5所示(僅部分顯示虛擬交互相關(guān)功能)。
利用ActiveX技術(shù)提供了在Delphi軟件平臺(tái)中引入Cult3D虛擬交互模型的方法,該方法只須對(duì)Cult3D模型加載一次,便可以一直保持與模型的交互,達(dá)到“一次運(yùn)行、多次使用”的效果;創(chuàng)造出一個(gè)形象逼真的炮上虛擬環(huán)境和各電氣設(shè)備內(nèi)外部結(jié)構(gòu)的三維世界,提高了監(jiān)測(cè)過(guò)程的直觀性和故障定位的準(zhǔn)確性,為工程人員提供了一個(gè)良好的維修診斷環(huán)境。
在設(shè)計(jì)過(guò)程中,場(chǎng)景的真實(shí)感和繪制的實(shí)時(shí)性是系統(tǒng)的兩個(gè)基本要求,但由于炮上漫游場(chǎng)景的復(fù)雜性,在現(xiàn)有硬件條件下, 真實(shí)感和實(shí)時(shí)性往往是需要均衡的兩個(gè)要點(diǎn)[4]。
參考文獻(xiàn)(References)
[1] 項(xiàng)晨,劉曉,蔣剛毅,等.三維數(shù)字城市的建設(shè)[J].計(jì)算機(jī)工程,2003,29(20):69-71.
XIANG Chen, LIU Xiao, JIANG Gang-yi.Construction of 3D digital city[J]. Computer Engineering,2003,29(20):69-71.(in Chinese)
[2] 濮青,徐云.應(yīng)用Cult3D技術(shù)實(shí)現(xiàn)交互式三維人臉動(dòng)畫[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2004,16(3):382-384.
PU Qing, XU Yun. Implementation of interactive 3D facial animation with Cult3D technology[J]. Journal of Computer-Aided Design and Computer Graphics,2004,16(3):382-384.(in Chinese)
[3] 蘇威洲,童仲豪,葉翰鴻.實(shí)現(xiàn)網(wǎng)絡(luò)三維互動(dòng)——Cult3D應(yīng)用指南[M].北京:清華大學(xué)出版社,2001:73-75.
SU Wei-zhou, TONG Zhong-hao, YE Han-hong.Ma-king internet 3D interactive-Cult3D application manul[M]. Beijing:Tsinghua University Press,2001:73-75.(in Chinese)
[4] 胡松濤.產(chǎn)品展示能手——Cult3D入門與提高[M].北京:中國(guó)電力出版社,2002:112-114.
HU Song-tao.A fiend of products display-Cult3D accidence and promotion[M].Beijing:China Power Press,2002:112-114.(in Chinese)