徐匯宇, 吳兆華, 楊 旭, 劉亞濤, 陳小勇
(1. 桂林電子科技大學(xué) 機(jī)電工程學(xué)院,廣西 桂林 541004;2.西安電子科技大學(xué) 機(jī)電工程學(xué)院,西安 710071)
近年來(lái),隨著電子產(chǎn)品技術(shù)的發(fā)展,電子產(chǎn)品正朝著集成化、小型化以及快速更新?lián)Q代的方向發(fā)展[1]。然而布線設(shè)計(jì)缺陷已成為影響電子產(chǎn)品質(zhì)量的主要因素之一。其中在電纜的路徑設(shè)計(jì)中,電纜的裝配余量設(shè)計(jì)是否合理,將直接影響電纜與連接件的裝配過(guò)程。裝配的不穩(wěn)定將導(dǎo)致電子設(shè)備的電纜產(chǎn)生故障缺陷,從而直接影響電子設(shè)備的安全性與可靠性。
國(guó)外從20世紀(jì)80年代就開始了整機(jī)互聯(lián)三維布線和快速檢查技術(shù)的研究,著力于研究人工智能的自動(dòng)化布線方法,基本實(shí)現(xiàn)了整機(jī)布線的自動(dòng)化、智能化。這也增加了布線的復(fù)雜度,難以滿足人機(jī)交互的實(shí)時(shí)性[2],導(dǎo)致布線路徑在檢查時(shí)難度增大,并且具有延時(shí)性。國(guó)內(nèi)在虛擬布線和快速檢查領(lǐng)域的研究才剛剛興起。國(guó)內(nèi)在電子整機(jī)三維布線以及管道鋪設(shè)領(lǐng)域進(jìn)行了大量的研究,重點(diǎn)研究的是虛擬環(huán)境下的線纜建模方法以及布線路徑的規(guī)劃算法[3]。國(guó)內(nèi)外大多數(shù)企業(yè)仍采用手工方法對(duì)電纜網(wǎng)絡(luò)進(jìn)行單點(diǎn)檢測(cè),對(duì)于復(fù)雜的電纜網(wǎng)絡(luò),手工檢測(cè)方法效率很低,并且對(duì)于電纜與連接件的裝配余量檢查研究較少。因此,提出基于UG二次開發(fā)技術(shù)的電纜網(wǎng)絡(luò)裝配余量檢查方法,對(duì)于提高電子產(chǎn)品中三維線纜網(wǎng)絡(luò)的規(guī)范性具有重要的意義。
針對(duì)虛擬環(huán)境下整裝電子三維布線中電纜裝配余量檢查問(wèn)題,確定電纜裝配余量檢查規(guī)則、檢查思路。圖1為電纜裝配余量檢查流程圖。
圖1 電纜裝配余量檢查流程圖
1)電纜規(guī)格庫(kù)和電纜幾何屬性檢查規(guī)則分類庫(kù)。電纜規(guī)格庫(kù)文件用以記錄布線過(guò)程中各類電纜的命名以及電纜的各類屬性;在虛擬環(huán)布線環(huán)境下,電纜的裝配余量檢查以布線規(guī)則文件為指導(dǎo)?;谝?guī)格庫(kù)和規(guī)則分類庫(kù),可以使檢查工具在編寫整個(gè)過(guò)程中保持一致,能夠直觀、清晰地呈現(xiàn)出來(lái),也便于后臺(tái)管理。
2)電纜的屬性提取。在電纜網(wǎng)絡(luò)中,提取需要進(jìn)行檢查的電纜裝配余量。先提取電纜的TAG值,通過(guò)電纜的TAG值得到電纜的型號(hào),從而得到需要檢查的電纜的裝配余量,并將裝配余量存儲(chǔ)待用。
3)電纜裝配余量檢查。對(duì)比檢查所選電纜的裝配余量是否符合設(shè)計(jì)要求。將提取的裝配余量與數(shù)據(jù)庫(kù)中的該型號(hào)電纜的裝配余量進(jìn)行對(duì)比,得到所選電纜的裝配余量是否符合規(guī)范。若符合規(guī)范,則輸出正確結(jié)果及電纜相關(guān)數(shù)據(jù);若不符合規(guī)范,則輸出錯(cuò)誤信息及電纜相關(guān)數(shù)據(jù)并高亮顯示問(wèn)題電纜。
UG/Open是UG為開發(fā)者提供的二次開發(fā)工具,主要有UG/Open API、UG/Open GRIP、UG/Open MenuScript和UG/Open UIStyle[3]。
UG/Open MenuScript是UG軟件開發(fā)工具中針對(duì)菜單的腳本語(yǔ)言,用于開發(fā)者自定義菜單欄,并且可以將其掛靠在用戶需要的菜單欄中。MenuScript所開發(fā)的菜單可以與UIStyle開發(fā)的對(duì)話框調(diào)用,極大地提高了開發(fā)的效率[3]。
電纜裝配余量檢查菜單部分代碼為:
VERSION 170
EDIT UG_GATEWAY_MAIN_MENUBAR
AFTER UG_HELP
CASCADE_BUTTON CHECK_LINE
LABEL 線纜檢查工具
END_OF_AFTER
MENU CHECK_LINE
BUTTON CHECK_MARGIN
LABEL 裝配余量檢查
MESSAG 檢查線纜裝配余量是否符合規(guī)范
BITMAP sphere
ACTIONS procedure
END_OF_MENU
其中VERSION為軟件版本號(hào),第1個(gè)LABEL為一級(jí)標(biāo)題名稱,第2個(gè)LABEL為二級(jí)標(biāo)題名稱,BUTTON為菜單欄代號(hào),MESSAGE為菜單提示信息,BITMAP為位圖。圖2為開發(fā)完成且掛靠到UG中檢查軟件的菜單。
圖2 裝配余量檢查軟件的菜單
圖3 裝配余量檢查軟件的UI界面
UIStyler是用于開發(fā)UG操作界面的可視化工具[2],它將生成的操作界面與UG集成,用戶可更加直觀方便地在UG中進(jìn)行操作,且允許開發(fā)者直接在對(duì)話框中組合基本控件,而無(wú)需編寫復(fù)雜的圖形用戶界面即可創(chuàng)建具有不同功能的對(duì)話框。
裝配余量檢查軟件的UI界面如圖3所示。創(chuàng)建過(guò)程如下:首先打開UG軟件,進(jìn)入任意模塊。然后執(zhí)行“開始→所有應(yīng)用程序模塊→塊UI樣式編輯器”,進(jìn)入塊樣式編輯器界面。裝配余量檢查工具的UI界面共分為5組。第1組為枚舉類型,供用戶選擇需要檢查的項(xiàng)目,不同的檢查項(xiàng)目的要求不同。第2組和第3組均為選擇目錄中的“選擇對(duì)象”命令,用于用戶選擇需要進(jìn)行裝配余量檢查的2個(gè)對(duì)象,以確定測(cè)量對(duì)象間的距離。第4組為枚舉選擇類型,用戶可將檢查的結(jié)果顯示在窗口或?qū)z查結(jié)果輸出保存到本地文件夾。第5組為文件瀏覽器,用戶可選擇檢查結(jié)果的輸出保存地址。
采用UG與VS相結(jié)合的方式進(jìn)行二次開發(fā)。首先利用UG提供的Block UI Styler塊樣式編輯器模塊將二次開發(fā)所需要的界面控件集合在一起,通過(guò)代碼生成器導(dǎo)出界面UI文件*.dlx、源文件*.cpp和頭文件*.hpp,然后編寫二次開發(fā)程序。dlx文件可以隨意調(diào)用動(dòng)態(tài)鏈接庫(kù)*.dll文件、宏文件等許多常用的擴(kuò)展功能。
UG軟件提供了很多建立數(shù)據(jù)庫(kù)的方法,常用的有電子表格法、關(guān)系表達(dá)式法、用戶自定義特征法、程序設(shè)計(jì)法和知識(shí)熔接法5種。1)電子表格法。建庫(kù)簡(jiǎn)單,形象直觀,但只能存儲(chǔ)當(dāng)前目錄,不能修改,常用來(lái)建立標(biāo)準(zhǔn)件庫(kù)。2)關(guān)系表達(dá)式法。創(chuàng)建簡(jiǎn)單,修改方便,但調(diào)用時(shí)只有一個(gè)模板,且修改時(shí)需要查找標(biāo)準(zhǔn)手冊(cè)。3)用戶自定義特征法。便于編輯,可以自定義關(guān)鍵值,但自定義特征時(shí)需要建立一個(gè)新的部件。4)程序設(shè)計(jì)法。調(diào)用方便,應(yīng)用更廣泛,但需要編寫大量代碼。5)知識(shí)熔接法。能高效、快捷建立,但著重于數(shù)據(jù)表達(dá)[4]。
數(shù)據(jù)庫(kù)的主要內(nèi)容是重用電纜裝配余量領(lǐng)域?qū)<业闹R(shí),其數(shù)據(jù)要與工程設(shè)計(jì)的特點(diǎn)緊密結(jié)合,根據(jù)不同連接件所需要的裝配余量不同,能夠準(zhǔn)確地表達(dá)、存儲(chǔ)以及維護(hù)所獲得關(guān)于電纜裝配余量的知識(shí)[5]。另外,數(shù)據(jù)庫(kù)要求便于擴(kuò)充、維護(hù)和修改,能夠?qū)?shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行輸入、輸出以及操作管理[6]。
綜合以上5種建庫(kù)方法的優(yōu)缺點(diǎn),并結(jié)合本數(shù)據(jù)庫(kù)的要求,采用程序法來(lái)建立數(shù)據(jù)庫(kù)。本數(shù)據(jù)庫(kù)的特點(diǎn)主要體現(xiàn)在2個(gè)方面:1)具備檢測(cè)電纜裝配余量是否合格的能力。2)能夠簡(jiǎn)化輸出檢查結(jié)果。本方法設(shè)計(jì)了2個(gè)數(shù)據(jù)庫(kù):1)重用電纜裝配余量領(lǐng)域?qū)<抑R(shí)的數(shù)據(jù)庫(kù);2)檢查結(jié)果的數(shù)據(jù)庫(kù)。
表1為電纜裝配余量領(lǐng)域?qū)<业闹R(shí)。按照表1的知識(shí)提取相關(guān)數(shù)據(jù),可以建立第1個(gè)電纜裝配余量領(lǐng)域?qū)<抑R(shí)的數(shù)據(jù)庫(kù)(規(guī)則庫(kù))。由表1提取的數(shù)據(jù)源較少,可以采用txt格式的文檔來(lái)建立。txt文檔輸入/輸出簡(jiǎn)單方便,但對(duì)于數(shù)據(jù)較多或者復(fù)雜時(shí),建議使用excel表格建立數(shù)據(jù)庫(kù),便于數(shù)據(jù)的分類和管理[7]。第2個(gè)檢查結(jié)果的數(shù)據(jù)庫(kù)如圖4所示,其內(nèi)容一般是根據(jù)設(shè)計(jì)人員經(jīng)驗(yàn)或者企業(yè)要求來(lái)增刪。
圖4 檢查結(jié)果的數(shù)據(jù)庫(kù)
表1 電纜裝配余量領(lǐng)域?qū)<业闹R(shí)
數(shù)據(jù)庫(kù)的代碼為:
int i;char output_msg[100],deposit[100];
FILE*fp1=fopen("D:\xianshi.txt",“r”);while(fgets(deposit,100,fp1));{i--;if(i==0)strcpy(output_msg,deposit} fclose(fp1)。
在UG中,無(wú)論是實(shí)體、面、線還是特征,都有其獨(dú)有的TAG值[7],其記錄UG中每個(gè)對(duì)象的所有信息。在二次開發(fā)時(shí),要檢測(cè)電纜裝配余量是否符合要求,首先需要識(shí)別及選中電纜,因此開發(fā)時(shí)要得到電纜或者連接件的TAG值[8]。代碼為:
PropertyList* selection0Props=selection0->GetProperties();
std::vector〈NXOpen::TaggedObject *〉;
bodys=selection0Props->GetTaggedObjectVector(“SelectedObjects”);delete selec-tion0Props;
selection0Props=NULL;tag_t bodyTAG=bodys[0]->Tag()。
獲取需求電纜TAG值后,可以與UI界面結(jié)合,選中需要檢查的電纜,并且可以通過(guò)UF_MODL_ask_minimum_dist函數(shù)得到電纜的裝配余量,進(jìn)而可將模型中的電纜余量與數(shù)據(jù)庫(kù)中余量進(jìn)行對(duì)比,輸出檢查結(jié)果[9]。
部分裝配余量檢查代碼為:
UF_MODL_ask_minimum_dist (bodyTAG, body1TAG, 0, Guess1,0,Guess2, &min_dist,pt_on_obj1,pt_on_obj2);//模型中裝配余量的測(cè)量
FILE *fp=fopen("D:\shujuku.txt",“r”);
while(fgets(deposit_msg,100,fp));//打開數(shù)據(jù)庫(kù)
{j- -;if(j==0) strcpy(data_msg,deposit_msg);}
fclose(fp);
FILE *fp1=fopen("D:\123.txt",“r”);
if(min_dist>s)//判斷余量是否合格
{i=5;}//匹配數(shù)據(jù)庫(kù)中的數(shù)據(jù)
else{i=6;} while(fgets(deposit,100,fp1))
{i- -; if(i==0) strcpy(output_msg,deposit);}
fclose(fp1)。
得到檢查結(jié)果后,需要將檢查結(jié)果顯示在窗口,或者保存到本地文件,以完成檢查信息的輸出保存[10]。其顯示部分代碼為:
UF_UI_open_listing_window();//打開信息窗口
UF_UI_write_listing_window();
UF_UI_write_listing_window(output_msg);//寫入信息
為便于分析,本模型設(shè)計(jì)裝配余量均為40 mm。圖5為建立的電纜裝配余量檢查模型。
圖5 電纜裝配余量檢查模型
圖6為自動(dòng)開關(guān)、啟動(dòng)器、電阻器等連接件的檢查結(jié)果。其數(shù)據(jù)庫(kù)要求的裝配余量為50 mm,檢查軟件實(shí)際測(cè)得的裝配余量為40 mm,小于數(shù)據(jù)庫(kù)要求的裝配余量,因此不滿足開關(guān)及電阻器等連接件的裝配余量要求,檢查結(jié)果為:裝配余量小于等于數(shù)據(jù)庫(kù)要求的裝配余量50 mm,設(shè)計(jì)不規(guī)范。檢查結(jié)果顯示正確且符合軟件設(shè)計(jì)要求。除了圖6的測(cè)試外,還使用此模型進(jìn)行了另外2類連接件的測(cè)試,對(duì)于信號(hào)燈、按鍵等小型連接件,其數(shù)據(jù)庫(kù)要求裝配余量為30 mm,檢查軟件實(shí)際測(cè)得的裝配余量為40 mm,滿足小型連接件的裝配余量要求;對(duì)于一般的分支接頭,其要求裝配余量為20 mm,檢查軟件實(shí)際測(cè)得的裝配余量為40 mm,滿足分支接頭類連接件的裝配余量要求。通過(guò)模型驗(yàn)證可知,3種類型的電纜裝配余量檢查結(jié)果顯示均正確且符合軟件設(shè)計(jì)要求。
圖6 開關(guān)、電阻器的裝配余量檢查結(jié)果
基于UG二次開發(fā)技術(shù),利用VS和UG軟件相結(jié)合,開發(fā)出了電纜裝配余量檢查工具。利用程序法和txt格式文件創(chuàng)建了電纜裝配余量的基礎(chǔ)數(shù)據(jù)庫(kù),滿足用戶需求。通過(guò)使用電纜與連接件裝配檢查模型進(jìn)行軟件的測(cè)試,驗(yàn)證了此檢查工具的正確性和實(shí)用性。裝配余量檢查工具的開發(fā),很大程度上加快了電纜規(guī)范性的檢查,從而進(jìn)一步提高了電子產(chǎn)品三維布線的質(zhì)量。