基于CATIA二次開發(fā)的產(chǎn)品BOM屬性自動(dòng)提取

2014-11-09 劉圣 同濟(jì)大學(xué)CAD研究中心

  該文介紹了CATIA三維設(shè)計(jì)軟件及其二次開發(fā)接口中常用的重要對(duì)象及相關(guān)函數(shù),針對(duì)了樹形產(chǎn)品結(jié)構(gòu)給出了常用的操作與處理方法,并利用相關(guān)對(duì)象和方法實(shí)現(xiàn)對(duì)產(chǎn)品文件的屬性提取和BOM表統(tǒng)計(jì)生成程序。

  1、CATIA三維軟件簡(jiǎn)介

  隨著計(jì)算機(jī)輔助設(shè)計(jì)(CAD)技術(shù)的發(fā)展,三維輔助設(shè)計(jì)軟件在產(chǎn)品設(shè)計(jì)領(lǐng)域的應(yīng)用越來越廣泛。CATIA全稱Computer Aided Tri-dimensional Interface Application,是法國(guó)Dassault公司開發(fā)的一款CAD/CAM/CAE于一體的三維設(shè)計(jì)軟件,廣泛應(yīng)用于機(jī)械設(shè)計(jì)、汽車、航空航天、船舶、電子等各種行業(yè)中。

  高度模塊化的CATIA軟件能夠滿足客戶在產(chǎn)品開發(fā)活動(dòng)中的需要,包括風(fēng)格和草圖設(shè)計(jì)、機(jī)械零件設(shè)計(jì)、裝配設(shè)計(jì)、曲線曲面設(shè)計(jì)、工程圖自動(dòng)生成及產(chǎn)品分析和模擬。CATIA產(chǎn)品基于開放式可擴(kuò)展的架構(gòu),其知識(shí)工程模塊通過使企業(yè)能夠重用產(chǎn)品設(shè)計(jì)知識(shí),縮短開發(fā)周期,CATIA解決方案加快企業(yè)對(duì)市場(chǎng)的需求的反應(yīng)。CATIA軟件自V5版后從工作站平臺(tái)移植到個(gè)人計(jì)算機(jī),可以運(yùn)行于Windows NT平臺(tái),極大地拓寬了其應(yīng)用范圍與使用的層面。

  2、CATIA二次開發(fā)簡(jiǎn)介

  成熟的CAD/CAM軟件為了滿足不同用戶的在實(shí)際應(yīng)用中的不同需求,便于用戶構(gòu)建適合自身產(chǎn)品開發(fā)的流程,以及自動(dòng)化繁瑣重復(fù)的設(shè)計(jì)步驟,一般都具有供用戶進(jìn)行二次開發(fā)的接口。CATIA提供多種方式的二次開發(fā)接口,以便用戶能靈活地利用并重組CATIA已有的功能,獲取CATIA文件及內(nèi)部的數(shù)據(jù),并與外部的信息管理系統(tǒng)或?qū)I(yè)的PDM系統(tǒng)通信。

  3、CATIA二次開發(fā)中的關(guān)鍵對(duì)象

  CATIA提供的二次開發(fā)接口是一個(gè)COM服務(wù)器,利用VB中的對(duì)象作為客戶端與CATIA進(jìn)程進(jìn)行進(jìn)程間的通信,操作CATIA進(jìn)程中的函數(shù),訪問其中的數(shù)據(jù)。而VB提供的一組具有相關(guān)關(guān)系的對(duì)象形成了一個(gè)抽象層,使得用戶可以在不了解COM底層通信方式的情況下方便地對(duì)CATIA進(jìn)程進(jìn)行操作。

  CATIA.Application對(duì)象:該對(duì)象實(shí)例是系統(tǒng)中CATIA進(jìn)程的代表,所有其他的對(duì)象都依賴于該對(duì)象的相關(guān)方法返回。在CATIA進(jìn)程已經(jīng)啟動(dòng)的情況下,CATIA.Application對(duì)象的實(shí)例可以以“CATIA.Application”字符串調(diào)用全局工廠函數(shù)GetObject獲得,可以將獲得的對(duì)象付給一個(gè)變量Set CATIA = GetObject("CATIA.Application")。當(dāng)CATIA進(jìn)程沒有啟動(dòng)時(shí),可以調(diào)用全局工廠函數(shù)Cre慍琀攀 Object函數(shù)帶“CATIA.Application”字符串獲得,并把其賦給變量Set CATIA = CreateObject("CATIA.Application")。最終,獲得的CATIA.Application對(duì)象存在CATIA變量中。

  Document對(duì)象:Document類的對(duì)象代表進(jìn)程中打開的CATIA文檔,Document類是其他文檔類的基類,從CATIA.Application 對(duì)象的ActiveDocument方法獲得當(dāng)前激活的文檔,本次主要使用的到其子類ProductDocument的對(duì)象,并將其賦值給一個(gè)變量以便以后使用。Set productDocument = CATIA.ActiveDocument。后續(xù)的對(duì)象都要從該P(yáng)roductDocument對(duì)象中獲取。

  Product對(duì)象:該類型的對(duì)象代表產(chǎn)品文檔中的一個(gè)產(chǎn)品節(jié)點(diǎn)。CATIA產(chǎn)品文檔將一系列產(chǎn)品通過裝配組織成一個(gè)產(chǎn)品樹,每個(gè)產(chǎn)品節(jié)點(diǎn)可以有零到多個(gè)子節(jié)點(diǎn),除了根節(jié)點(diǎn)以外每個(gè)產(chǎn)品節(jié)點(diǎn)都只有一個(gè)父節(jié)點(diǎn)。每個(gè)產(chǎn)品文檔有唯一的根節(jié)點(diǎn),且該根節(jié)點(diǎn)不能更換。對(duì)于裝配進(jìn)產(chǎn)品的零件,CATIA會(huì)生成一個(gè)簡(jiǎn)單的產(chǎn)品節(jié)點(diǎn)對(duì)其包裝,使之成為一致的產(chǎn)品樹。每個(gè)產(chǎn)品節(jié)點(diǎn)可以有若干屬性,本程序主要對(duì)這些屬性進(jìn)行提取與統(tǒng)計(jì)。對(duì)于已經(jīng)獲得的產(chǎn)品節(jié)點(diǎn),可以通過調(diào)用其Products方法獲得其子節(jié)點(diǎn)的集合對(duì)象,該對(duì)象是一個(gè)集合對(duì)象,可以用For Each型的循環(huán)方便地遍歷其中每一個(gè)Product對(duì)象。

  結(jié)束語

  本文在行為流概念的基礎(chǔ)上,提出一種基于行為流知識(shí)庫(kù)的功能-結(jié)構(gòu)智能映射框架,該框架可在較高層次實(shí)現(xiàn)設(shè)計(jì)知識(shí)重用。此外,該框架可用于開發(fā)計(jì)算機(jī)輔助設(shè)計(jì)工具,用來輔助設(shè)計(jì)者進(jìn)行新產(chǎn)品概念設(shè)計(jì)。