資源描述:
《acis的實例代碼》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第十八章ACIS的實例代碼18.1用Scheme語言生成ACIS程序18.2用Windows控制臺環(huán)境編譯ACIS程序18.3用ACISAppWizard生成應(yīng)用程序框架18.1用Scheme語言生成ACIS程序ACIS從實用角度而言(不準(zhǔn)確地說),是一個大型的專門用于幾何造型的類庫,而它的運行環(huán)境正如上一章所述,是Scheme和C++;本章將就ACIS的Scheme程序、C++的Windows控制臺程序和C++的AppWizard應(yīng)用程序,進(jìn)行實例講解。用Scheme語言生成ACIS程序本節(jié)主要介紹Scheme語言的使用規(guī)則,簡要講解其基本概念如表達(dá)式、變量、函
2、數(shù)、簡單幾何造型功能等,并附有可以直接運行的例程代碼。Scheme語言基礎(chǔ)語法ACIS中的Scheme解釋器是用C++設(shè)計的,ACIS中的幾何造型功能通過對標(biāo)準(zhǔn)Scheme命令的擴展實現(xiàn),這些擴展命令也是用C++設(shè)計的,它們支持ACIS中的高級造型功能,如模型著色和零件管理功能。與C++相比,Scheme是一種快速程序設(shè)計語言,而且簡潔易學(xué)。Scheme語言的語法規(guī)則很少,總結(jié)如下:通過交互地調(diào)用Scheme過程來執(zhí)行程序;Scheme過程及其參數(shù)都被包含在一對圓括號里;圓括號里的部分被稱為Scheme表達(dá)式;表達(dá)式中包含過程名稱和過程參數(shù),具體格式如下:(過程名
3、稱〈參數(shù)1,參數(shù)2,…〉)分號“;”引導(dǎo)的部分為程序注釋。(如何運行ACISScheme解釋器,請參看17.3.1節(jié))表達(dá)式由于Scheme是一種解釋型的程序開發(fā)語言,其表達(dá)式只能在解釋器中執(zhí)行。運行ACIS的SchemeAIDE解釋程序后,就可以在它的“acis〉”提示符下輸入表達(dá)式,在表達(dá)式的結(jié)束處按回車就可以執(zhí)行該表達(dá)式。以下是幾個典型的算術(shù)表達(dá)式:acis〉輸入:(*56)回車輸出:30acis〉(*567)210在Scheme的表達(dá)式中,操作符(如*)后面可以跟任意多個參數(shù),但是其間一定要用‘空格’隔開;并且一個表達(dá)式里可以包含一個或者多個表達(dá)式,如:a
4、cis〉(*(+12)(*56))90理論上,表達(dá)式之間互相嵌套的層數(shù)是沒有限制的,程序員只要匹配好括號就行了。上面表達(dá)式的例子中使用了兩個標(biāo)準(zhǔn)的Scheme內(nèi)部過程進(jìn)行乘法和加法運算,而ACISScheme還擴充了ACIS造型器專用的過程,用戶可以按照上述標(biāo)準(zhǔn)Scheme過程方法調(diào)用這些造型過程,如下面命令可產(chǎn)生立方體:acis〉輸入:(solid:block(position000)(position101010))回車輸出:#[entity10]上述命令產(chǎn)生了一個正方體,如圖17.1.1,共調(diào)用了兩個ACISScheme過程(position和solid:b
5、lock),#[entity10]是該正方體的默認(rèn)名稱。外部描述符Scheme表達(dá)式產(chǎn)生的每個對象都有一個外部描述符和一個內(nèi)部描述符。雖然外部描述符看上去比較簡單,它在與用戶交互過程中有重要作用。它會將一個過程的執(zhí)行結(jié)果反饋給用戶,例如我們前面舉的一些例子中,如果表達(dá)式的計算結(jié)果不被用作其他表達(dá)式的參數(shù),也就是說該表達(dá)式未被嵌套在其他表達(dá)式中,則Scheme解釋器自動將表達(dá)式執(zhí)行結(jié)果的外部描述符輸出,對于算術(shù)運算來說其外部描述符只是一些簡單的數(shù)字,如30,210,90等。ACIS的對象也具有外部描述符,當(dāng)一個含有ACIS造型功能的過程被調(diào)用后,它所產(chǎn)生的ACIS對
6、象的描述符就會被解釋器輸出,其一般格式如下:#[type_of_object<參數(shù)>]下面,我們看一個關(guān)于ACIS對象的例子:;產(chǎn)生一個position對象acis〉(position10,20,30)#[position10,20,30]這個position對象的外部描述符表示了一個x=10,y=20,z=30的坐標(biāo)點。從ACIS的ENTITY類派生的對象的外部描述符與position對象的外部描述符類似,稍微復(fù)雜之處就是,這些東西被組織到所謂的零件(PART)單元中。在ACISScheme解釋器開始運行時,它會自動產(chǎn)生一個編號為1的默認(rèn)零件。下面就是關(guān)于ACI
7、S的ENTITY對象的Scheme例子:;產(chǎn)生一個長方體acis〉(solid:block(position000)(position101010))#[entity10]過程solid:block產(chǎn)生了一個ACIS實體對象,#[entity10]是它的外部描述符,該描述符由兩部分組成,即實體號(1)和零件號(0),實體號可以作為其他過程的參數(shù)。下面就是一個使用實體號的例子:;刪除一個實體acis〉(entity:delete(entity1))()注意:“()”表示空元素,Scheme語言的列表結(jié)構(gòu)中會自動地在列表末尾增加它。變量在Scheme語言中可以用變量名
8、稱記錄變量