1 前言
Pro/TOOLKIT是Pro/ENGINEER的一個(gè)應(yīng)用程序接口(API),其的編程語言是C 語言,它可以對(duì)Pro/ENGINEER進(jìn)行功能擴(kuò)展,滿足PTC客戶的特定需求。而且,Pro/TOOLKIT提供了定制標(biāo)準(zhǔn)Pro/ENGINEER用戶界面的能力,自動(dòng)執(zhí)行重復(fù)性的程序,通過Pro/ENGINEER集成的內(nèi)部程序(Dll)或外部應(yīng)用程序(Exe)可以為造型用戶提供自定義的應(yīng)用程序、設(shè)計(jì)規(guī)劃和繪圖自動(dòng)化。
2 Pro/TOOLKIT編程條件和工具
知道如何寫C程序,就已經(jīng)具備了使用Pro/TOOLKIT的條件,應(yīng)該能夠理解指針,當(dāng)把數(shù)據(jù)從一個(gè)函數(shù)傳到另一函數(shù)時(shí),將經(jīng)常使用到它。Pro/TOOLKIT幫助,包含2000多個(gè)函數(shù),并且可以通過例子代碼學(xué)習(xí)如何使用。除此之外,如果想解決幾何學(xué)問題,還需要對(duì)失量理論有一定的了解。
3 Pro/TOOLKIT程序中的結(jié)構(gòu)體
Pro/TOOLKIT都是用C語言編寫的,每個(gè)對(duì)象都用結(jié)構(gòu)體來描述,因此需要了解對(duì)象是如何使用的。為了使用結(jié)構(gòu)體,需要定義它,Pro/TOOLKIT提供許多“typedefs”,這些typedefs只不過是Pro/ENGINEER結(jié)構(gòu)體的偽指令。例如:
typedef struct entity* ProPoint;
typedef struct sld_part* ProSolid;
這些也叫做OHandles (from Opaque handles),在Pro/ENGINEER中它們直接獲得對(duì)象的內(nèi)存地址。在某些情況下,這樣做可能是危險(xiǎn)的,因此PTC提供了另外一種結(jié)構(gòu)體類型,它只包含Pro/ENGINEER的內(nèi)部數(shù)據(jù)庫(kù)中項(xiàng)目的必要信息。這種結(jié)構(gòu)體(labeled DHandle from data handle)是一種類的結(jié)構(gòu),它包括對(duì)象的類型、ID等。許多函數(shù)命令都和下面的結(jié)構(gòu)體相聯(lián)系。
typedef struct pro_model_item
{
ProType type;
int id;
ProMdl owner;
}ProModelitem,ProGeomitem,ProExtobj, ProFeature,ProProcstep,ProSimprep,ProExpldstate,
ProLayer,ProDimension,ProDtlnote,ProDtlsyminst,ProGtol,ProCompdisp
如果處理幾何問題,要用到ProModelitem、ProGeomitem 和ProFeature這幾個(gè)結(jié)構(gòu)體。
4 Pro/TOOLKIT中的常用函數(shù)及使用
需要了解的第一個(gè)函數(shù)是ProMdlCurrentGet()。在Pro/TOOLKIT幫助中其描述如下。
Description
Initializes the p_handle with the current Pro/ENGINEER object.