為了便于各位了解AUTOLISP,貼如下內容供參考
vV$hGS(f~ .3S\Rrv 1.養(yǎng)成良好的書寫習慣
-Z[R S{#+T 眾所周知,Lisp是一種表結構語言,括號必須成對出現(xiàn),在調試時往往為遺漏了一個括號大
mjkw&2 費周折,所以,養(yǎng)成一個好的編程習慣是學好Lisp所必須的。
&r5&6p ⑴選擇一個較好的編輯器,這是一個基本條件,建議使用Visual Lisp編輯器或Lisplink等
8AC.2v?_ 專用編輯器,此類編輯器可以對函數(shù)突出顯示。
5bGjO&$l ⑵按Lisp(DCL)專有格式書寫,并經(jīng)常對程序進行“格式化”,及時發(fā)現(xiàn)語法錯誤,并有
UH1S_:6 利于調試是查找錯誤。
q9g[+*9]$ ⑶使用自定義函數(shù),并輔助以適當?shù)米⑨,在較大程序中按功能使用自定義函數(shù)可以使得程
(}/.4xE 序條理化。
0C"PC:h5 2.函數(shù)中循環(huán)與轉移的使用
l&e5_]+% 在高級語言中一般有類似“goto”的語句實現(xiàn)轉移,在AutoLisp中沒有轉移的函數(shù)。我們可
$)kBz*C[ 以使用自定義函數(shù)實現(xiàn)轉移,用if及cond輔助實現(xiàn)條件轉移。
HL}sqcp 當我們需要實現(xiàn)在滿足一定條件時進行循環(huán)的功能,一般使用while函數(shù),但有時需要判斷
?-RoqF 的條件較復雜時,使用while函數(shù)往往不能實現(xiàn)或使得程序不夠簡潔。這時我們可以使用“轉移”,
8VAYIxRv 將需要實現(xiàn)的功能作為(子)函數(shù),使用恰當,可以在程序中任意“轉移”。
c"QkE* 一般認為,當一段代碼在不同處重復使用時,我們才會使用子函數(shù)定義,其實,利用函數(shù)的
;?O883@r8 更大的優(yōu)點是使得程序更加結構化。這就使得我們不必拘泥于程序中的循環(huán)語句,而使用函數(shù)的
u+I r:k 循環(huán)調用,輔助適當?shù)呐袛,實現(xiàn)“轉移”,如A->B->A。當然也可以進行自身調用,構成一個
n'0$>Q “標準的”循環(huán)。
~_# Y,)S!z 如例一中,“程序執(zhí)行完畢返回”與“空選返回”兩種情況如果使用循環(huán)語句,其條件是完
N c&i) qh 全不同的,而將函數(shù)本身作為子函數(shù)調用,程序簡潔明了。
]Lb?#S