張文曉
摘要:本文主要介紹了如何在Excel中利用VBA對(duì)Creo進(jìn)行簡單的異步模式下的二次開發(fā),實(shí)現(xiàn)任意模型的任意投影視圖的DWG文件自動(dòng)導(dǎo)出,并且在AutoCAD里自動(dòng)更新布局圖,從而實(shí)現(xiàn)二維布局圖的參數(shù)化。
關(guān)鍵詞:Excel;VBA;Creo;二次開發(fā);異步模式;AutoCAD布局圖參數(shù)化
中圖分類號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2019)11-0246-03
Abstract: This article mainly introduced how to use VBA in Excel to do the secondary development in simple asynchronous mode for Creo, and achieve automatic export of DWG file of any view of model, and update the 2D drawing in AutoCAD to parameterize 2D layout.
Key words: Excel; VBA; Creo; Secondary Development; Asynchronous Mode; Parameterize 2D AutoCAD layout
為了引出本文主題,我們要首先討論一下制圖軟件。機(jī)械領(lǐng)域有一個(gè)形象的比喻,說圖紙是工程師的語言。那么制圖軟件無疑是工程師手里的重要工具。制圖軟件包括二維軟件、三維軟件,二維軟件和三維軟件各有各的特點(diǎn),應(yīng)用于特定的場合。簡而言之,筆者以為二維軟件最大的特點(diǎn)是靈活,最大的缺點(diǎn)是無法參數(shù)化驅(qū)動(dòng)。三維軟件最大的優(yōu)點(diǎn)是可以參數(shù)化驅(qū)動(dòng)、三維模型用途廣泛,缺點(diǎn)是建模煩瑣、不易更改。
那么,什么時(shí)候用三維軟件?什么時(shí)候用二維軟件?
根據(jù)二者的特點(diǎn),一般地,二維軟件很適合做前期方案的模擬,三維軟件適合后期做細(xì)節(jié)設(shè)計(jì)時(shí)建模、出圖。當(dāng)然,國內(nèi)很多廠家仍然用二維軟件來出圖。
既然二維軟件仍然大有用處,那么如果能綜合三維軟件參數(shù)化的特點(diǎn),以及二維軟件靈活的特點(diǎn),在三維軟件中參數(shù)化畫圖,然后批量轉(zhuǎn)換為二維圖,并在畫二維布局圖時(shí)引用這些自動(dòng)導(dǎo)出的圖紙,那么就間接地實(shí)現(xiàn)二維布局圖的參數(shù)化,那么勢必在特定場合下會(huì)大大提高效率。
當(dāng)然二維圖參數(shù)化,可以在AutoCAD中通過編程實(shí)現(xiàn),但是,前提是必須針對(duì)某一特定結(jié)構(gòu)編程,這樣是無法做到通用的。下面,就以Creo和AutoCAD為例,說明如何結(jié)合三維軟件和二維軟件,實(shí)現(xiàn)任意結(jié)構(gòu)二維圖的參數(shù)化,并簡要說明在哪些場合應(yīng)用。
1在Creo中利用FamilyTable建立參數(shù)化模型
在Creo里利用FamilyTable批量地創(chuàng)建模型,是Creo參數(shù)化建模的重要功能。具體的操作方法網(wǎng)上或者PTC的幫助文檔里有大量的資料以及實(shí)例可以參考。此過程亦不是本文所要論述的重點(diǎn),故而在此不再贅述,請讀者自行查找相關(guān)資料。
2在Excel中編程實(shí)現(xiàn)從Creo中導(dǎo)出DWG圖紙
2.1General
在此例中,Excel在Creo的二次開發(fā)過程中相當(dāng)于一個(gè)啟動(dòng)器。除此之外,Excel表單里也存儲(chǔ)著待導(dǎo)出的模型名稱、導(dǎo)出DWG文件名、導(dǎo)出位置等程序需要的數(shù)據(jù),用于程序運(yùn)行時(shí)讀取。
當(dāng)然,如果有必要,讀者可以在Visual studio中開發(fā)自己的可執(zhí)行的應(yīng)用程序,這樣就可以脫離excel單獨(dú)運(yùn)行。但就實(shí)現(xiàn)本例中的目的而言,在Excel里操作是最簡單方式。
2.2開發(fā)環(huán)境簡介
在Excel中通過VBA進(jìn)行二次開發(fā),實(shí)際是利用Creo Parametric提供的VB API中的一些開發(fā)接口來接入Creo Parametric。同時(shí),利用OLE objects操作模型以及從模型中獲取數(shù)據(jù)。
具體地,就是在Excel VBA中引用VB API,并用CCpfcConnectionId.Create() and CCpfcAsyncConnection.ConnectById()兩個(gè)函數(shù)建立Excel和Creo之間的連接。后續(xù),再通過VB API里的一些函數(shù)和方法,調(diào)用Creo模型,針對(duì)模型實(shí)現(xiàn)后續(xù)操作。
2.3 Creo VB API基礎(chǔ)知識(shí)
2.3.1 引用VB API
首先需要?jiǎng)?chuàng)建一個(gè)對(duì) Creo VB API的引用。在Excel里按alt+F11進(jìn)入VBA代碼編輯器,點(diǎn)擊工具→引用,勾選“Creo VB API Type Library for Creo Parametric 4.0”。如下圖所示。
2.3.2 如何利用PTC給出的VB API指南
事實(shí)上PTC公司已經(jīng)給出了函數(shù)說明以及豐富的示例代碼,供我們二次開發(fā)時(shí)參考,如果我們妥善加以利用,能起到事倍功半的效果。下面介紹一下如何得到這些參考:
在Creo的安裝路徑下,找vbapi文件夾,筆者路徑為C:\ptc\Parametric4_M050\Creo 4.0\M050\Common Files\vbapi。
v 其中vbug.pdf文檔是PTC公司提供的VB API用戶操作指南。如果你想實(shí)現(xiàn)某一功能的代碼,可以在此文檔里按照一定的關(guān)鍵詞檢索;
v 打開C:\ptc\Parametric4_M050\Creo 4.0\M050\Common Files\vbapi\vbapidoc路徑下的IESwing.html文件,可以得到VB API Creo Parametric 3.0 (VB) APIWizard,可以從中查找你要用的具體函數(shù);