版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
本資料來源第9章二次開發(fā)及AutoLISP?
AutoCAD二次開發(fā)在化工制圖中的應(yīng)用?
AutoLISP語言基礎(chǔ)?VisualLISP基礎(chǔ)?
DCL基礎(chǔ)AutoCAD二次開發(fā)在化工制圖中的應(yīng)用本章目錄二次開發(fā)的目的及必要性幾種主要的二次開發(fā)語言簡介化工AutoCAD二次軟件開發(fā)的思路及步驟二次開發(fā)的目的及必要性AutoCAD軟件作為CAD工業(yè)的旗幟產(chǎn)品,以其強(qiáng)大的功能得到廣大用戶的青睞。它具有精確的坐標(biāo)系,能夠完成各種圖形的精確繪制、任意縮放和修改,支持?jǐn)?shù)字化儀的精確輸入。盡管如此,由于AutoCAD是作為一個通用的繪圖軟件而設(shè)計(jì)開發(fā)的,但各行各業(yè)都有自己的行業(yè)和專業(yè)標(biāo)準(zhǔn),許多單位也有自己的技術(shù)規(guī)格和企業(yè)標(biāo)準(zhǔn),化工行業(yè)也不例外,有著大量的各種圖紙?jiān)O(shè)計(jì)標(biāo)準(zhǔn),因而,AutoCAD不可能完全滿足每一用戶的具體應(yīng)用要求。但是,AutoCAD具有開放的體系結(jié)構(gòu),它允許用戶和開發(fā)者在幾乎所有方面對其進(jìn)行擴(kuò)充和修改,同時可以利用多種開發(fā)語言,開發(fā)可以自動完成某一繪制任務(wù)的軟件,可大大提高繪制速度,改善工作效率。以上工作可稱之為AutoCAD的二次開發(fā)技術(shù)。也就說AutoCAD二次開發(fā)技術(shù)主要包括兩個方面:一方面是對它的功能進(jìn)行擴(kuò)充和修改,如修改或增加菜單、進(jìn)行各種定制工作;另一方面是利用開發(fā)工具編寫能夠完成特殊任務(wù)的自動繪制軟件,如下面將介紹的通過人機(jī)交互界面輸入必要的數(shù)據(jù)后,系統(tǒng)自動完成法蘭的繪制,就屬于這一類型,在化工繪圖中,我們需要的也是有關(guān)這一方面的開發(fā)軟件,它能最大限度地滿足用戶的特殊需要,通過調(diào)用各種已經(jīng)開發(fā)好的專用零件圖繪制軟件,加快繪制速度,提高工作效率。尤其重要的是,可以將大量的計(jì)算工作交給計(jì)算機(jī)去完成。這樣,不僅提高了繪圖速度,同時也提高了繪制精度,避免了人為的計(jì)算錯誤。AutoCAD二次開發(fā)在化工制圖中的應(yīng)用目前很多化工技術(shù)人員對AutoCAD的使用一般還僅限于它自身的各種繪圖功能,使用鼠標(biāo)手工繪制各種圖件,對其強(qiáng)大的二次開發(fā)功能還沒有進(jìn)行深入使用。如果能使用AutoCAD的二次開發(fā)技術(shù)開發(fā)出一套軟件,讓AutoCAD自動繪制我們目前使用的各種圖件,就可以大大提高作圖效率,發(fā)揮出AutoCAD的強(qiáng)大圖形編輯、修改功能,對圖件中的各種元素進(jìn)行任意修改,滿足各種不同的圖件格式和繪圖標(biāo)準(zhǔn),由此可見,對于一個化工技術(shù)人員來說,學(xué)會自己開發(fā)AutoCAD二次應(yīng)用軟件顯得十分必要,因?yàn)檫@將大大減少具體的繪制工作,而可以將主要精力集中到設(shè)備的設(shè)計(jì)中去,從而加快化工設(shè)備的開發(fā)速度。近幾年來,隨著計(jì)算機(jī)軟、硬件技術(shù)的飛速發(fā)展及其應(yīng)用的普及,也帶來了化工領(lǐng)域使用計(jì)算機(jī)的浪潮。首先是各課程教學(xué)使用了CAI課件,學(xué)生們可以清楚地看到各種物質(zhì)的具體顏色,并可以看到動畫反應(yīng),讓學(xué)生們能夠形象生動地上課。然后是各種實(shí)驗(yàn)仿真軟件的出現(xiàn),讓學(xué)生們不用親自下到工廠,也不用浪費(fèi)任何原料,在沒有危險的情況下就可以完成對實(shí)驗(yàn)過程或者是生產(chǎn)流程的學(xué)習(xí)和實(shí)習(xí)。同時計(jì)算機(jī)可以對反應(yīng)進(jìn)行模擬,對實(shí)驗(yàn)數(shù)據(jù)的擬合都大大方便了化工工作者。隨之誕生的各種化工專用軟件,給化學(xué)工業(yè)的發(fā)展注入了新鮮血液,使化學(xué)工業(yè)的發(fā)展如虎添翼。AutoCAD二次開發(fā)在化工制圖中的應(yīng)用目前,隨著化學(xué)工業(yè)的進(jìn)一步向前發(fā)展,各種新的機(jī)械設(shè)備被人們設(shè)計(jì)和制造,這些設(shè)備的工程圖都是一件很大的工程。比如一個完整熱交換器圖紙,就需要一個專人1~2天的工夫才能完成。利用AutoCAD的二次開發(fā)技術(shù),可以編出對熱交換器的圖進(jìn)行批處理的程序,只需通過簡單的人機(jī)會話,計(jì)算機(jī)能自動繪制出圖紙,這也是化工技術(shù)人員學(xué)習(xí)掌握AutoCAD二次開發(fā)技術(shù)的目的之所在。隨著化學(xué)工業(yè)的不斷日新月異,對設(shè)備圖紙繪制的速度要求也將越來越快,利用AutoCAD二次開發(fā)技術(shù)開發(fā)而成的軟件直接繪制各種設(shè)備的技術(shù)將在化學(xué)工業(yè)中得到更加廣泛的應(yīng)用,其開發(fā)技術(shù)必將伴著化學(xué)工業(yè)一起發(fā)展。AutoCAD二次開發(fā)在化工制圖中的應(yīng)用幾種主要的二次開發(fā)語言簡介⑴AutoLISPAutoLISP語言是AutoCAD所支持的一種內(nèi)嵌式語言,它由美國Autodesk公司開發(fā),其目的是使用戶十分方便地利用AutoLISP編程語言對AutoCAD進(jìn)行二次開發(fā),它采用了與LISP語言中的CommonLISP最近的語法和習(xí)慣約定,同時又針對AutoCAD增加了許多新的功能,使用戶可以直接調(diào)用幾乎全部的AutoCAD命令,因此它既具有一般高級語言的基本結(jié)構(gòu)和功能,又具有AutoCAD強(qiáng)大的圖形處理能力,是目前計(jì)算機(jī)輔助設(shè)計(jì)和繪圖中較廣泛采用的語言之一。⑵VisualLISPVisualLISP(簡稱VLISP)是為加速AutoLISP程序開發(fā)而設(shè)計(jì)的強(qiáng)有力的工具。它提供了一個完整的集成開發(fā)環(huán)境(包括編譯器、調(diào)試器及其他工具,它可以顯著地提高自定義AutoCAD的效率)。VisualLISP提供的主要工具有:文本編輯器、格式編排器、語法檢查器、源代碼調(diào)試器、檢驗(yàn)和監(jiān)視工具、文件編譯器、工程管理系統(tǒng)/快捷相關(guān)幫助與自動匹配功能和智能化控制臺等。VisualLISP克服了AutoLISP一直以來開發(fā)中所存在的諸多不便和某些局限性。從語言方面看,VisualLISP對AutoLISP語言進(jìn)行了擴(kuò)展,可以通過MicrosoftActiveXAutomation接口與對象交互。同時,通過實(shí)現(xiàn)事件反應(yīng)器函數(shù),還擴(kuò)展了AutoLISP響應(yīng)事件的能力。VisualLISP已經(jīng)被完整地集成到AutoCAD中。AutoCAD二次開發(fā)在化工制圖中的應(yīng)用⑶VBAVBA(VisualBasicforApplication)最早是建立在Office97中的標(biāo)準(zhǔn)宏語言,由于它在開發(fā)方面的易用性且功能強(qiáng)大,許多軟件開發(fā)商都將其嵌入自己的應(yīng)用程序中,作為一種開發(fā)工具提供給用戶使用。而AutoCADVBA就是集成在AutoCAD中的VisualBasic開發(fā)環(huán)境,與VB的主要區(qū)別是VBA在與AutoCAD相同的進(jìn)程空間中運(yùn)行,提供了與AutoCAD關(guān)聯(lián)的快捷的編程環(huán)境,程序設(shè)計(jì)直觀快捷。它還提供了與其它可使用VBA應(yīng)用程序集成的能力,可以作為其它應(yīng)用程序如Word或Excel的自動化控制器??梢钥闯?,VBA是其中編程很為快捷方便的一種,對于非計(jì)算機(jī)專業(yè)而更多熟悉VB編程語言的人來說,可以很快就掌握它。⑷ADSADS的全名是AutoCADDevelopmentSystem,它是AutoCAD的C語言開發(fā)系統(tǒng),ADS本質(zhì)上是一組可以用C語言編寫AutoCAD應(yīng)用程序的頭文件和目標(biāo)庫,它直接利用用戶熟悉的各種流行的C語言編譯器,將應(yīng)用程序編譯成可執(zhí)行的文件在AutoCAD環(huán)境下運(yùn)行,這種可以在AutoCAD環(huán)境中直接運(yùn)行的可執(zhí)行文件叫做ADS應(yīng)用程序。ADS由于其速度快,又采用結(jié)構(gòu)化的編程體系,因而很適合于高強(qiáng)度的數(shù)據(jù)處理,如二次開發(fā)的機(jī)械設(shè)計(jì)CAD、工程分析CAD、建筑結(jié)構(gòu)CAD、土木工程CAD、化學(xué)工程CAD、電氣工程CAD等。AutoCAD二次開發(fā)在化工制圖中的應(yīng)用⑸ObjectARX
ObjectARX是一種嶄新的開發(fā)AutoCAD應(yīng)用程序的工具,她以C++為編程語言,采用先進(jìn)的面向?qū)ο蟮木幊淘?,提供可與AutoCAD直接交互的開發(fā)環(huán)境,能使用戶方便快捷地開發(fā)出高效簡潔的AutoCAD應(yīng)用程序。ObjectARX并沒有包含在AutoCAD中,可在AutoDESK公司網(wǎng)站中去下載,其最新版本是ObjectARXforAutoCAD2005,它能夠?qū)utoCAD的所有事務(wù)進(jìn)行完整的、先進(jìn)的、面向?qū)ο蟮脑O(shè)計(jì)與開發(fā),并且開發(fā)的應(yīng)用程序速度更快、集成度更高、穩(wěn)定性更強(qiáng)。⑹ActiveXAutomation ActiveX技術(shù)來源于OLE(ObjectLinkingandEmbedding)技術(shù)。OLE最初是對象鏈接與嵌入,后來發(fā)展成為復(fù)合文檔技術(shù),包括文字、圖片、聲音、動畫片和視頻等媒體可以共同存在于一個文檔中。它們可以由不同的應(yīng)用程序產(chǎn)生,同時也可以在該文檔中編輯。如果應(yīng)用程序支持OLE文檔,則在不同應(yīng)用程序之間的切換由OLE自動完成。OLE技術(shù)和其它技術(shù)共同作用,從而實(shí)現(xiàn)不同應(yīng)用程序之間的無縫鏈接。自動化技術(shù)(Automation)允許一個應(yīng)用程序驅(qū)動另外一個程序。驅(qū)動程序被稱為自動化客戶,另一個為自動化服務(wù)器。自動化技術(shù)后來發(fā)展成為ActiveXAutomation。AutoCAD二次開發(fā)在化工制圖中的應(yīng)用⑺VisualJavaJava是是最早由Sun公司司創(chuàng)建的一一種頗具魅魅力的程序序設(shè)計(jì)語言言,她是針針對嵌入系系統(tǒng)而設(shè)計(jì)計(jì)的。像許許多開發(fā)語語言一樣,,Java是一組實(shí)實(shí)時庫的集集合,可為為軟件開發(fā)發(fā)者提供多多種工具來來創(chuàng)建軟件件、管理用用戶接口、、進(jìn)行網(wǎng)絡(luò)絡(luò)通訊、發(fā)發(fā)布應(yīng)用程程序等。對對AutoCAD用用戶和開發(fā)發(fā)者而言,,Java代表著新新一代的編編程語言,,它主要用用于開發(fā)出出全新的優(yōu)優(yōu)秀產(chǎn)品。。AutoCAD二次次開發(fā)在化化工制圖中中的應(yīng)用化工AutoCAD二次軟件件開發(fā)的思思路及步驟驟化工AutoCAD二次軟件件的開發(fā)和和其它軟件件的開發(fā)一一樣,均需需遵循一定定的規(guī)律。。一般來說說,一個完完善的AutoCAD二次軟軟件開發(fā)過過程可以分分成4個階階段的內(nèi)容容,它們分分別是系統(tǒng)統(tǒng)規(guī)劃、系系統(tǒng)開發(fā)、、系統(tǒng)運(yùn)行行與維護(hù)、、系統(tǒng)更新新。而系統(tǒng)統(tǒng)規(guī)劃又可可以分成3個方面的的內(nèi)容,它它們分別是是戰(zhàn)略規(guī)劃劃、需求分分析、資源源分配。在在這個階段段,我們主主要任務(wù)是是確定所需需要開發(fā)軟軟件的目的的、使用對對象、使用用者的要求求、開發(fā)者者目前的能能力及擁有有的資源。。軟件開發(fā)發(fā)的第二階階段是系統(tǒng)統(tǒng)開發(fā),它它包括系統(tǒng)統(tǒng)分析、系系統(tǒng)設(shè)計(jì)、、系統(tǒng)實(shí)施施。這時的的主要任務(wù)務(wù)根據(jù)第一一階段已經(jīng)經(jīng)做的工作作基礎(chǔ)上,,提出所開開發(fā)軟件的的邏輯方案案、確定系系統(tǒng)開發(fā)中中每一步的的內(nèi)容和任任務(wù),在此此基礎(chǔ)上,,再進(jìn)行系系統(tǒng)總體結(jié)結(jié)構(gòu)設(shè)計(jì),,提出系統(tǒng)統(tǒng)總體布局局的方案。。至此,軟軟件開發(fā)工工作還停留留在邏輯開開發(fā)狀態(tài),,尚未進(jìn)入入具體的編編碼工作。。軟件開發(fā)完完成第二階階段的系統(tǒng)統(tǒng)設(shè)計(jì)后,,就進(jìn)入了了實(shí)質(zhì)性的的編碼工作作,也就是是說進(jìn)入了了系統(tǒng)的實(shí)實(shí)施階段,,這時要完完成各種編編碼工作,,完善系統(tǒng)統(tǒng)各個接口口之間的聯(lián)聯(lián)絡(luò),改善善界面的友友好程度,,對整個軟軟件進(jìn)行組組裝及調(diào)試試,最后完完成交付使使用前的各各項(xiàng)工作。。如該保密密的部分需需要進(jìn)行封封裝;可以以公開的部部分需要做做好友善的的人機(jī)界面面。AutoCAD二次次開發(fā)在化化工制圖中中的應(yīng)用軟件開發(fā)的的第三階段段是運(yùn)行和和維護(hù)階段段,一般對對于規(guī)模較較小的軟件件,對這方方面的考慮慮就比較少少。比如我我們自己經(jīng)經(jīng)常開發(fā)一一些小軟件件來解決一一些實(shí)際問問題,就較較少考慮以以后的維護(hù)護(hù),一般只只要滿足目目前的應(yīng)用用就可以了了。但對于于一個完善善的軟件來來說,就需需要考慮實(shí)實(shí)際運(yùn)行過過程中出現(xiàn)現(xiàn)的各種情情況,并有有解決方案案及維護(hù)方方法。這樣樣,就會使使得一個看看上去較小小的軟件,,也會變得得復(fù)雜起來來,但這種種復(fù)雜為使使用和維護(hù)護(hù)帶來了方方便,提高高了軟件對對付外來情情況的能力力,提高了了軟件的使使用壽命,,實(shí)際上等等于節(jié)約了了軟件使用用成本。任何一個軟軟件,總有有它更新的的時候,此此時,進(jìn)入入了軟件開開發(fā)的第4階段,即即系統(tǒng)更新新階段,在在新的情況況下,對原原有的系統(tǒng)統(tǒng)進(jìn)行更新新開發(fā)。AutoCAD二次次開發(fā)在化化工制圖中中的應(yīng)用AutoLISP語語言基礎(chǔ)本章目錄基本運(yùn)算基本函數(shù)編程中常用用的分支及及條件判斷斷函數(shù)常用的繪圖圖命令A(yù)utoLISP命命令調(diào)用過過程⑴加法格式:(+<數(shù)數(shù)><數(shù)>……)功能:求出出所列數(shù)的的總和實(shí)例:(+2030)結(jié)結(jié)果為50(+15-10)結(jié)結(jié)果為為5⑵減法格式:(-<數(shù)><數(shù)數(shù)>…)功能:求出出第一個數(shù)數(shù)逐次減去去后面數(shù)的的差實(shí)例:(-1203050)結(jié)結(jié)果為40(-15-10)結(jié)結(jié)果為為25⑶乘法格式:(*<數(shù)數(shù)><數(shù)>……)功能:求出出所列數(shù)的的乘積實(shí)例:(*2030)結(jié)結(jié)果為600(*1.5-102)結(jié)結(jié)果為為-30⑷除法格式:(/<數(shù)數(shù)><數(shù)>……)功能:求求出第一一個數(shù)逐逐次除以以后面數(shù)數(shù)的商實(shí)例:(/20)結(jié)結(jié)果果為20(/1302)結(jié)結(jié)果果為65(/330)由由于于表中的的兩個元元素均為為整型數(shù)數(shù),結(jié)果果也為整整型數(shù),,故結(jié)果果為0(/3.030)結(jié)結(jié)果果為0.1(/30(/69))系系統(tǒng)統(tǒng)顯示被被0除,,原因在在于表((/69))的值為為0AutoLISP語言言基礎(chǔ)基本本運(yùn)運(yùn)算算⑸自然數(shù)數(shù)求冪格式:(exp<數(shù)>)功能:求求e的<數(shù)>次次冪值,,e=2.71828實(shí)例:(exp2.0)結(jié)結(jié)果為為7.3890561(exp0)結(jié)結(jié)果為為1⑹普通數(shù)數(shù)求冪格式:((expt<底數(shù)數(shù)><冪>)功能:求求<底數(shù)數(shù)>的<冪>次方值值實(shí)例:((expt23))結(jié)結(jié)果為為8⑺求自然然對數(shù)格式:((log<數(shù)>))功能:求求<數(shù)>的自然然對數(shù),,要求<數(shù)>必必須大于于零實(shí)例:((log10.0))結(jié)結(jié)果為為2.3025851⑻求平方方根格式:((sqrt<數(shù)>)功能:求求<數(shù)>的平方方根,要要求<數(shù)數(shù)>必須須大于零零實(shí)例:((sqrt4.0))結(jié)結(jié)果為為2.0AutoLISP語言言基礎(chǔ)基本本運(yùn)運(yùn)算算⑼求絕對對值格式:((abs<數(shù)>))功能:求求<數(shù)>的絕對對值實(shí)例:((abs-3)結(jié)結(jié)果為為3⑽求最大大值格式:(max<數(shù)1><數(shù)2>……)功能:求求<數(shù)1>,<數(shù)2>…的的最大值值實(shí)例:((max23410)結(jié)結(jié)果為為10⑾求余數(shù)數(shù)格式:(rem<數(shù)1><數(shù)2>……)功能:求求<數(shù)1>整除除<數(shù)2>的余余數(shù),若若參數(shù)多多于兩個個,則將將<數(shù)1>整除除<數(shù)2>后的的余數(shù)再再整除<數(shù)3>,求出出余數(shù),,以此類類推。實(shí)例:(rem5094)結(jié)結(jié)果為1AutoLISP語言言基礎(chǔ)基本本運(yùn)運(yùn)算算AutoLISP語言言基礎(chǔ)⑴正弦函函數(shù)SIN格式:(sin<角度>),,其中中<角角度>用用弧度表表示功能:求求<角度度>的正正弦值實(shí)例:(sin(/pi2))結(jié)結(jié)果果為1⑵余弦函函數(shù)COS格式:(cos<角度>),,其中中<角角度>用用弧度表表示功能:求求<角度度>余弦弦值實(shí)例:(cos(/pi2))結(jié)結(jié)果果為0⑶正切TAN格式:(tan<角度>),,其中中<角角度>用用弧度表表示功能:求求<角度度>正切切值實(shí)例:(tan(/pi4))結(jié)結(jié)果果為1⑷反正切切函數(shù)ATAN格式:(atan<數(shù)>)功能:求求<數(shù)>反正切切值,單單位為弧弧度,為為[-ππ/2,,π/2]實(shí)例:(atan(1))結(jié)結(jié)果果為0.785398,即即(ππ/4)實(shí)例:(cos(/pi2))結(jié)結(jié)果果為0基本本函函數(shù)數(shù)⑸取整函函數(shù)FIX格式:(fix<數(shù)>)功能:求求<數(shù)>的整數(shù)數(shù)部分,,相當(dāng)于于高級語語言中的的“INT(數(shù)數(shù))”語語句。實(shí)例:(fix7.8)結(jié)結(jié)果果為7(fix-7.8)結(jié)結(jié)果果為-7(fix9)結(jié)結(jié)果果為9⑹實(shí)型化化函數(shù)FLOAT格式:(float<數(shù)>)功能:求求<數(shù)>轉(zhuǎn)化為為實(shí)型數(shù)數(shù),不考考慮該數(shù)數(shù)原來的的類型實(shí)例:(float3)結(jié)結(jié)果果為3.0(float3.3)結(jié)結(jié)果果為3.3⑺賦值函函數(shù)SETQ格式:(setq<變量量1><表達(dá)達(dá)式1>[<變量2><表達(dá)式式2>]…)功能:將將表達(dá)式式的值賦賦給變量量,變量量和表達(dá)達(dá)式需成成對出現(xiàn)現(xiàn)實(shí)例:(setqa10)結(jié)結(jié)果a=10(setqs“it”)結(jié)結(jié)果果s=“it”(setqb123c10d45)結(jié)結(jié)果b=123c=10d=45(setqt(+3445))結(jié)結(jié)果t=79(setqP1‘(3445))(setqp1'(3040))//確確定點(diǎn)P1的坐坐標(biāo)(setqp2'(300400))//確確定點(diǎn)P2的坐坐標(biāo)(command““l(fā)ine”p1p2““”)//繪制制從P1點(diǎn)到P2點(diǎn)的的直線AutoLISP語言言基礎(chǔ)基本本函函數(shù)數(shù)⑻取表中中第一元元素CAR函數(shù)數(shù)格式:(car<表>),表表必須為為引用表表而非標(biāo)標(biāo)準(zhǔn)表,,但可以以是簡單單表,也也可可以是嵌嵌套表。。功能:提提取<表表>的頂頂層第一一個元素素實(shí)例:(car‘(135))結(jié)結(jié)果為為1(car‘((13)65))結(jié)結(jié)果果為(13))⑼取表中中除第一一元素外外其它元元素的CDR函函數(shù)格式:(cdr<表>),表表必須為為引用表表而非標(biāo)標(biāo)準(zhǔn)表,,但可以以是簡單單表,也也可以是是嵌套表表。功能:提提取<表表>的除除頂層第第一個元元素外的的其它元元素實(shí)例:(cdr‘(135))結(jié)結(jié)果為為(35)(cdr‘((13)65))結(jié)結(jié)果果為(65))⑽CAR和CDR的組組合函數(shù)數(shù)CAR和和CDR可以任任意組合合,其組組合深度度可達(dá)4層,執(zhí)執(zhí)行時從從右到左左依次執(zhí)執(zhí)行,若若搞錯次次序,其其結(jié)果必必然出錯錯。4個個層次的的組合形形式為CAR、、CXXR、CXXXR、CXXXXR,,其中X既可以以是A也也可以是是D,例例如:(cadr'(2(123)34))結(jié)結(jié)果果為(123)(caadr'(2((116)23)34))結(jié)結(jié)果果為(116)(caaadr'(2((116)23)34))結(jié)結(jié)果果為11(caaddr'(2((116)23)(34)))結(jié)結(jié)果果3AutoLISP語言言基礎(chǔ)基本本函函數(shù)數(shù)⑾LAST函數(shù)數(shù)格式:(last<表>),,表必須須為引用用表而非非標(biāo)準(zhǔn)表表,但可可以是簡簡單表,,也可以以是嵌套套表。功能:提提取<表表>的頂頂層中最最后一個個元素實(shí)例:(last'(123))結(jié)結(jié)果為為3(last‘‘(123(45)))結(jié)結(jié)果為((45)⑿NTH函函數(shù)數(shù)格式式::(nth<序序號號><表表>),,表表必必須須為為引引用用表表而而非非標(biāo)標(biāo)準(zhǔn)準(zhǔn)表表,,但但可可以以是是簡簡單單表表,,也也可可以以是是嵌嵌套套表表。。功能能::提提取取<表表>中中第第<序序號號>個個元元素素,,注注意意第第一一個個元元素素的的序序號號為為0號號,,以以此此類類推推。。實(shí)例例::(nth2'(23(45)5))結(jié)結(jié)果果為為((45))(nth3'(23(45)5))結(jié)結(jié)果果為為5⒀LIST函函數(shù)數(shù)格式式::(list<表表達(dá)達(dá)式式1><表表達(dá)達(dá)式式2>…………)功能能::將將所所有有的的<表表達(dá)達(dá)式式>按按原原位位置置構(gòu)構(gòu)成成新新表表,,可可用用于于確確定定點(diǎn)點(diǎn)的的坐坐標(biāo)標(biāo)位位置置。。實(shí)例例::(list23'(56))結(jié)結(jié)果果為為((23((56))))(list23)結(jié)結(jié)果果為為((23))下面面是是一一個個利利用用list確確定定點(diǎn)點(diǎn)的的位位置置,,繪繪制制圓圓的的小小程程序序::(setqp1(list22233))(setqp2(list200300))(command"circle"p2160)(command"circle"p1160)AutoLISP語語言言基基礎(chǔ)礎(chǔ)基本本函函數(shù)數(shù)⒁ATOF函函數(shù)數(shù)格式式::(atof<數(shù)數(shù)字字串串>)功能能::將將<數(shù)數(shù)字字串串>轉(zhuǎn)轉(zhuǎn)換換成成實(shí)實(shí)型型數(shù)數(shù),,返返回回實(shí)實(shí)型型數(shù)數(shù)實(shí)例例::(atof"23")返返回回結(jié)結(jié)果果為為23.0⒂ASCII函函數(shù)數(shù)格式式::(ascii<字字符符串串>)功能能::將將<字字符符串串>中中第第一一個個字字符符轉(zhuǎn)轉(zhuǎn)換換成成ASCII碼碼,,并并返返回回該該值值實(shí)例例::(ascii"bc")返返回回結(jié)結(jié)果果為為98⒃CHR函函數(shù)數(shù)格式式::(chr<整整數(shù)數(shù)>)功能能::將將ASCII碼碼為為<整整數(shù)數(shù)>的的轉(zhuǎn)轉(zhuǎn)換換成成相相應(yīng)應(yīng)字字符符,,并并返返回回該該字字符符實(shí)例:(chr69)返返回結(jié)結(jié)果為"E"(chr80)返返回回結(jié)果為"P“⒄ITOA函數(shù)格式:(itoa<整數(shù)數(shù)>)功能:將<整數(shù)>轉(zhuǎn)轉(zhuǎn)換成整數(shù)數(shù)字符串實(shí)例:(itoa5)返返回結(jié)果果為"5““AutoLISP語語言基礎(chǔ)基本函函數(shù)數(shù)⒅ATOI函數(shù)格式:(atoi<數(shù)字字串>)功能:將<數(shù)字串>轉(zhuǎn)換成整整數(shù),返回回值截去小小數(shù)部分實(shí)例:(atoi"45.4")返返回結(jié)結(jié)果為45(atoi"-5.6")返返回回結(jié)果為-5(atoi"7")返返回回結(jié)果為7(atoi"34.6ac")返返回回結(jié)果為34(atoi"df43")45返返回回結(jié)果為0說明:當(dāng)數(shù)數(shù)字串中有有非數(shù)字字字符時,則則轉(zhuǎn)換到第第一個非數(shù)數(shù)字原子時時終止。⒆STRCAT函數(shù)數(shù)格式:(strcat<字字符串1><字字符串2>……)功能:將<字符串>按先后順順序頭尾相相連起來,,組成一個個新的字符符串。實(shí)例:(strcat"bc""etr""ty")返返回結(jié)結(jié)果為"bcetrty"AutoLISP語語言基礎(chǔ)基本函函數(shù)數(shù)(20)SUBSTR函數(shù)格式:(substr<字符串串><起點(diǎn)>[<長度度>]功能:從<字符串>中提取一一個子串,,該子串從從起點(diǎn)的字字符位置開開始,由連連續(xù)<長度度>個字符符組成,若若<長度>缺省,則則到字符串串結(jié)束。實(shí)例:(substr"b212c"23)返返回回結(jié)果為"212"(substr"b2er12c"2)返返回回結(jié)果為"2er12c“(21)READ函函數(shù)格式:(read<字符符串>)功能:將<字符串>轉(zhuǎn)化成表表或原子,,文件處理理時經(jīng)常使使用實(shí)例:(read"ad")返返回回結(jié)果為AD(read"b")返返回結(jié)果為為B(read"(ab)")返返回結(jié)果為為(AB)(read"(34)")返返回結(jié)果為為(34)AutoLISP語語言基礎(chǔ)基本函函數(shù)數(shù)編程中常用用的分支及及條件判斷斷函數(shù)在程序編寫寫中經(jīng)常會會用到一些些條件判斷斷函數(shù)及循循環(huán)函數(shù),,沒有這些些函數(shù),就就難以完成成一個理想想的程序,,下面將一一些在編程程中使用程程度較高的的函數(shù)介紹紹一下。⑴關(guān)系運(yùn)算算函數(shù)關(guān)系運(yùn)算函函數(shù)是編程程中分支及及條件判斷斷函數(shù)的基基礎(chǔ),它對對數(shù)值型表表達(dá)式的大大小進(jìn)行比比較,表達(dá)達(dá)式可以是是兩個或兩兩個以上,,其返回值值是邏輯變變量。比較較運(yùn)算成立立,則返回回T;不成成立則返回回nil,,常作為條條件用于條條件判斷語語句和循環(huán)環(huán)判斷語句句中,這一一點(diǎn)將在下下面講解中中提到。AutoLISP共共有6種關(guān)關(guān)系運(yùn)算函函數(shù),它們們分別是““=”等于于、“/=”不等于于、“<”小于、“>”大于、“<=”小于等于、、“>=”大于等于。。其中等于于的關(guān)系函函數(shù),其表表達(dá)式只能能兩個,下下面是6種關(guān)系函數(shù)數(shù)的實(shí)際例例子:AutoLISP語語言基礎(chǔ)(<2456)返回結(jié)果T(<2453)返回結(jié)果nil,全程比較較(>8739)返返回結(jié)果nil,全程比較較(>8731)返返回結(jié)果T(=22)返返回結(jié)果T(="s""b")返回結(jié)果nil(/=123)返返回結(jié)果T(/=113)返返回結(jié)果nil,只比較前前面兩個表表達(dá)式(<=335)返返回結(jié)果T(>=551)返返回結(jié)果T⑵邏輯運(yùn)算函函數(shù)AutoLISP共共有3種邏邏輯運(yùn)算函函數(shù),分別別是邏輯和和AND、、邏輯或OR、邏輯輯非NOT,下面通通過實(shí)例說說明其應(yīng)用用。(andadc3)返回結(jié)果nil,只要有一一個表達(dá)式式為假,則則返回nil(anddc)返回結(jié)果nil(setqa3b4)返回結(jié)果4,返回最后后一個賦值值(andab)返回結(jié)果T,由于前面面給a、b賦了值(and(<23)(+13)(>35))返回結(jié)果nil(or12ab)返回結(jié)果T,只要有一一個表達(dá)式式為真,則則返回T(or(>42)(<42))返回結(jié)果T(not2)返回結(jié)果nil(not(>69))返回結(jié)果T⑶二分支條件件函數(shù)IF格式:(if<測試表表達(dá)式><成立立表達(dá)式><非非表達(dá)式>)功能:對<測試表達(dá)達(dá)式>進(jìn)行行運(yùn)算,若若<測試表表達(dá)式>成成立,則執(zhí)執(zhí)行<成立立表達(dá)式>,否則,,執(zhí)行<非非表達(dá)式>,兩者必必居其一,,所以稱之之為二分支支條件函數(shù)數(shù),是在編編程中經(jīng)常常用到的條條件判斷函函數(shù)。下面面是幾個實(shí)實(shí)際例子::(if(=13)35)測測試式不成成立,執(zhí)行行第二個表表達(dá)式,第第二個表達(dá)達(dá)式為原子子,返回5(if(<13)(setqa2)(setqa9))測測試式成立立,執(zhí)行第第一個表達(dá)達(dá)式,返回回2(if(=13)"yes")測測試式式不成立,,但無第二二個表達(dá)式式,返回nil(if1"yes""no")測測試表表達(dá)式為1,雖然不不為T,但但也不為nil,仍仍執(zhí)行第一一表達(dá)式,,返回“yes”AutoLISP語言基基礎(chǔ)⑷多分支條件函函數(shù)COND前面二分支條條件函數(shù)只能能解決兩種結(jié)結(jié)果中選一種種的條件判斷斷,若有多個個條件中選一一,則需用COND函數(shù)數(shù)。格式:(cond((<測試表表達(dá)式1><結(jié)果表表達(dá)式1>))(<測試表達(dá)達(dá)式2><結(jié)果表達(dá)達(dá)式2>))::(<測試表達(dá)達(dá)式n><結(jié)果表達(dá)達(dá)式n>)))該函數(shù)的參數(shù)數(shù)為任意數(shù)目目的表,每個個表有兩個元元素,第一個個元素為測試試式,第二個個元素為結(jié)果果。功能:對每一一個支表中的的<測試表達(dá)達(dá)式>依次進(jìn)進(jìn)行運(yùn)算,若若<測試表達(dá)達(dá)式>成立,,則執(zhí)行該支支表對應(yīng)的<結(jié)果表達(dá)式式>,停止后后面的測試工工作;否則,,繼續(xù)執(zhí)行<測試表達(dá)式式>,直到最最后一個分支支條件。AutoLISP語言基基礎(chǔ)⑸順序控制函數(shù)數(shù)PROGN常和IF函數(shù)一起使用用,使其在某某一條件下,,順序執(zhí)行多多個表達(dá)式。。格式:(progn<表達(dá)式1><表達(dá)式2>::)功能:按順序序執(zhí)行多個表表達(dá)式,并返返回最后表達(dá)達(dá)式求值結(jié)果果,表達(dá)式需需為標(biāo)準(zhǔn)表。。⑹常見測試函數(shù)數(shù)ZEROP函數(shù)用于判斷斷測試項(xiàng)是否否為零,若為為零,則返回回T,否則返回nil。MINUSP函數(shù)用于判斷斷測試項(xiàng)是否否為負(fù),若為為負(fù),則返回回T,否則返回nil。NUMBERP函數(shù)用于判斷斷測試項(xiàng)是否否為數(shù),若為為數(shù),則返回回T,否則返回nil。ATOM函數(shù)用于判斷斷測試項(xiàng)是否否為原子,若若為原子數(shù),,則返回T,否則返回nil。LISTP函數(shù)用于判斷斷測試項(xiàng)是否否為表,若為為表,則返回回T,否則返回nil。AutoLISP語言基基礎(chǔ)⑺循環(huán)函數(shù)在各種程序編編寫中,循環(huán)環(huán)語句是不可可缺少的,AutoLISP的兩種主要循循環(huán)函數(shù)是WHILE函數(shù)和REPEAT函數(shù),下面分分別介紹之。。①WHILE函數(shù)格式:(while<測試表達(dá)式式>[標(biāo)準(zhǔn)表1][標(biāo)準(zhǔn)表2]:)功能:先對測測試表達(dá)式進(jìn)進(jìn)行測試,若若其值不為nil,則依依次執(zhí)行下面面的各個[標(biāo)準(zhǔn)表],,執(zhí)行完各[標(biāo)準(zhǔn)表表]后,再返返回來對測試試表達(dá)式進(jìn)行行測試,直至至測試表達(dá)式式為nil,,停止循環(huán)執(zhí)執(zhí)行。②REPEAT函數(shù)格式:(repeat<次數(shù)>[標(biāo)準(zhǔn)表1][標(biāo)準(zhǔn)表2]:)功能:按該定定的次數(shù)進(jìn)行行循環(huán)計(jì)算式式為nil,,停止循環(huán)執(zhí)執(zhí)行。AutoLISP語言基基礎(chǔ)常用的繪圖命命令⑴常用的交互互命令在程序編寫中中經(jīng)常要用到到一些交互式式命令,通過過交互命令,,可提高程序序的人機(jī)對話話能力。AutoLISP也提供了了一些常見的的交互命令,,下面分別介介紹。①輸入整型數(shù)數(shù)GETINT格式:(getint[提示])功能:該函數(shù)數(shù)提示用戶輸輸入一個整型型數(shù),并返回回該數(shù),常和和賦值函數(shù)SETQ合用用實(shí)例:(setqn((getint“n=”))//等待用戶戶輸入一個整整型數(shù),并將將該數(shù)賦值給給n。②輸入實(shí)型數(shù)數(shù)GETREAL格式:(getreal[提示]))功能:該函數(shù)數(shù)提示用戶輸輸入一個整型型數(shù),并返回回該數(shù),常和和賦值函數(shù)SETQ合用用實(shí)例:(setqa((getreal“a=”))//等待用戶戶輸入一個實(shí)實(shí)型數(shù),并將將該數(shù)賦值給給a。③輸入字符串串GETSTRING格式:(getstring[提示示])功能:該函數(shù)數(shù)提示用戶輸輸入一個字符符串,并返回回該數(shù),常和和賦值函數(shù)SETQ合用用實(shí)例:(setqm((getstring“yourname”))//等待用戶戶輸入一個字字符串,并將將該字符串賦賦值給m,若若輸入xiaodong,返回““xiaodong”。。需要注意的的是輸入字符符串時,千萬萬別用空格鍵鍵,否則只把把空格鍵以前前的內(nèi)容作為為輸入的字符符串。AutoLISP語言基基礎(chǔ)④輸入點(diǎn)GETPOINT格式:(getpoint[基點(diǎn)][提示])功能:該函數(shù)數(shù)提示用戶輸輸入一個點(diǎn),,若有基點(diǎn),,這將從基點(diǎn)點(diǎn)到輸入的點(diǎn)點(diǎn)之間畫一條條直線拖動直直線,但命令令執(zhí)行過后消消失。實(shí)例:(setqP1(getpoint‘(4050)“第二點(diǎn)點(diǎn)”))//等待用用戶從鍵盤輸輸入點(diǎn)或用光光標(biāo)選點(diǎn)。⑤輸入距離值值GETDIST格式:(getdist[提示])功能:該函數(shù)數(shù)提示用戶輸輸入一個距離離值。實(shí)例:(setqtspac(getdist““輸入距離””))//等待用戶戶從鍵盤輸入入某一數(shù)值。。⑵點(diǎn)的確定確定點(diǎn)的位置置,是進(jìn)行各各種繪制工作作的基礎(chǔ),除除了前面介紹紹的用getpoint函數(shù)外,還還可以用下面面幾種方法確確定點(diǎn)(通過過繪制直線的的小程序加以以說明驗(yàn)證))。實(shí)例:(setqp1'(3040))//用用禁止求值表表,確定P1點(diǎn)的位置(setqp2'(300400))(command"line"p1p2"")⑶直線的繪制制LINE格式:(command“l(fā)ine”P1P2P3……………[條件]))功能:將P1、P2、P3…….等等點(diǎn)用直線連連接起來,其其中[條件]可缺省,若若條件中輸入入“c“,則則繪制的將是是封閉曲線。。AutoLISP語言基基礎(chǔ)⑷多義線繪制制格式:(command“pline”<起點(diǎn)>“w””<起點(diǎn)點(diǎn)線寬><末點(diǎn)線寬寬><第二點(diǎn)>………<末點(diǎn)點(diǎn)>[條件件])功能:將P1、P2、P3…….等等點(diǎn)用各種曲曲線連接起來來,其中[條條件]可缺省省,若條件中中輸入“c““,則繪制的的將是封閉曲曲線。⑸矩形繪制格式:(command“rectang”[倒角(C)/標(biāo)高(E)/圓角角(F)/厚厚度(T)/寬度(W)]<指指定另一個角角點(diǎn)>[尺寸(D)]<指指定另一個角角點(diǎn)>)功能:繪制符符合格式中定定義的矩形。。⑹圓的繪制格式:(command“circle”[三點(diǎn)(3P)/兩點(diǎn)(2P)/相相切、相切、、半徑(T)]<圓心<半徑>)功能:繪制符符合格式中定定義的圓,默默認(rèn)的輸入方方式是圓心、、半徑,其它它輸入方式需需根據(jù)具體選選定的形式而而定。⑺交點(diǎn)的確定格式:(inters<端點(diǎn)1><端點(diǎn)2><端點(diǎn)點(diǎn)3><端端點(diǎn)4>[<任選項(xiàng)>])功能能::求求<端端點(diǎn)點(diǎn)1>和和<端端點(diǎn)點(diǎn)2>所所確確定定的的直直線線和和<端端點(diǎn)點(diǎn)3>和和<端端點(diǎn)點(diǎn)4>所所確確定定的的直直線線的的交交點(diǎn)點(diǎn),,若若存存在在則則返返回回交交點(diǎn)點(diǎn),,若若不不存存在在,,則則返返回回nil。。如如果果有有任任選選項(xiàng)項(xiàng),,且且該該項(xiàng)項(xiàng)為為nil,,則則可可求求延延長長線線的的交交點(diǎn)點(diǎn)。。AutoLISP語語言言基基礎(chǔ)礎(chǔ)⑻圖層層的的設(shè)設(shè)置置格式式::(command““l(fā)ayer””““m””<圖圖層層名名>““c””<圖圖層層顏顏色色>““l(fā)””<圖圖層層線線型型>““l(fā)w””<圖圖層層線線寬寬>"")功能能::設(shè)設(shè)置置和和格格式式中中描描述述相相符符合合的的圖圖層層,,除除圖圖層層名名為為不不可可缺缺省省外外,,其其它它均均可可采采用用默默認(rèn)認(rèn)值值,,當(dāng)當(dāng)調(diào)調(diào)用用圖圖層層時時,,可可只只采采用用格格式式中中的的前前4項(xiàng)項(xiàng)。。⑼剖面面線線繪繪制制格式式::((command““batcht””<填填充充圖圖案案模模式式>[<比比例例>][<角角度度>]<填填充充對對象象>))功能能::將將<填填充充對對象象>按按格格式式中中定定義義的的要要求求進(jìn)進(jìn)行行填填充充,,其其中中[<比比例例>]和和[<角角度度>]可可默默認(rèn)認(rèn),,<填填充充對對象象>有有多多種種獲獲取取方方法法,,如如果果是是填填充充剛剛繪繪制制好好的的實(shí)實(shí)體體,,則則可可用用entlast命命令令。。⑽尺寸寸標(biāo)標(biāo)注注格式式::((command““dim””<標(biāo)標(biāo)注注模模式式><標(biāo)標(biāo)注注起起點(diǎn)點(diǎn)><標(biāo)標(biāo)注注終終點(diǎn)點(diǎn)><標(biāo)標(biāo)注注線線位位置置中中點(diǎn)點(diǎn)>))[<標(biāo)標(biāo)注注內(nèi)內(nèi)容容>]))功能能::<標(biāo)標(biāo)注注起起點(diǎn)點(diǎn)>和和<標(biāo)標(biāo)注注終終點(diǎn)點(diǎn)>之之間間按按標(biāo)標(biāo)注注模模式式標(biāo)標(biāo)注注尺尺寸寸,,若若標(biāo)標(biāo)注注內(nèi)內(nèi)容容缺缺省省,,則則按按默默認(rèn)認(rèn)方方式式標(biāo)標(biāo)注注。。⑾文本本書書寫寫格式式::(command““text””[<起起點(diǎn)點(diǎn)類類型型>]<起起點(diǎn)點(diǎn)><字字高高><字字旋旋轉(zhuǎn)轉(zhuǎn)角角度度4><文文字字內(nèi)內(nèi)容容>)功能能::將將文文字字內(nèi)內(nèi)容容按按格格式式中中的的定定義義書書寫寫出出來來,,如如缺缺省省[<起起點(diǎn)點(diǎn)類類型型>]則則以以左左下下角角為為起起點(diǎn)點(diǎn)。。AutoLISP語語言言基基礎(chǔ)礎(chǔ)AutoLISP命命令令調(diào)調(diào)用用過過程程首先先將將AUTOLISP的的程程序序用用任任何何一一種種ASCII碼碼文文本本編編輯輯器器來來編編輯輯,,在在DOS環(huán)環(huán)境境下下可可采采用用EDIT編編輯輯,,在在WINDOWS環(huán)環(huán)境境下下可可用用附附件件中中的的記記事事本本編編輯輯,,并并注注意意在在保保存存時時以以.LSP為為后后綴綴,,一一般般的的調(diào)調(diào)用用過過程程如如下下。。①用編編輯輯器器編編寫寫好好,,以以*.LSP存存盤盤。。②在AutoCAD中中的的命命令令中中輸輸入入::(Load““盤盤符符/子子目目錄錄/文文件件名名””),,回回車車。。③輸入入:(文文件件名名、、參參數(shù)數(shù)1、、參參數(shù)數(shù)2…………)[注注意意參參數(shù)數(shù)和和參參數(shù)數(shù)之之間間不不要要加加逗逗號號],,回回車車。。④在AutoCAD的的界界面面上上自自動動生生成成圖圖。。VisualLISP基基礎(chǔ)礎(chǔ)本章章目目錄錄安裝啟動編輯調(diào)試安裝VisualLISP無需需單獨(dú)安裝裝,我們在在安裝AutoCAD2004時已已經(jīng)將其捆捆綁按安裝裝在一起,,只要在使使用時調(diào)用用它即可,,這為我們們省了不少少安裝軟件件過程中的的麻煩,同同時也使得得該軟件和和AutoCAD之之間的關(guān)系系更加緊密密。尤其是是VisualLISP中中的部分AutoLISP程序幾乎乎可以移植植到任何版版本的AutoCAD中,而而不受版本本先后的影影響。VisualLISP基基礎(chǔ)啟動啟動VisualLISP有兩種方方法,但都都需首先啟啟動AutoCAD軟件。第第一種方法法是從AutoCAD菜單中中選擇“工工具”>>“AutoLisp”>>“VisualLisp編輯器””;第二中中方法是在在AutoCAD命命令行中輸輸入“vlisp””,啟動VisualLisp編輯輯器。VisualLISP基基礎(chǔ)編輯VisualLISP的程程序在編輯輯窗口進(jìn)行行編輯,編編輯時,系系統(tǒng)會自動動進(jìn)行一些些識別,并并將其顯示示成不同的的顏色。如如括號是紅紅色;函數(shù)數(shù)是藍(lán)色,,如果想輸輸?shù)氖歉鞣N種函數(shù),一一般為表中中第一項(xiàng),,但輸完后后系統(tǒng)沒有有自動變成成藍(lán)色,則則說明你輸輸錯了;雙雙引號內(nèi)的的繪圖命令令為粉紅色色,包括雙雙引號本身身;各種變變量是黑色色;數(shù)字是是綠色。掌掌握這些規(guī)規(guī)律對減少少編程中的的錯誤很有有幫助。在在編程過程程中,如果果遇到一些些較為生疏疏的函數(shù),,可以通過過系統(tǒng)的幫幫助功能加加以解決。。調(diào)試調(diào)試是編程程工作中一一項(xiàng)十分重重要又非常常繁重的工工作。在沒沒有VisualLISP之前,AutoLISP程序的調(diào)調(diào)試是十分分困難的,,常常找不不到問題之之所在。幸幸好有了VisualLISP,使使調(diào)試工作作有了質(zhì)的的飛躍。利利用其提供供的調(diào)試工工具和專用用工具,一一般可以較較快地找到到問題。系系統(tǒng)調(diào)試中中最常見的的錯誤是缺缺少括號或或有多余括括號;其次次是錯誤函函數(shù)或命令令,常常是是繪圖命令令輸錯,因因?yàn)槿艉瘮?shù)數(shù)錯誤,在在編寫中可可以根據(jù)顏顏色判斷;;還有列表表缺陷,被被零除及函函數(shù)被取消消。對函數(shù)數(shù)被取消這這種現(xiàn)象有有點(diǎn)特殊,,因?yàn)樗⒉⒉皇钱?dāng)前前所編的程程序有問題題,而是在在上一次調(diào)調(diào)試過程中中,所編程程序存在缺缺陷,使的的AutoCAD處處于命令等等待狀態(tài)。。這時,需需要通過視視圖轉(zhuǎn)換,,激活A(yù)utoCAD,取消消命令等待待狀態(tài),就就可以了。。根據(jù)我們們自己開發(fā)發(fā)程序的經(jīng)經(jīng)驗(yàn),認(rèn)為為調(diào)試工作作需和整個個軟件的開開發(fā)工作結(jié)結(jié)合起來。。在程序開開發(fā)的步驟驟上考慮到到調(diào)試工作作問題,以以采用從下下到上的程程序編程工工作為佳,,結(jié)合該方方法,作者者推薦如下下的編程調(diào)調(diào)試步驟。。①將整個軟件件分解成功功能相對獨(dú)獨(dú)立的功能能塊,再將將功能塊分分解成若干干個小程序序。VisualLISP基基礎(chǔ)②將小程序序中的每一一個語句,,按照先后后次序進(jìn)行行編輯。在在編輯過程程中首先利利用顏色的的改變,糾糾正一些明明顯的錯誤誤,如果對對某一語句句把握不大大,可直接接加載該語語句,判斷斷系統(tǒng)能否否通過。關(guān)關(guān)于加載運(yùn)運(yùn)行可通過過選中需要要加載的語語句,點(diǎn)擊擊專用工具具中欄中的的第二個工工具,一般般情況下,,以編完相相對較完整整的一段語語句后,再再將這段進(jìn)進(jìn)行加載運(yùn)運(yùn)行較好,,如所有的的賦值語句句。一段語語句編寫完完成,加載載運(yùn)行結(jié)果果正確,則則進(jìn)入下一一段語句的的編寫。如如正確,但但根據(jù)錯誤誤提示可明明顯找到問問題的,則則修改后再再加載運(yùn)行行;如無法法根據(jù)錯誤誤提示找到到問題的,,則可以采采用調(diào)試工工具欄中的的各種方法法進(jìn)行錯誤誤查找,如如仍無法查查到,則需需逐句加載載,但在逐逐句加載中中,需要補(bǔ)補(bǔ)充對加載載語句中所所需變量值值的設(shè)定工工作。通過過以上工作作,將小程程序全局調(diào)調(diào)通,并進(jìn)進(jìn)行封裝。。③將同一功能的的小程序進(jìn)行行組裝,并進(jìn)進(jìn)行調(diào)試,調(diào)調(diào)試完成,將將功能程序進(jìn)進(jìn)行封裝。④將不同功能的的功能程序進(jìn)進(jìn)行組裝,并并進(jìn)行全局調(diào)調(diào)試,調(diào)試通通過,完成軟軟件基本開發(fā)發(fā)工作。⑤根據(jù)客戶應(yīng)用用的各種情況況,對軟件進(jìn)進(jìn)行各種測試試,對發(fā)現(xiàn)問問題進(jìn)行修改改,最后得到到完善軟件,,并將其封裝裝。VisualLISP基礎(chǔ)DCL基礎(chǔ)本章目錄定義控件程序編輯軟件調(diào)試及加加載定義對話框是人機(jī)機(jī)交互的主要要界面之一,,它具有良好好的視覺效果果,操作方便便、直觀,輸輸入數(shù)據(jù)與順順序無關(guān)。當(dāng)當(dāng)我們編寫好好程序,需要要通過外界輸輸入數(shù)據(jù)時,,對話框是一一種首選的交交互工具。對對話框可以用用DCL(DialogControlLanguage,即對話框控制制語言)來編編寫。DCL本身可直接在在VisualLISP的編輯框框中按規(guī)律編編寫,并進(jìn)行行調(diào)試和預(yù)覽覽工作,編輯輯完成后,將將其后綴取為為“.dcl”保存,然然后在主程序序中用VisualLISP語句句調(diào)用即可。??上蛴脩籼崽峁﹫D形的交交互環(huán)境,使使操作更為方方便和直觀。。DCL文件件由ASCII碼組成,,后綴為“.dcl”。。DCL基礎(chǔ)控件控件是DCL中的主要組組成部分,編編寫對
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度電影后期導(dǎo)演聘用及視覺效果合同3篇
- Unit 3 English Around the World Topic 3 Section B 說課稿 - 2024-2025學(xué)年仁愛科普版英語九年級上冊
- Unit 3 The world of Science Using language 現(xiàn)在完成時的被動語態(tài)說課稿-2023-2024學(xué)年高中英語外研版(2019)必修第三冊
- Unit 6 Useful numbers (Period 3)(說課稿)-2024-2025學(xué)年人教PEP版(2024)英語三年級上冊
- 湖北省咸寧市(2024年-2025年小學(xué)六年級語文)部編版隨堂測試(下學(xué)期)試卷及答案
- 2025年度綠色信貸項(xiàng)目融資合同2篇
- 新疆昌吉回族自治州(2024年-2025年小學(xué)六年級語文)統(tǒng)編版開學(xué)考試(上學(xué)期)試卷及答案
- 貴州農(nóng)業(yè)職業(yè)學(xué)院《中醫(yī)推拿學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- Unit 8 Section A 3a - 3c 說課稿 2024-2025學(xué)年人教版八年級英語上冊
- 中國船級社規(guī)范 郵輪規(guī)范
- 全過程造價咨詢項(xiàng)目保密及廉政執(zhí)業(yè)措施
- 《機(jī)加工操作員績效考核方案》-企業(yè)管理
- 光是怎樣傳播的說課稿
- 勞動技能實(shí)操指導(dǎo)(勞動教育)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- nba球星喬丹課件
- 離婚協(xié)議書模板可打印(2024版)
- 重慶三峰環(huán)境集團(tuán)股份有限公司招聘筆試題庫2024
- 中國式現(xiàn)代化為主題的論文3000字(1) (1)全文
- YB2防爆電機(jī)使用說明書
- 安全生產(chǎn)法律法規(guī)清單(2024年5月版)
- 江蘇省連云港市2023-2024學(xué)年八年級下學(xué)期期末道德與法治試卷(含答案解析)
評論
0/150
提交評論