0 引言
產(chǎn)品的BOM表(Bill of Material)是定義產(chǎn)品結(jié)構(gòu)的重要技術(shù)文件,是一種描述產(chǎn)品裝配關(guān)系的結(jié)構(gòu)化零件表,其中包括設(shè)計(jì)過程中所有裝配體、零件、原材料等信息的清單。BOM反映了一個(gè)產(chǎn)品所有零件的數(shù)量關(guān)系和零部件的構(gòu)成層次關(guān)系,在產(chǎn)品由設(shè)計(jì)過程向制造過程的轉(zhuǎn)化中,BOM起著非常重要的作用,它是連接產(chǎn)品設(shè)計(jì)過程和制造過程的信息紐帶。
BOM表在信息傳遞的過程中具有重要的作用,但是在汽車夾具設(shè)計(jì)行業(yè)還沒有得到統(tǒng)一,各制造企業(yè)提供的參考BOM表各不相同,這就為BOM表的自動(dòng)化生成增加了難度,阻礙了企業(yè)間的信息交流與合作。在總結(jié)了大部分制造企業(yè)提供的BOM表樣式中不難發(fā)現(xiàn),BOM表需要填寫的內(nèi)容較多,是BOM表制作的主要內(nèi)容。汽車夾具零件的屬性項(xiàng)有:零件編號(hào)、零件名稱、材料、數(shù)量、重量、版本、術(shù)語、備注,而各企業(yè)的BOM表主要內(nèi)容項(xiàng)是這幾種屬性項(xiàng)的簡單組合,這就為設(shè)計(jì)通用BOM系統(tǒng)提供了可能。
模板式的通用BOM系統(tǒng)的構(gòu)想:根據(jù)制造企業(yè)提供的參考BOM表制作BOM表輸出模板,用VB編程工具開發(fā)編寫應(yīng)用程序,遍歷零件的屬性信息,將零件的各屬性項(xiàng)輸出到BOM模板的表行中,最終生成符合企業(yè)要求的BOM表。
1 CATIA的二次開發(fā)環(huán)境
訪問CATIA的對(duì)象有很多種不同的方式,對(duì)于其他程序或腳本,CATIA具有OLE自動(dòng)化對(duì)象服務(wù)器的功能。一些程序或腳本能夠?qū)OM對(duì)象進(jìn)行訪問,那么也能訪問CATIA的對(duì)象并對(duì)其進(jìn)行操作。訪問CATIA對(duì)象有以下的方法:
1)進(jìn)程內(nèi)的腳本
編程腳本和CATIA如果同時(shí)運(yùn)行在同一進(jìn)程環(huán)境下,稱作進(jìn)程內(nèi)的腳本。腳本類型有:
VBScript腳本、CATScript腳本、VBA腳本。
2)進(jìn)程外的腳本
編程腳本和CATIA如果沒有運(yùn)行在同一進(jìn)程環(huán)境下則稱進(jìn)程外的腳本。編程腳本不再由CATIA環(huán)境來調(diào)用,CATIA還具有另外一個(gè)功能,即OLE自動(dòng)化對(duì)象服務(wù)器,進(jìn)程外的腳本通過CATIA軟件的COM接口訪問CATIA內(nèi)部的對(duì)象。腳本類型有:
VB或VBA訪問CATIA、Windows Scripting Host訪問CATIA、嵌入到網(wǎng)頁中。
進(jìn)程內(nèi)編程訪問CATIA對(duì)象具有以下主要特點(diǎn):占用內(nèi)存少,運(yùn)行效率高,操作簡便。但是編寫的程序在實(shí)現(xiàn)的功能上受到了很大的限制,比如VBScript腳本不能交互操作,VBA腳本不能編譯等缺點(diǎn),這就降低了編程的實(shí)用性。本研究采用進(jìn)程外編程方式訪問CATIA對(duì)象,運(yùn)用VB編程語言編制出裝配體BOM表自動(dòng)生成程序,設(shè)計(jì)交互界面,便于人機(jī)操作,將產(chǎn)品的零部件屬性信息自動(dòng)輸出至外部Excel清單文件中,實(shí)現(xiàn)BOM表的聚類輸出,便于制造件的加工制造和外購件的采購,方便裝配過程中零部件的統(tǒng)計(jì)和核對(duì),進(jìn)而提高了工作效率。
2 BOM系統(tǒng)的設(shè)計(jì)
2.1 系統(tǒng)的功能
模板式通用BOM系統(tǒng)設(shè)計(jì)的主要目的是能夠兼容不同制造企業(yè)的提供的BOM表之間的差異性,模板式通用BOM系統(tǒng)在傳統(tǒng)BOM系統(tǒng)的基礎(chǔ)上,設(shè)計(jì)的系統(tǒng)具有如圖1所示的功能。
圖1 BOM系統(tǒng)的功能圖
1)根據(jù)提供的參考BOM表用戶配置BOM表輸出模板,由輸出模板關(guān)鍵字驅(qū)動(dòng)程序遍歷產(chǎn)品屬性樹;
2)初始化BOM模板,根據(jù)BOM模板的關(guān)鍵字,對(duì)BOM模板自動(dòng)進(jìn)行初始化操作,為輸出零件屬性做準(zhǔn)備;
3)為使設(shè)計(jì)者了解要提取零件的哪些屬性項(xiàng),BOM系統(tǒng)具有屬性提示功能;
4)判斷零件是否對(duì)稱,控制零件數(shù)量;
5)向BOM模板寫入屬性信息;
6)更新BOM模板中提取的屬性信息。
根據(jù)系統(tǒng)的設(shè)計(jì)的功能,通用BOM系統(tǒng)的功能界面如圖2所示。
圖2 通用BOM系統(tǒng)功能界面
2.2 系統(tǒng)的設(shè)計(jì)
從已經(jīng)檢索的來文獻(xiàn)看,傳統(tǒng)BOM系統(tǒng)提供的BOM表輸出功能單一,并不具有兼容性,不能滿足不同企業(yè)對(duì)BOM表的差異化需求。而有學(xué)者設(shè)計(jì)的通用BOM系統(tǒng),雖然能夠滿足BOM表的兼容性,但是由于設(shè)計(jì)規(guī)則的限制,用戶在使用過程中需要熟悉模板制定規(guī)則且要保證制作的模板的正確性,給用戶的使用帶來了不便。
模板式通用BOM系統(tǒng)可以很好的解決BOM表輸出功能單一,操作復(fù)雜的問題,前期設(shè)計(jì)者利用CATIA的宏程序批量的處理零件的屬性信息,為后期BOM表的輸出做準(zhǔn)備,在BOM表輸出之前,只需對(duì)BOM輸出模板定義系統(tǒng)默認(rèn)的屬性項(xiàng)關(guān)鍵字,就可以向BOM表中寫入零件屬性信息,具有適應(yīng)性強(qiáng),定義規(guī)則簡單,輸出快捷的特點(diǎn)。模板式通用BOM系統(tǒng)在操作流程上和傳統(tǒng)BOM系統(tǒng)具有明顯的不同,對(duì)比效果如圖3所示。
圖3 BOM系統(tǒng)流程圖
對(duì)比現(xiàn)行BOM系統(tǒng)和模板式通用BOM系統(tǒng)可發(fā)現(xiàn),雖然傳統(tǒng)BOM系統(tǒng)可以生成BOM表,但是生成的BOM表明顯的不能滿足不同客戶提出的的BOM格式要求,還需要后期手動(dòng)修改,這就降低了BOM的生成效率,同時(shí)還容易出現(xiàn)錯(cuò)誤等缺點(diǎn)。根據(jù)設(shè)計(jì)經(jīng)驗(yàn)提出的通用BOM系統(tǒng)在總結(jié)現(xiàn)行BOM系統(tǒng)特點(diǎn)的基礎(chǔ)上,做了大量的思考和總結(jié),設(shè)計(jì)的模板式通用BOM系統(tǒng)較傳統(tǒng)BOM系統(tǒng)具有明顯的優(yōu)勢。
模板式通用BOM系統(tǒng)在設(shè)計(jì)上采用多個(gè)功能模塊,使模塊之間在信息共享和管理上得到提高,系統(tǒng)采用了三層系統(tǒng)結(jié)構(gòu):交互層、支撐層和核心層。
交互層用于處理窗體功能與CATIA系統(tǒng)的建立功能關(guān)聯(lián),VB程序通過COM接口來訪問CATIA內(nèi)部的對(duì)象,來完成零部件屬性的提取,BOM表的生成和更新等功能;支撐層主要是VB程序訪問CATIA零件的實(shí)體對(duì)象,通過遍歷算法來讀取零件的屬性信息,為數(shù)據(jù)的存取做準(zhǔn)備;核心層用于將提取的零件的屬性信息存入在數(shù)組中。
圖4 BOM系統(tǒng)結(jié)構(gòu)
3 BOM系統(tǒng)的關(guān)鍵技術(shù)
3.1 模板技術(shù)
模板技術(shù)是通用BOM系統(tǒng)的核心技術(shù),在通用BOM系統(tǒng)中扮演著舉足輕重的作用,BOM模板表的規(guī)格直接關(guān)系到輸出BOM表的形式和屬性信息的合理配置。BOM模板表包括兩部分:表頭和表行。對(duì)每個(gè)設(shè)計(jì)項(xiàng)目來說,區(qū)別最大的部分是BOM表表頭。因企業(yè)不同而不同,對(duì)于單個(gè)項(xiàng)目來說表頭內(nèi)容又具有高度的相似性,在項(xiàng)目設(shè)計(jì)中只需制作好一個(gè)BOM表的表頭內(nèi)容便可在設(shè)計(jì)中借用該模板;表行內(nèi)容是BOM表統(tǒng)計(jì)的核心內(nèi)容,是統(tǒng)計(jì)的重點(diǎn),BOM系統(tǒng)設(shè)計(jì)的關(guān)鍵是輸出零件的詳細(xì)屬性信息到BOM表中。
定義BOM表屬性項(xiàng)關(guān)鍵字是制作BOM模板的重中之重,關(guān)鍵字定義的正確與否直接關(guān)系到零件屬性提取的成功與否。通用BOM系統(tǒng)定義的屬性關(guān)鍵字如表1所示。
表1 屬性項(xiàng)關(guān)鍵字
模板技術(shù)的基本原理:根據(jù)該企業(yè)BOM表格式并按照該系統(tǒng)的模板規(guī)則建立輸出模板,系統(tǒng)的初始化功能模塊會(huì)首先尋址表頭內(nèi)容關(guān)鍵字,根據(jù)定義的關(guān)鍵字內(nèi)容,遍歷零件對(duì)應(yīng)的屬性項(xiàng),將零件的屬性信息由數(shù)組中寫入到輸出模板中,生成符合企業(yè)要求的BOM表,然后保存到制定的位置處,則BOM表制作完成。由于輸出模板的可定制性,因此通用BOM系統(tǒng)能生成不同格式的 BOM表。
3.2 遞歸遍歷算法
模板式通用BOM系統(tǒng)在算法上采用遞歸遍歷算法。先根遍歷,采用深度優(yōu)先遍歷的思路,即遍歷是對(duì)BOM各子樹逐層進(jìn)行。其遍歷規(guī)則如下:
1)首先訪問產(chǎn)品結(jié)構(gòu)樹的根結(jié)點(diǎn);
2)如果該結(jié)點(diǎn)有子項(xiàng),訪問其子項(xiàng),并跳到第2)步;
3)如果有該結(jié)點(diǎn)有兄弟項(xiàng),訪問下一個(gè)兄弟項(xiàng),并跳到第2)步;
4)如果其父項(xiàng)有下一個(gè)兄弟項(xiàng),訪問其父項(xiàng)的下一個(gè)兄弟項(xiàng),并跳到第2)步;
5)自動(dòng)判斷當(dāng)前結(jié)點(diǎn)是否根結(jié)點(diǎn),是則退出;6)當(dāng)前結(jié)點(diǎn)由父項(xiàng)結(jié)點(diǎn)來代替,并跳轉(zhuǎn)至第4)步。
圖5 產(chǎn)品結(jié)構(gòu)模型樹
以圖5產(chǎn)品結(jié)構(gòu)為例,其遍歷次序?yàn)椋篈、B(1)、f(2)、E(3)、f(1)、d(2)、d(3)、C(1)、g(2)、h(2)、f(2)。
由于車身夾具產(chǎn)品結(jié)構(gòu)模型樹的層數(shù)比較少,采用遞歸遍歷算法代碼簡潔,能夠展示零部件之間的父子關(guān)系和BOM樹的層次結(jié)構(gòu)。
3.3 零件屬性數(shù)組
模板式通用BOM系統(tǒng)在系統(tǒng)初始化時(shí)預(yù)先開辟兩個(gè)或三個(gè)數(shù)組,這個(gè)數(shù)組的元素個(gè)數(shù)根據(jù)產(chǎn)品結(jié)構(gòu)樹的復(fù)雜情況而定,數(shù)組元素不必很多,本系統(tǒng)開辟100個(gè)數(shù)組元素,目的是儲(chǔ)存數(shù)據(jù)。將上位機(jī)讀來的數(shù)據(jù)存入預(yù)先開辟好的其中一個(gè)數(shù)組中,當(dāng)前數(shù)組存滿后,再換另外一個(gè)數(shù)組,這樣做的優(yōu)點(diǎn)是便于數(shù)據(jù)的管理和提取數(shù)據(jù)的正確性,最后使用代碼將將數(shù)組數(shù)據(jù)寫入Excel表格。
3.4 BOM視圖映射中的一致性維護(hù)
BOM由物料項(xiàng)和物料項(xiàng)關(guān)系組成,但是由于BOM的生成過程不同,所包含的數(shù)據(jù)也不完全相同,因此為了保證數(shù)據(jù)的一致性,仍需要對(duì)產(chǎn)品不同BOM視圖進(jìn)行對(duì)比。BOM的常見操作如增加部件,刪除部件等也會(huì)造成BOM數(shù)據(jù)的不一致性。BOM視圖映射中的一致性維護(hù)就是物料項(xiàng)和物料項(xiàng)關(guān)系的一致性維護(hù)。
針對(duì)BOM一致性維護(hù)問題,設(shè)計(jì)BOM的父子循環(huán)一致性檢查算法,其基本思想為:設(shè)原BOM元素集合為S,新BOM元素集合為P。對(duì)集合P,遍歷產(chǎn)品的父項(xiàng)和子項(xiàng),判斷零部件是否是多實(shí)例零部件,即是否已經(jīng)統(tǒng)計(jì)過,如果已經(jīng)統(tǒng)計(jì)過,則不再讀取信息,數(shù)量增加,如果是新增加或減少的零部件,則對(duì)其進(jìn)行入;虺鰲2僮。當(dāng)遍歷到空字符串時(shí),則遍歷完成退出循環(huán)。
4 模板式通用BOM系統(tǒng)的應(yīng)用實(shí)例
本實(shí)例以CATIA V5為實(shí)驗(yàn)支撐平臺(tái),基于VB編程語言開發(fā)的模板式通用BOM系統(tǒng)能夠生成不同格式的BOM表。以下以某車身夾具單元為例生成兩種不同格式的BOM表來驗(yàn)證系統(tǒng)的通用性。某車身的一副完整的車身夾具如圖6所示。
圖6 夾具單元
上表為不同企業(yè)風(fēng)格的A格式輸出模板和B格式輸出模板,根據(jù)系統(tǒng)的要求規(guī)則對(duì)A和B兩種格式的BOM模板定義屬性關(guān)鍵字,A格式模板的屬性項(xiàng)關(guān)鍵字為:PART NO、PART NAME、MATERIAL、Q’TY、REMARK;B格式模板的屬性項(xiàng)關(guān)鍵字為:PART NO、PART NAME、Q’TY、REMARK。按照BOM表的操作流程生成的A、B兩種格式的BOM表如圖7、圖8所示。
圖7 BOM輸出模板
圖8 BOM表導(dǎo)出圖
由生成的A、B兩種格式的BOM表結(jié)果可以得知生成的BOM表與企業(yè)給定的參考BOM表完全一樣,模板式通用BOM系統(tǒng)具有很好的適用性和兼容性。
5 結(jié)束語
針對(duì)汽車夾具制造中的BOM設(shè)計(jì)中存在的問題,在總結(jié)現(xiàn)有BOM設(shè)計(jì)的特點(diǎn),提出了模板式通用BOM系統(tǒng),該系統(tǒng)完全兼容了不同企業(yè)格式的BOM表,支持快速啟動(dòng)CATIA,BOM表模板初始化,顯示屬性項(xiàng),指定對(duì)稱零件,寫入BOM表和更新BOM表的功能,還具有BOM視圖映射一致性維護(hù)的功能。模板式通用BOM系統(tǒng)在設(shè)計(jì)中具有很強(qiáng)的適用性,大大的提高了車身夾具設(shè)計(jì)BOM向制造BOM轉(zhuǎn)化的效率,降低了出錯(cuò)率,對(duì)縮短車身夾具設(shè)計(jì)周期具有重要的意義。
核心關(guān)注:拓步ERP系統(tǒng)平臺(tái)是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://www.guhuozai8.cn/
本文標(biāo)題:模板式通用BOM系統(tǒng)的開發(fā)與研究
本文網(wǎng)址:http://www.guhuozai8.cn/html/news/10515520997.html