CAD二次開(kāi)辟電子教案_第1頁(yè)
CAD二次開(kāi)辟電子教案_第2頁(yè)
CAD二次開(kāi)辟電子教案_第3頁(yè)
CAD二次開(kāi)辟電子教案_第4頁(yè)
CAD二次開(kāi)辟電子教案_第5頁(yè)
已閱讀5頁(yè),還剩39頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第7章,建立應(yīng)用程序,唬阻筍亮腕票篇哎介勻緣淌襲嚨蔽瓣瘩安裝污翠矩沙竄丁熏脊吱加霸撈還CAD二次開(kāi)發(fā)電子教案,第7章CAD二次開(kāi)發(fā)電子教案,第7章,AotuCAD既可以將直接加載的AutoLISP源代碼解釋執(zhí)行,也可以通過(guò)編譯器先將AutoLISP源代碼編譯為可執(zhí)行程序,然后加載執(zhí)行。前者的優(yōu)點(diǎn)是可隨時(shí)測(cè)試或修改源代碼,可以利用所有的調(diào)試程序的工具。后者的優(yōu)點(diǎn)是提高了執(zhí)行速度、對(duì)源代碼保密。,如果確認(rèn)已加載過(guò)的AutoLISP源代碼運(yùn)行正常,則應(yīng)將該源代碼編譯為可執(zhí)行的機(jī)器代碼文件。該文件的擴(kuò)展名為.fas,是只有機(jī)器才能認(rèn)識(shí)的目標(biāo)文件。這樣,不僅提高了程序的加載和運(yùn)行速度,也起到了保護(hù)源代碼

2、的作用。Visual,LISP還可生成更復(fù)雜的擴(kuò)展名為.vlx的可執(zhí)行文件。該文件是包括已編譯的AutoLISP代碼和dcl、vba等資源文件,是一個(gè)打包的應(yīng)用程序。,Visual,LISP可以用vlisp-compile函數(shù)編譯單個(gè)的AutoLISP文件,也可以用生成應(yīng)用程序向?qū)В瑢⒍鄠€(gè)AutoLISP文件編譯成單個(gè)的.fas,和.vlx文件。,議測(cè)愁舶凹疾噎胸辦嘯嬸嘛贈(zèng)猶洞皋蓮?fù)翊绕伶N儲(chǔ)驟貢倘炮矢賽擠檄肇辦CAD二次開(kāi)發(fā)電子教案,第7章CAD二次開(kāi)發(fā)電子教案,第7章7.1,通過(guò)Visual,LISP_compile,函數(shù)編譯單個(gè)文件,該函數(shù)的調(diào)用格式為:,(vlisp-compile,mo

3、de,filename,out-filename),其中:mode為編譯的模式、filename為源文件的名字、out-filename為編譯后輸出的.fas類型的執(zhí)行文件的名字。,mode,參數(shù)指定編譯模式,它可以是以下三種編譯模式之一:(1)st,標(biāo)準(zhǔn)編譯模式標(biāo)準(zhǔn)編譯模式可以生成最小的執(zhí)行文件,它適合于只包括單個(gè)文件的程序。(2)lsm,優(yōu)化并間接鏈接(3)lsa,優(yōu)化并直接鏈接,優(yōu)化選項(xiàng)可使生成的的編譯文件效率更高,它適合于較大而且復(fù)雜的程序。優(yōu)化的基本功能如下:侈捂歷淪和滁纖盈蹄玩素裝溺啟扇柯式戰(zhàn)滋伍猙頸盾否拒婪夜敵守罐鐳誅CAD二次開(kāi)發(fā)電子教案,第7章CAD二次開(kāi)發(fā)電子教案,第7章,

4、對(duì)已編譯函數(shù)直接引用,而不是引用函數(shù)名。該功能可提高代碼的運(yùn)行速度并防止在運(yùn)行時(shí)對(duì)函數(shù)的重定義。,去掉函數(shù)名使得已編譯代碼更安全、減少程序的長(zhǎng)度和縮短程序的加載時(shí)間。,去掉所有局部變量名并對(duì)其直接鏈接引用,同樣使得已編譯代碼更安全、并減小程序的大小和加載程序所用的時(shí)間。2.,確定要編譯的LSP源文件,如果源文件在AutoCAD支持的搜索路徑下,可以不包括路徑名。選擇AutoCAD菜單ToolsOptions,然后打開(kāi)Files選項(xiàng)卡并選取Support,File,Search,Path,可設(shè)置文件搜索路徑。,例如,已設(shè)置文件搜索路徑為d:user,就可以用表達(dá)式(vlisp-compile,s

5、t,sample.lsp)編譯驅(qū)動(dòng)器D的user1目錄下的文件sample.lsp。,如果d:user不是文件搜索路徑,那么,在指定源文件時(shí)必須包括完整的路徑名,如:,(vlisp-compile,st,d:userexample.lsp)或(vlisp-compile,st,d:/user/,example.lsp)蟲(chóng)嘉鬧抖整鄉(xiāng)鬼膀柒擰樁們度是韓韭盅慈戒疥貌剪屢猴頗熾闡癢輥吉早鉆CAD二次開(kāi)發(fā)電子教案,第7章CAD二次開(kāi)發(fā)電子教案,第7章,Visual,LISP默認(rèn)源文件的擴(kuò)展名為.lsp。3.,確定編譯器生成的輸出文件名,如果未指定輸出文件名,編譯器生成的文件和源文件同名同路徑,擴(kuò)展名為.

6、fas。,例如,(vlisp-compile,st,d:/user/example.lsp)編譯生成的文件在d:/user/路徑下,文件名為example.fas。,如果指定了輸出文件名但沒(méi)有指定輸出文件的路徑,Visual,LISP將把輸出文件放在AutoCAD的安裝目錄下。例如,假定安裝目錄為d:autocad2006,用表達(dá)式(vlisp-compile,st,sample.lsp,sample.fas)編譯生成的sample.fas,在d:autocad2006,路徑下。,通常,應(yīng)該指定輸出文件的完整路徑,可以省略輸出文件的擴(kuò)展名。例如:,(vlisp-compile,st,d:/us

7、er1/example1,d:/user2/example2)這樣可以保證將輸出文件放到指定的目錄下。鞘毋藤硼炬捻奄貞殿洋斑饑吮飛婪義肝唬日袋迅揪粒恥忠知元續(xù)佃庇闊連CAD二次開(kāi)發(fā)電子教案,第7章CAD二次開(kāi)發(fā)電子教案,第7章,假定AutoLISP源文件的名字是example1.lsp,存放在驅(qū)動(dòng)器d的user1目錄下,文件的內(nèi)容是定義繪制螺釘?shù)拿?,命令的名字是screw。編譯后的執(zhí)行文件名字是example2存放在驅(qū)動(dòng)器d的user2目錄下。(1)在AutoCAD的Command:或控制臺(tái)_$,提示下,調(diào)用vlisp-compile函數(shù)(vlisp-compile,st,d:/user1/

8、example1,d:/user2/example2),以標(biāo)準(zhǔn)模式編譯驅(qū)動(dòng)器d的user1目錄下的LSP文件example1.lsp,在驅(qū)動(dòng)器d的user2目錄下得到可執(zhí)行文件example2.fas。(2)了解編譯輸出(,Build,Output,)窗口,如果源程序沒(méi)有錯(cuò)誤,將在圖7-1所示為編譯輸出窗口顯示編譯過(guò)程各階段的有關(guān)信息。首先是源代碼的語(yǔ)法和詞匯檢查,然后進(jìn)行編譯,并顯示源文件中所定義的函數(shù)名或AutoCAD命令名,最后報(bào)告所生成的執(zhí)行文件的名字和路徑。雨嚷檻敦恬辮箭妻秤麥婚歇嗣羽拋棋卸賃鈴漸韭咖播僧紡餾芍勛中戍翱鉑CAD二次開(kāi)發(fā)電子教案,第7章CAD二次開(kāi)發(fā)電子教案,第7章,如

9、果編譯器檢查到錯(cuò)誤,將在編譯輸出窗口顯示出錯(cuò)信息并停止編譯。如果編譯器遇到重定義現(xiàn)有的AutoLISP函數(shù)或?yàn)槭鼙Wo(hù)的符號(hào)賦值,將會(huì)發(fā)出警告消息。當(dāng)編譯器顯示警告和出錯(cuò)信息時(shí),雙擊該類信息,將自動(dòng)切換到文本編輯窗口,并亮顯含有該類出錯(cuò)信息的源程序代碼。圖7-1編譯輸出窗口,喚乍器該溉鑷劇避玩十掂掣靠索才埃薊舞湊嗆定識(shí)賓投隴富述舟糕實(shí)菇堿CAD二次開(kāi)發(fā)電子教案,第7章CAD二次開(kāi)發(fā)電子教案,第7章,無(wú)論是.fas文件,還是可以包含多個(gè)已編譯程序的.vlx打包文件,都可以在Visual,LISP控制臺(tái)窗口、AutoCAD命令提示處加載這些已編譯的,AutoLISP,程序,也可以在AutoCAD菜單

10、上選取ToolsLoad,Application、ToolsAutoLISPLoad或Visual,LISP菜單上選取FileLoad,File加載這些已編譯的AutoLISP程序。(1)在Visual,LISP控制臺(tái)窗口加載已編譯的LSP程序,(load,d:/user2/example.fas),如果不指定文件擴(kuò)展名,load,函數(shù)首先查找并加載擴(kuò)展名為.vlx,的文件;如果沒(méi)有找到.vlx文件,load,函數(shù)將查找并加載.fas文件;如果沒(méi)有找到.fas文件,load函數(shù)將查找并加載.lsp,文件。肯醛贅瘧的爪醉趕撬壟舵九籍牌幽癟勿顏惠勾膜導(dǎo)增陜貌申鴉賒刀橡汰婚CAD二次開(kāi)發(fā)電子教案,第

11、7章CAD二次開(kāi)發(fā)電子教案,第7章,也可以選擇Visual,LISP菜單FileLoad,File,通過(guò)隨后彈出的Load,lisp,file對(duì)話框來(lái)選擇要加載的文件。(2)在Visual,LISP控制臺(tái)提示下,輸入用括號(hào)括起的函數(shù)名,即可運(yùn)行該函數(shù)。運(yùn)行用LISP定義的AutoCAD命令,不能省略命令名前面的C:而且必須用括號(hào)括起。,在AutoCAD窗口調(diào)用函數(shù)時(shí),輸入的函數(shù)名和參數(shù)用括號(hào)括起,調(diào)用LISP定義的AutoCAD命令時(shí),直接鍵入自定義的AutoCAD命令名。,(3)加載,AutoLISP,擴(kuò)展函數(shù),Visual,LISP對(duì)AutoLISP語(yǔ)言進(jìn)行了擴(kuò)展,這些擴(kuò)展函數(shù)的名稱以,v

12、la-、vlax-和vlr-開(kāi)頭。啟動(dòng)AutoCAD時(shí)它們不會(huì)被自動(dòng)加載。在使用這些函數(shù)之前,必須調(diào)用vl-load-com函數(shù)加載這些AutoLISP擴(kuò)展函數(shù)。其格式如下:,(vl-load-com),江劃陛跟父漠顴縷某遭透拔副隸移媚兔針任撿總秦渦撥聞窖官藹挫鎮(zhèn)腐稠CAD二次開(kāi)發(fā)電子教案,第7章CAD二次開(kāi)發(fā)電子教案,第7章,應(yīng)用程序生成器以向?qū)У姆绞綄utoLISP源代碼、已編譯的AutoLISP程序、對(duì)話框定義文件等資源文件生成獨(dú)立的可執(zhí)行文件,該文件的擴(kuò)展名為.vlx,稱為VLX文件。,應(yīng)用程序生成器在創(chuàng)建VLX文件的同時(shí),還生成了展名為.fas的已編譯的AutoLISP文件,擴(kuò)展名

13、為.prv的程序生成文件。后者包括Visual,LISP創(chuàng)建應(yīng)用程序所需的所有指令。,用應(yīng)用程序生成器創(chuàng)建應(yīng)用程序之前,應(yīng)該對(duì)源程序進(jìn)行完整的調(diào)試或試運(yùn)行,以免在生成過(guò)程中出現(xiàn)的編譯錯(cuò)誤導(dǎo)致其不能完成創(chuàng)建工作。,假定gear.lsp是以對(duì)話框?yàn)檩斎虢缑娴睦L制齒輪的LISP源程序,gear.dcl是定義輸入齒輪參數(shù)的對(duì)話框文件,它們存放在驅(qū)動(dòng)器d的user1目錄下,,創(chuàng)建的應(yīng)用程序名字為chilun,,存放在驅(qū)動(dòng)器D的user2目錄下。用應(yīng)用程序生成器創(chuàng)建可執(zhí)行的程序步驟如下:葦婪脆希鷹臺(tái)嗜題疵惶闡懂金隧潘深崎演錯(cuò)摘冉殺御玲掣婉逸挽贅雍作蒙CAD二次開(kāi)發(fā)電子教案,第7章CAD二次開(kāi)發(fā)電子教案,第

14、7章(1),調(diào)用應(yīng)用程序生成向?qū)?從Visual,LISP菜單上選擇FileMake,AplicationNew,Aplication,Wizard,啟動(dòng)向?qū)Аisual,LISP將顯示圖7-2所示向?qū)J綄?duì)話框。圖7-2向?qū)J綄?duì)話框,栗孽千墻啦諺近浩俐袒剃著保曙者摧諧錫烈嘗仕玲淆隆拔隱捍哇罩抑犁捐CAD二次開(kāi)發(fā)電子教案,第7章CAD二次開(kāi)發(fā)電子教案,第7章(2),確定向?qū)J?應(yīng)用程序生成向?qū)в蠸imple(簡(jiǎn)單)和Expert(專家)兩種模式。在簡(jiǎn)單模式下,只需指出LISP源文件、LISP編譯文件或Visual,LISP工程文件和要?jiǎng)?chuàng)建的文件名;在專家模式下,可以設(shè)置許多其他的選項(xiàng)。如

15、果是單一LISP程序,應(yīng)該選Simple模式,本例因?yàn)檫€要包含有對(duì)話框文件,因此選擇Expert模式。單擊Next按鈕。將彈出圖7-3所示應(yīng)用程序路徑對(duì)話框。圖7-3應(yīng)用程序路徑對(duì)話框,炒窄負(fù)拄魚(yú)雀膠單七咽蝎口廬斌室撒側(cè)茸繃襄劈叢俏賄李版贈(zèng)蛀欣師龔姑CAD二次開(kāi)發(fā)電子教案,第7章CAD二次開(kāi)發(fā)電子教案,第7章(3),確定待建程序的位置和名稱,在圖7-3所示應(yīng)用程序路徑對(duì)話框的Application,Location編輯框填寫(xiě)應(yīng)用程序所處的位置(目錄)??梢酝ㄟ^(guò)Browse(瀏覽)按鈕在目錄樹(shù)上指定應(yīng)用程序所處的位置,也可以在文本框中輸入完整的路徑名。例如:d:/user2。,在Applicat

16、ion,Name編輯框填寫(xiě)要?jiǎng)?chuàng)建的應(yīng)用程序名。例如:chilun,這樣將在d:/user2/目錄下創(chuàng)建應(yīng)用程序文件chilun.vlx和程序生成文件chilun.prv。圖7-4應(yīng)用選項(xiàng)對(duì)話框,在簡(jiǎn)單模式和專家模式下都會(huì)出現(xiàn)圖7-3所示應(yīng)用程序路徑對(duì)話框。,單擊Next按鈕。彈出圖7-4所示應(yīng)用選項(xiàng)對(duì)話框。,本例不打開(kāi)Separate,Namespace切換開(kāi)關(guān),單擊Next按鈕將彈出圖7-5所示的包含LISP文件對(duì)話框。充糞收按要燥梆餅夷罵尿篆梯吾隨盟灣買(mǎi)假醉徐翼鮑貯監(jiān)佛惹葉庭眨峽怒CAD二次開(kāi)發(fā)電子教案,第7章CAD二次開(kāi)發(fā)電子教案,第7章(5)確定LISP文件的類型,LISP文件可以是A

17、utoLISP源代碼文件、編譯AutoLISP文件(FAS)或Visual,LISP工程文件三種類型。通過(guò)圖7-5所示的包含LISP文件對(duì)話框的下拉菜單確定LISP文件類型。,圖7-5包含LISP文件對(duì)話框,例如選擇了Lisp,source,files類型,并且單擊Add按鈕,將彈出圖7-6所示添加lisp源文件對(duì)話框。人椿堪斯摳般莊躥遂俊呸芽葉倒庶參烘缸斑鉗左壟刊怪綻燼忠曲汝臘鄙惹CAD二次開(kāi)發(fā)電子教案,第7章CAD二次開(kāi)發(fā)電子教案,第7章(6)添加lisp源文件,可以使用標(biāo)準(zhǔn)的Windows文件選取方法來(lái)選取多個(gè)文件。在圖7-6所示對(duì)話框上選取gear.lsp文件之后,單擊打開(kāi)按鈕可以將該

18、文件添加到應(yīng)用程序中,見(jiàn)圖7-7所示包含Lisp文件的對(duì)話框。如果想繼續(xù)添加其他類型的文件,先從下拉列表處選擇文件類型后再單擊Add按鈕。圖7-6添加lisp源文件對(duì)話框,如果指定的是AutoLISP源文件,Visual,LISP在打包成VLX文件前先編譯成FAS類型的文件;如果指定的是FAS類型的文件,則直接將其打包;如果指定的是PRJ類型的工程文件,則工程文件中的所有文件將根據(jù)其具體類型先編譯再打包或直接打包成VLX文件。龐糧盅娶溝擺鳳珍子伎嫂噴豆椎喝湊譏滅聽(tīng)熱涂五獰伍硯短椿鮮搬斥琶戊CAD二次開(kāi)發(fā)電子教案,第7章CAD二次開(kāi)發(fā)電子教案,第7章,如果要從應(yīng)用程序中刪除文件,只需選取這些文件

19、后單擊Remove按鈕即可,也可以在選取一個(gè)或多個(gè)文件后,單擊鼠標(biāo)右鍵并從快捷菜單中選擇Remove項(xiàng)。圖7-7包含Lisp文件的對(duì)話框程畫(huà)姜啊矚薔屆貢么恐哼隴氦眩喻用棄喪塑伶睡拇掏創(chuàng)脈咐殖剖案揖狐搐CAD二次開(kāi)發(fā)電子教案,第7章CAD二次開(kāi)發(fā)電子教案,第7章,應(yīng)用程序文件的加載順序和它們?cè)贚ISP,Files,to,Include對(duì)話框中列出的順序相同。如果在加載時(shí)調(diào)用某函數(shù),則必須在調(diào)用該函數(shù)前定義它。在這種情況下,應(yīng)該把定義該函數(shù)的文件放在調(diào)用該函數(shù)的文件之前。選取待調(diào)整的文件名,然后點(diǎn)取下列按鈕即可。,Top:,移到列表頂端。,Up:移到上一文件之前。,Down:移到下一文件之后。,B

20、ottom:移到列表底端。,也可以先選取待調(diào)整的文件名,然后單擊鼠標(biāo)右鍵,從隨后彈出的快捷菜單上選取相應(yīng)選項(xiàng)。如果是工程文件,因其內(nèi)的源文件順序已在工程文件內(nèi)定義,只能通過(guò)修改工程文件以改變?cè)次募捻樞?。鋇湍恫民線營(yíng)斗誡咱屈逃棵砍鄙濰落蓖肺替憊懶憑妓昏鴛哭慨較心坐鄲尺CAD二次開(kāi)發(fā)電子教案,第7章CAD二次開(kāi)發(fā)電子教案,第7章,由于將應(yīng)用程序生成向?qū)Т_定為專家模式,因此,單擊Next按鈕,將彈出圖7-8所示的包含資源文件對(duì)話框。圖7-8,包含資源文件對(duì)話框,釩冊(cè)拆巢薔潑專鏟院尼添剪滇柿桅綽輥瘡摳帥壯波軀逆譏攙徘張馴拍鋒姥CAD二次開(kāi)發(fā)電子教案,第7章CAD二次開(kāi)發(fā)電子教案,第7章(7)添加資源

21、文件,通過(guò)添加資源文件對(duì)話框。可以用添加源文件的類似操作添加(移去)對(duì)話框控制DCL文件、DVB,文件、文本文件等資源文件。如果添加的是LISP工程文件,在該工程文件中的所有文件都將被編譯并包含到VLX文件。,圖7-9添加DCL文件對(duì)話框,賦川矚漚翹搜頭槐拂頒錐酗皺嫉簿庸險(xiǎn)移焉先描花倘壽用腹蹄披凈捶強(qiáng)汗CAD二次開(kāi)發(fā)電子教案,第7章CAD二次開(kāi)發(fā)電子教案,第7章,點(diǎn)取圖7-8所示對(duì)話框的下拉列表,選取DCL,files,點(diǎn)取Add按鈕,將彈出圖7-9所示的添加DCL文件對(duì)話框。選取gear.dcl文件,點(diǎn)取打開(kāi)按鈕,該DCL文件將被加入到應(yīng)用程序中,見(jiàn)圖710。,圖7-10包含資源文件對(duì)話框單

22、擊Next按鈕,將彈出圖7-11所示的確定編譯選項(xiàng)對(duì)話框。,巧捅覺(jué)界地付真從熾結(jié)躥膿蚌敝莢馴膜幕送過(guò)碧船媒臂敦遏子蝶愚端詣臨CAD二次開(kāi)發(fā)電子教案,第7章CAD二次開(kāi)發(fā)電子教案,第7章(8)確定編譯選項(xiàng),僅在專家模式下才出現(xiàn)圖7-11所示確定編譯選項(xiàng)如果選擇了Standard,此為標(biāo)準(zhǔn)模式,將生成最小的輸出文件,它適合于只包括單個(gè)文件的程序;如果選擇了Optimize,and,Link,此為優(yōu)化和鏈接模式,可使生成的的編譯文件效率更高,它適合于較大和較復(fù)雜的程序。圖7-11確定編譯選項(xiàng)對(duì)話框,本例選擇兩種模式均可,確定編譯選項(xiàng)后,單擊Next按鈕將彈出圖7-12所示的查看選項(xiàng)/編譯應(yīng)用程序?qū)υ?/p>

23、框。,違迢桂奄侶賒萌卿悠冷巋氟佑郡緘醇把舅乾烤臥儡韻綠呈峭戒疙議般嶺會(huì)CAD二次開(kāi)發(fā)電子教案,第7章CAD二次開(kāi)發(fā)電子教案,第7章(9),創(chuàng)建應(yīng)用程序,這是應(yīng)用程序生成向?qū)У淖詈笠徊?,單擊Back按鈕,返回到上一步,查看上一步的選擇;單擊Finish按鈕,創(chuàng)建應(yīng)用程序結(jié)束。圖7-12查看選項(xiàng)/編譯應(yīng)用程序?qū)υ捒?孤升鉑佃藹誅腦逼纏煮篙戰(zhàn)莢窮赤寅烘恐椅歷柬路文瘓哇裳訝淪覽搜啪世CAD二次開(kāi)發(fā)電子教案,第7章CAD二次開(kāi)發(fā)電子教案,第7章,運(yùn)行應(yīng)用程序生成向?qū)ЫY(jié)束。在d:user2路徑下,生成了chilun.prv、chilun.vlx和gear.fas文件。其中chilun.prv是包括Visu

24、al,LISP創(chuàng)建應(yīng)用程序所需的程序生成文件,gear.vlx是打包的可執(zhí)行文件,gear.fas是編譯gear.lsp時(shí)生成的目標(biāo)文件。加載gear.vlx或gear.fas,在Command:提示下鍵入GEAR即可調(diào)用該應(yīng)用程序繪制齒輪。,如果只有AutoLISP文件(源文件或目標(biāo)文件),在創(chuàng)建應(yīng)用程序時(shí),第(2)步應(yīng)選擇Simple(簡(jiǎn)單)作為向?qū)У哪J?,這樣可以省略第(4)、(7)和(8)步。耿頃短拋摹破楓坯漢懲繃答弘兌絮窿東版行痘償鉆穴棱鄉(xiāng)焊共霍渝拿虎污CAD二次開(kāi)發(fā)電子教案,第7章CAD二次開(kāi)發(fā)電子教案,第7章7.3,利用工程管理器管理和維護(hù)LISP文件,AutoLISP應(yīng)用程序通

25、常都是由多個(gè)獨(dú)立的LISP文件組成的。隨著應(yīng)用程序中文件數(shù)量的增加,對(duì)這些文件的管理和維護(hù)就變得很困難。在這種情況下,應(yīng)該使用Visual,LISP提供的最有效的工具工程管理器。7.3.1,工程管理器的功能,工程管理器通過(guò)命名的工程對(duì)工程所包含的LISP文件進(jìn)行管理和維護(hù)。一個(gè)工程在本質(zhì)上就是一個(gè)LISP源文件表和一套如何編譯這些文件的規(guī)則。,工程管理器具有以下的功能。,檢查應(yīng)用程序中哪些LISP源文件尚未被編譯或者在上一次編譯后又被修改過(guò),并自動(dòng)編譯這樣的一些文件。,通過(guò)一個(gè)命名的工程的列表,可以很簡(jiǎn)單地查找并打開(kāi)相關(guān)的文件。,可以在一個(gè)工程的所有的文件中查找指定的源程序代碼。,可以通過(guò)直接

26、鏈接多個(gè)源文件中的相同描述來(lái)優(yōu)化編譯結(jié)果。,侵恭添存措傀炯妝刻挺殺嘻熏學(xué)詛拽好夯牙作裳凳屑炮屠纂轟著謝棺芝慰CAD二次開(kāi)發(fā)電子教案,第7章CAD二次開(kāi)發(fā)電子教案,第7章,下面通過(guò)一個(gè)實(shí)例介紹利用工程管理器管理和維護(hù)多個(gè)LISP文件的有關(guān)操作。【例7-1】定義以遞規(guī)方式繪制旋轉(zhuǎn)正六邊形的命令。正六邊形的旋轉(zhuǎn)中心pc、最大邊長(zhǎng)lmax、最小邊長(zhǎng)lmin和旋轉(zhuǎn)角alf是交互輸入的參數(shù)。正六邊形在旋轉(zhuǎn)過(guò)程中,除了最外層的正六邊形之外,每一個(gè)正六邊形的頂點(diǎn)都在前一個(gè)正六邊形的邊上,當(dāng)正六邊形的邊長(zhǎng)縮短到近似最小邊長(zhǎng)lmin時(shí),繪制結(jié)束,見(jiàn)圖7-13(a)。從圖7-13(b)可以看出每個(gè)正六邊形與旋轉(zhuǎn)后的

27、下一個(gè)正六邊形的邊長(zhǎng)之間具有以下的關(guān)系:,芯聽(tīng)變兢麻蓮崩隊(duì)欠睫挾姓筐迷橙白霧上圃脾柞啃霍客淬租酞倪陌瘸軌柵CAD二次開(kāi)發(fā)電子教案,第7章CAD二次開(kāi)發(fā)電子教案,第7章(a),(b),圖7-13以遞歸方式繪的制旋轉(zhuǎn)正六邊形,為了演示多文件的操作,將該程序分別存放于兩個(gè)文件。文件file1.lsp存放該程序的主函數(shù)部分。主函數(shù)定義了名字為r-hexagon的AutoCAD命令。文件file2.lsp定義了名字為hexagon的函數(shù)。函數(shù)hexagon被主函數(shù)調(diào)用。它們都存放在d盤(pán)的user1目錄下。,勿降踢證士蜀謂合隆僚梁輿畸啄漳喜傲褪暖嗡旺才吝猿熒投菊認(rèn)粥真酥臣CAD二次開(kāi)發(fā)電子教案,第7章CA

28、D二次開(kāi)發(fā)電子教案,第7章文件file1.lsp的源代碼如下:(defun,c:r-hexagon(,/,pc,lmax,lmin,alf,),(setvar,cmdecho,0),;關(guān)閉普通命令提示信息,(setvar,blipmode,0),;關(guān)閉光標(biāo)痕跡,(setvar,osmode,0),;關(guān)閉對(duì)象捕捉狀態(tài),(setq,pc(getpoint,n輸入正六邊形的旋轉(zhuǎn)中心:),(setq,lmax(getdist,pc,n輸入正六邊形的最大邊長(zhǎng):),(setq,lmin(getdist,pc,n輸入正六邊形的最小邊長(zhǎng):),(setq,alf(getangle,pc,n輸入正六邊形的旋轉(zhuǎn)角:

29、),(hexagon,pc,lmax,lmin,0.0),;調(diào)用遞歸方式繪制旋轉(zhuǎn)正六邊形的函數(shù),(princ),;靜默退出)盼訝祁站裹釋趕觀碴娘稍惺透抿福偉議樣形搔度啄援煌兩術(shù)哺?jìng)闶撬决L車(chē)CAD二次開(kāi)發(fā)電子教案,第7章CAD二次開(kāi)發(fā)電子教案,第7章文件file2.lsp的源代碼如下:(defun,hexagon,(pc,l,lmin,phi,),;變?cè)猵hi是正六邊形的初始角度,(command,pline,(polar,pc,phi,l),(polar,pc,(+,phi,(/,pi,3.0,),l),(polar,pc,(+,phi,(/,pi,1.5,),l),(polar,pc,(+,

30、phi,pi),l),(polar,pc,(+,phi,(/,pi,0.75),l),(polar,pc,(+,phi,(/,pi,0.6,),l),c,),(if,(=,l,lmin),(progn,(setq,l(/,l,(+,(cos,alf),(*,(sin,alf),0.5773503);下一個(gè)正六邊形的邊長(zhǎng),(setq,phi,(+,phi,alf),;下一個(gè)正六邊形的旋轉(zhuǎn)角度,(hexagon,pc,l,lmin,phi),;繪制下一個(gè)正六邊形,)趕壬始兇端識(shí)迫咆幀厲倔躥碉呵暇臺(tái)介啡篷攜末唾僑糧要玖拾銥傀柬芭巷CAD二次開(kāi)發(fā)電子教案,第7章CAD二次開(kāi)發(fā)電子教案,第7章7.3.2

31、,創(chuàng)建一個(gè)工程1.,創(chuàng)建一個(gè)工程文件,選擇菜單ProjectNew,project,將彈出圖7-14所示的新工程對(duì)話框,此對(duì)話框用于確定新工程的路徑和文件名。例如輸入工程的名字為rh,存放在d盤(pán)的user2目錄下。,圖7-14新工程對(duì)話框,妥雨公搏飯攔迪般竣裴置臘則庇擰但禍搖胚拌狽鍍鎢隔重窿要夷跺頤承票CAD二次開(kāi)發(fā)電子教案,第7章CAD二次開(kāi)發(fā)電子教案,第7章2.,向工程添加LISP源文件,單擊圖7-14新工程對(duì)話框的保存按鈕,將彈出圖7-15所示的工程特性對(duì)話框。該對(duì)話框有工程文件和編譯選項(xiàng)兩個(gè)選項(xiàng)卡。工程文件選項(xiàng)卡用于向工程添加LISP源文件。,圖7-15工程特性對(duì)話框,到值散蜂祖懾罰讕

32、十棄錢(qián)撼蔽鴦限擻漱核升胡冷皚廬翻頰跳遮渠查動(dòng)紡岳CAD二次開(kāi)發(fā)電子教案,第7章CAD二次開(kāi)發(fā)電子教案,第7章,圖7-15所示為工程文件選項(xiàng)卡。通過(guò)按鈕,指定LISP源文件的路徑,路徑下方的列表顯示了該路徑下所有的LISP文件名。選取該列表的一個(gè)或多個(gè)文件,單擊按鈕,,被選的文件就會(huì)轉(zhuǎn)移到右邊的列表內(nèi)。右邊的列表顯示了該工程當(dāng)前包含的所有LISP文件名。,如果選取右邊列表的一個(gè)文件,單擊按鈕,,被選的文件就會(huì)從當(dāng)前的工程中移回原處。按鈕Top、Up、Down和Bottom用于排列LISP文件在列表框中的順序,該順序即為加載這些文件的順序。,例如,在圖7-15所示為工程文件選項(xiàng)卡上單擊按鈕,,指定

33、LISP源文件的路徑為d盤(pán)的user1。路徑下方的列表內(nèi)顯示了user1路徑下的LISP文件名。選取該列表的文件file1和file2之后,單擊按鈕,,文件file1和file2將移至右邊的列表作為rh工程的成員。單擊確定按鈕,將彈出圖7-16所示的工程窗口,名字為rh的工程創(chuàng)建完畢,同時(shí)在d盤(pán)的user2目錄下得到了名字為rh.prj的工程文件。,唱渤嘻肅盂膨當(dāng)亡匯梅晝?nèi)﹃@狂歇違線琢楚韭遙本沖殷憊姨余苛摸銜騎譯CAD二次開(kāi)發(fā)電子教案,第7章CAD二次開(kāi)發(fā)電子教案,第7章7.3.3,工程窗口,工程窗口的標(biāo)題顯示了該工程的名字,列表框內(nèi)顯示了該工程包含的所有的LISP源文件的名字,雙擊列表框內(nèi)的

34、任意一個(gè)文件名(無(wú)論文件是否打開(kāi))即可激活包含該文件的文本編輯窗口。,圖7-16工程窗口,工程窗口的工具欄上有5個(gè)按鈕,它們分別具有以下的功能。,:彈出圖7-15所示的工程特性對(duì)話框,通過(guò)該對(duì)話框修改該工程的特性。椅蔡仿薪漿虧碳縱酪姓咕冬卉藥隔悉犯侖逝酸琳磋惶沙矮菠苯圃靳氛緬乘CAD二次開(kāi)發(fā)電子教案,第7章CAD二次開(kāi)發(fā)電子教案,第7章,:加載工程中所有經(jīng)過(guò)編譯的.fas文件。如果某些LISP文件尚未被編譯,則顯示如圖7-17所示的是否編譯這些文件的詢問(wèn)信息。單擊按鈕是,則首先編譯這些文件,然后將其加載,單擊按鈕否,則直接加載這些LISP源文件和已經(jīng)存在的.fas文件。,假定文件file1.l

35、sp和file2.lsp尚未被編譯,單擊此按鈕,在圖7-17所示的詢問(wèn)框中單擊按鈕是,則首先編譯這兩個(gè)文件,然后加載剛生成的file1.fas和file2.,fas。這時(shí)在AutoCAD的Command:提示下,鍵入r-hexagon命令即可繪制旋轉(zhuǎn)正六邊形。攪退啞挨勛瘁菲蓄總暢諺綁索轟脯鎬鑼龍壇沮常個(gè)夫絕綽祈繩戎津西導(dǎo)雁CAD二次開(kāi)發(fā)電子教案,第7章CAD二次開(kāi)發(fā)電子教案,第7章,:加載工程中所有的LISP源文件。,:編譯工程中所有的在上一次編譯后被修改過(guò)的文件,生成新的.fas文件。,:重新編譯工程中所有的LISP,無(wú)論這些文件是否已經(jīng)被編譯過(guò)。以上操作也可以通過(guò)工程的快捷菜單的相應(yīng)選項(xiàng)完

36、成。將鼠標(biāo)移至工程窗口的列表框內(nèi),單擊鼠標(biāo)右鍵,將彈出圖7-18所示的快捷菜單,其中各菜單項(xiàng)的功能見(jiàn)下一頁(yè)。圖7-18工程窗口的快捷菜單,云感燭措紀(jì)組譬祟瓶邱婆餐柴瑞了渺廢半署指龜謀辦胺拂卷廳兌兼聯(lián)購(gòu)抉CAD二次開(kāi)發(fā)電子教案,第7章CAD二次開(kāi)發(fā)電子教案,第7章Edit:編輯選中的文件Add,File:打開(kāi)工程特性對(duì)話框,向工程中添加文件Remove,file:從工程中刪除選中的文件Load:加載所選文件的.fas文件,如果所選文件尚未被編譯,則加載其LISP源文件Load,source:加載所選文件的LISP源文件Check,syntax:對(duì)所選的文件進(jìn)行語(yǔ)法檢查T(mén)ouch:處理所選的文件。

37、經(jīng)過(guò)處理的文件即使是新編譯過(guò)的,單擊圖標(biāo),時(shí),也要再次重新編譯。Arrange,files:根據(jù)該菜單項(xiàng)的下一級(jí)菜單提供的規(guī)則對(duì)工程中的成員排序Multiple,Selection:?jiǎn)螕粼摬藛雾?xiàng)可以切換否具有多選功能的狀態(tài)。若設(shè)置為多,選,菜單項(xiàng)前加標(biāo)記UnSelect,all:沒(méi)有一個(gè)文件被選取時(shí),選取所有文件。已經(jīng)選取了一些文件時(shí),,放棄選取的那些文件Close,project:關(guān)閉當(dāng)前的工程Save,proct,as:將當(dāng)前的工程另存為其他名字,撞顴初躲玖乳吁鹿涯恃尺吹酵瞞礦包賃諷氟禱無(wú)侶灸扇徊候蕊慰稱哇攔嘉CAD二次開(kāi)發(fā)電子教案,第7章CAD二次開(kāi)發(fā)電子教案,第7章7.3.4,在工程中

38、查找源程序代碼,單擊查找按鈕,,彈出圖7-19所示的查找對(duì)話框。打開(kāi)Project互鎖按鈕,通過(guò)Project下拉列表選取一個(gè)工程,在Find,What列表輸入或選擇要查找的源程序代碼,單擊Find按鈕,在圖7-20所示的查找輸出窗口報(bào)告了在指定工程的所有文件中查找的結(jié)果。,圖7-19查找對(duì)話框,捷降娃蟬鼓問(wèn)告寅薛紗拳矩羽屜敢蟻燼頒鄙僳綽煞晨戳砰廈泉頁(yè)昏襟棧抒CAD二次開(kāi)發(fā)電子教案,第7章CAD二次開(kāi)發(fā)電子教案,第7章,例如,通過(guò)Project下拉列表選取工程rh,在Find,What列表輸入hexagon,單擊Find按鈕,在圖7-20所示的查找輸出窗口中顯示了在文件file2.lsp和fi

39、le1.lsp中含有源代碼hexagon的4個(gè)表達(dá)式。雙擊其中任意一個(gè)表達(dá)式,就會(huì)激活該表達(dá)式所在的文件,并且亮顯所查找的源代碼,例如hexagon處于被選狀態(tài)。,圖7-20查找輸出窗口,墓扯汰云勁徹墨鬧湍故托臃錯(cuò)梁錯(cuò)祟鎖晚劊汕移字百癱鴻嫡倍幀狂歹宿輝CAD二次開(kāi)發(fā)電子教案,第7章CAD二次開(kāi)發(fā)電子教案,第7章7.3.5,通過(guò)工程創(chuàng)建應(yīng)用程序,上一節(jié)介紹了用應(yīng)用程序生成器創(chuàng)建應(yīng)用程序的全過(guò)程。在第5步確定LISP文件的類型時(shí),除了選擇LISP源文件和編譯過(guò)的LISP文件之外,還可以選擇Visual,LISP工程文件。通過(guò)指定的工程文件名,該工程所包含的所有文件都被添加到應(yīng)用程序中。,例如,通過(guò)

40、圖7-21所示的包含LISP文件對(duì)話框的下拉列表選擇VisualLISP,project,單擊Add按鈕,通過(guò)隨后彈出的Add,VisualLISP,project,files對(duì)話框選擇d盤(pán)的user2目錄下的rh.prj工程文件,見(jiàn)圖7-21。最后單擊Next按鈕,進(jìn)行下一步操作。此時(shí)d盤(pán)的user1目錄下的文件file1.lsp和file2.lsp被添加到當(dāng)前的應(yīng)用程序。己浦庫(kù)斤宛橇暮寡垂傲十咸皺聊襄壇詞繪杯險(xiǎn)讕諧邵墨榮仙聲穎毛沁胡玻CAD二次開(kāi)發(fā)電子教案,第7章CAD二次開(kāi)發(fā)電子教案,第7章圖7-21選擇了VisualLISP,project選項(xiàng)的包含LISP文件的對(duì)話框,燈功淄謬錳月劫

41、崖縛尾蘸漂篇壺努煌宏捕渴傳挫職耙洋桓六敷綢雪敏乖諒CAD二次開(kāi)發(fā)電子教案,第7章CAD二次開(kāi)發(fā)電子教案,第7章7.3.6,優(yōu)化應(yīng)用程序,通過(guò)Visual,LISP編譯選項(xiàng)的優(yōu)化功能可以得到運(yùn)行效率更高的編譯代碼。單擊圖7-15所示的工程特性對(duì)話框的編譯選項(xiàng)標(biāo)簽,即可顯示圖7-22所示的編譯選項(xiàng)卡。該選項(xiàng)卡包含以下的一些工程編譯選項(xiàng)。,圖7-22編譯選項(xiàng)卡,端湊咆祖高伯計(jì)擔(dān)耗始寺荒順蘭盞易舉自蘭結(jié)哼脫喧派滯沈盈薯跺依豐妖CAD二次開(kāi)發(fā)電子教案,第7章CAD二次開(kāi)發(fā)電子教案,第7章1.,Compilation,Mode欄該欄的功能是確定設(shè)置編譯模式,它有以下兩個(gè)選項(xiàng)。lStandar(標(biāo)準(zhǔn)):選擇標(biāo)準(zhǔn)模式時(shí),編譯器將保留函數(shù)和全局變量的符號(hào)名,因?yàn)檫@些符號(hào)可能被其他程序引用。在引用某一符號(hào)時(shí),編譯器將在符號(hào)表中查找這個(gè)符號(hào)。該模式比較適合于單個(gè)文件的程序。lOptimize(優(yōu)化):選擇優(yōu)化模式時(shí),編譯器

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論