CAA開發之預定義文件簡要

二次開發是基於現有軟體並利用其開放的API來實現功能的定製和拓展的開發技術。在開發及編譯過程中,為了能夠正確鏈接API函數,必須在指定的文件中明確API調用的條件。然而對於CAA二次開發,使用API則需在Imakefile.mk中定義其Module以及在IdentityCard.h中定義Framework,即CATIA二次開發的預定義文件為Imakefile.mk和IdentityCard.h,下面將進行具體闡述。

IdentityCard.h文件

在CAA文件結構樹中,IdentityCard.h有且僅只有一個存在於一個新建的Framework中,它是在使用一個API時,用來定義該API所屬的Framework,一個Framework有一個標識卡,在IdentityCard.h中需要去添加其標識卡。如圖 17所示是IdentityCard中的內容,如其中Mathematics就是在使用過程中所需的Framework名稱,通過AddPrereqComponent進行聲明。

圖 17 IdentityCard.h文件內容

Imakefile.mk文件

在新建一個Module時,系統就會自動創建一個Imakefile.mk文件,具體含義如圖 18所示,該文件是基於IdentityCard.h中已經定義Framework的基礎上,來預定義該Framework下的Module,即如果我們使用一個API函數,就需要在IdentityCard.h中定義所屬的Framework以及在Imakefile.mk中添加所屬的Module。否則工程在編譯過程中就會出現圖 19所示的「Link2001」以及「Link2019」所示錯誤,因此讀者如果在程序編譯過程中出現上述兩種錯誤,則基本上是使用API而未添加對應預定義的Framework和Module導致的。此時,可藉助CAA help Viewer查找對應的介面,並找到對應的Framework和Module,本文以使用CATIProduct的介面為例,如圖 20所示。

圖 18 Imakefile.mk文件說明

圖 19 未添加預定文件而出現的錯誤信息

圖 20 查找Framework和Module

粗暴提示

其實IdentityCard.h和Imakefile.mk中添加的內容可多但不能少,因此讀者可為自己制定一個相對較全的IdentityCard.h和Imakefile文件,每次創建工程或模塊時,將其中內容對應拷貝進去,可為開發免去諸多麻煩。

歡迎關註:CAA二次開發(微信公眾號)

開發深似海、疑義相與析!


推薦閱讀:

CATIA版本之簡述【附CATIA R19開發包】
求問物體從a位置到b位置,怎麼求其沿x y z軸的旋轉角度。?
CATIA V6 2017x及CAA安裝

TAG:CATIA | 二次开发 |