1 CATIA三維軟件簡介
隨著計算機輔助設(shè)計(CAD)技術(shù)的發(fā)展,三維輔助設(shè)計軟件在產(chǎn)品設(shè)計領(lǐng)域的應(yīng)用越來越廣泛。CATIA全稱Computer Aided Tri-dimensional Interface Application,是法國Dassault公司開發(fā)的一款CAD/CAM/CAE于一體的三維設(shè)計軟件,廣泛應(yīng)用于機械設(shè)計、汽車、航空航天、船舶、電子等各種行業(yè)中。
高度模塊化的CATIA軟件能夠滿足客戶在產(chǎn)品開發(fā)活動中的需要,包括風格和草圖設(shè)計、機械零件設(shè)計、裝配設(shè)計、曲線曲面設(shè)計、工程圖自動生成及產(chǎn)品分析和模擬。CATIA產(chǎn)品基于開放式可擴展的架構(gòu),其知識工程模塊通過使企業(yè)能夠重用產(chǎn)品設(shè)計知識,縮短開發(fā)周期,CATIA解決方案加快企業(yè)對市場的需求的反應(yīng)。CATIA軟件自v5版后從工作站平臺移植到個人計算機,可以運行于Windows NT平臺,極大地拓寬了其應(yīng)用范圍與使用的層面。
2 CATIA二次開發(fā)簡介
成熟的CAD/CAM軟件為了滿足不同用戶的在實際應(yīng)用中的不同需求,便于用戶構(gòu)建適合自身產(chǎn)品開發(fā)的流程,以及自動化繁瑣重復的設(shè)計步驟,一般都具有供用戶進行二次開發(fā)的接口。CATIA提供多種方式的二次開發(fā)接口,以便用戶能靈活地利用并重組CATIA已有的功能,獲取CATIA文件及內(nèi)部的數(shù)據(jù),并與外部的信息管理系統(tǒng)或?qū)I(yè)的PDM系統(tǒng)通信。
3 CATIA二次開發(fā)中的關(guān)鍵對象
CATIA提供的二次開發(fā)接口是一個COM服務(wù)器,利用VB中的對象作為客戶端與CATIA進程進行進程間的通信,操作CATIA進程中的函數(shù),訪問其中的數(shù)據(jù)。而VB提供的一組具有相關(guān)關(guān)系的對象形成了一個抽象層,使得用戶可以在不了解COM底層通信方式的情況下方便地對CATIA進程進行操作。
CATIA.Application對象:該對象實例是系統(tǒng)中CATIA進程的代表,所有其他的對象都依賴于該對象的相關(guān)方法返回。在CATIA進程已經(jīng)啟動的情況下,CATIA.Application對象的實例可以以“CATIA.Application”字符串調(diào)用全局工廠函數(shù)CetObject獲得,可以將獲得的對象付給一個變量Set CATIA= GetObject(“CATIA.Application”)。當CATIA進程沒有啟動時,可以調(diào)用全局工廠函數(shù)CreateObject函數(shù)帶“CATIA.Application”字符串獲得,并把其賦給變量Set CATIA=CreateObject(“CATIA.Application”)。最終,獲得的CATIA.Application對象存在CATIA變量中。
Document對象:Document類的對象代表進程中打開的CATIA文檔,Document類是其他文檔類的基類,從CATIA.Application對象的ActiveDocument方法獲得當前激活的文檔,本次主要使用的到其子類ProductDocument的對象,并將其賦值給一個變量以便以后使用。Set productDocument=CATIA.ActiveDocument。后續(xù)的對象都要從該ProductDocument對象中獲取。
Product對象:該類型的對象代表產(chǎn)品文檔中的一個產(chǎn)品節(jié)點。CATIA產(chǎn)品文檔將一系列產(chǎn)品通過裝配組織成一個產(chǎn)品樹,每個產(chǎn)品節(jié)點可以有零到多個子節(jié)點,除了根節(jié)點以外每個產(chǎn)品節(jié)點都只有一個父節(jié)點。每個產(chǎn)品文檔有唯一的根節(jié)點,且該根節(jié)點不能更換。對于裝配進產(chǎn)品的零件.CATIA會生成一個簡單的產(chǎn)品節(jié)點對其包裝,使之成為一致的產(chǎn)品樹。每個產(chǎn)品節(jié)點可以有若干屬性,本程序主要對這些屬性進行提取與統(tǒng)計。對于已經(jīng)獲得的產(chǎn)品節(jié)點,可以通過調(diào)用其Products方法獲得其子節(jié)點的集合對象,該對象是一個集合對象,可以用For Each型的循環(huán)方便地遍歷其中每一個Product對象,如圖1。
圖1 按照樹型組織的產(chǎn)品節(jié)點
Parameter對象:Parameter類型的對象代表節(jié)點中包含的屬性,一個屬性是一個鍵值對,這些鍵值對代表產(chǎn)品文件中的自定義屬性,可以通過Product對象的Parameters方法獲得Parameter的集合,獲得集合后可以用集合對象的item方法傳入屬性鍵字符串,獲得屬性值的引用,并通過屬性值的ValueAsString方法轉(zhuǎn)化為方便與控件顯示和存儲的字符串。
4 程序設(shè)計總體思路和關(guān)鍵技術(shù)
本程序所要操作的是產(chǎn)品文件中的產(chǎn)品樹,各種零件文件在建立后就添加了自定義屬性,并通過裝配引入到產(chǎn)品文件中,為了便于管理,通常會在根產(chǎn)品節(jié)點下面建立若干子產(chǎn)品節(jié)點,并將零件分類裝配到各個子產(chǎn)品節(jié)點中。同理,可以再子產(chǎn)品節(jié)點下在建立子產(chǎn)品節(jié)點,對節(jié)點內(nèi)的裝配零件進行分類。在提取過程中程序要處理任意層數(shù)的產(chǎn)品節(jié)點,并要在訪問過程中統(tǒng)計相同零件的個數(shù),據(jù)此本程序利用了以下方法來實現(xiàn)提取BOM的目的。
4.1 基于遞歸訪問策略的提取方法
當訪問到一個節(jié)點,先判斷其是否一個終端節(jié)點,若是終端節(jié)點,則對其進行提取屬性的操作,若是中間節(jié)點,則遞歸地調(diào)用該過程,由此達到處理任意層數(shù)產(chǎn)品樹的目的。
4.2 終端節(jié)點的判斷方式
零件的屬性都定義在終端節(jié)點中,終端節(jié)點是通過裝配導入到產(chǎn)品樹的,由于終端節(jié)點是一個對零件的簡單包裝的產(chǎn)品節(jié)點,該節(jié)點必定沒有子節(jié)點,故本程序以此作為判斷終端節(jié)點的條件。
4.3 提取一個終端節(jié)點中的屬性
提取并統(tǒng)計單個零件的BOM信息的工作由一個函數(shù)extract_single_BOM完成,首先通過參數(shù)的Parameters方法獲得要提取的屬性對的集合。其中選取出類型參數(shù),與預先在界面上選取的類型比較,若不是則不提取該節(jié)點中的屬性。在統(tǒng)計過程中,建立以零件編號為鍵值,網(wǎng)格中顯示的行號作為值的hash表全局變量,提取屬性時提取出零件編號,在建立的hash表中檢索。若已經(jīng)在表中存在,則認為是已經(jīng)出現(xiàn)過類型的零件,可以從對應(yīng)的值取出行號,將對應(yīng)單元格的值加一;若獲在表中沒有,則將當前行值加一,并將鍵值對添加到hash表中,以便后續(xù)重復元素統(tǒng)計修改對應(yīng)行的值。
程序運行結(jié)果如圖2。
圖2 運行結(jié)果
5 結(jié)束語
本文在行為流概念的基礎(chǔ)上,提出一種基于行為流知識庫的功能結(jié)構(gòu)智能映射框架,該框架可在較高層次實現(xiàn)設(shè)計知識重用。此外,該框架可用于開發(fā)計算機輔助設(shè)計工具,用來輔助設(shè)計者進行新產(chǎn)品概念設(shè)計。
核心關(guān)注:拓步ERP系統(tǒng)平臺是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊涵了豐富的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)載請注明出處:拓步ERP資訊網(wǎng)http://www.guhuozai8.cn/
本文標題:基于CATIA二次開發(fā)的產(chǎn)品BOM屬性自動提取
本文網(wǎng)址:http://www.guhuozai8.cn/html/solutions/1401936282.html