Ⅰ 如何使用AutoLISP語言常式
AutoLISP語言是AutoCAD的內置的編程語言。 它可以用來創建新的命令或重新定義現有的。AutoLISP語言是一個非常強大的定製工具。本文旨在說明如何載入AutoLISP語言。
你可以復制和粘貼,如下面的例子,或者你可以下載一個*.LSP的文件。開始你需要使用記事本, 因為AutoLISP *.LSP的文件只是普通的文本文件。看其他人的編寫的AutoLISP語言代碼是一個很好的學習方法,網上有很多提供.LSP的文件下載的。
基本過程是非常簡單,如下。 有3個主要步驟(或如果有*.LSP的文件僅僅需要2步),創建lisp文件,載入lisp文件和日常運行lisp程序。
註:AutoLISP語言常式將只在完整版本的AutoCAD運行,他們不會在AutoCADLT版本運行。
創建lisp文件
復製程序代碼並粘貼到Windows中的記事本。
(defunc:zone(/ss la rv i tv op en)
(while(notss)
(princ" Pick any object on the required layer: ")
(setqss(ssget)))
(initget"Length Area")
(setqrv(getkword" Would you like to measure Length/Area <Area>: "))
(and(notrv)
(setqrv"Area"))
(setqla(cdr(assoc8(entget(ssnamess0))))
ss(ssget"X"(list(cons0"*POLYLINE")
(cons8la)))
i(sslengthss)
tv0
op0)
(while(not(minusp(setqi(1-i))))
(setqen(ssnamess i))
(command"_.AREA""_E"en)
(cond((=rv"Length")
(setqtv(+tv(getvar"PERIMETER"))))
(T
(setqtv(+tv(getvar"AREA")))
(if(/=(logand(cdr(assoc70(entgeten)))1)1)
(setqop(1+op))))))
(princ(strcat" Total "rv
" for layer "la
" = "(rtostv22)
" in "(itoa(sslengthss))" polylines "
(if(/=rv"Length")
(strcat(itoaop)" with open polylines")"")))
(prin1))
現在保存文件為zone.lsp,給予它適當的文件名,並確保它有一個.LSP的文件擴展名。
載入lisp文件
打開AutoCAD選擇菜單Tools——AutoLISP——Load Application….彈出對話框(如下圖所示):
load unload apps
使用下面的操作來載入已保存lisp文件:
找到該lisp文件已保存的文件夾。
從列表中選擇所需的文件。
單擊 Load按鈕。如果一切順利,將出現一條消息說「*.lsp成功載入」。
單擊Close按鈕關閉對話方塊。
運行AutoLISP程序
一旦lisp文件被載入,它可以在命令行運行。在運行時只需輸入命令的名稱(而不是文件名)。在lisp文件中開始是(defunc:zone ,所以在命令行輸入zone。