一、 Visual LISP概述
Visual LISP簡(jiǎn)稱VLISP,是為加速AutoLISP程序開(kāi)發(fā)而設(shè)計(jì)的軟件工具,它提供了一個(gè)完整的集成開(kāi)發(fā)環(huán)境,包括編譯器、調(diào)試器和其他工具,它可以顯著地提高自定義AutoCAD的效率。
VLISP提供的主要工具有:文本編輯器、格式編排器、語(yǔ)法檢查器、源代碼調(diào)試器、檢驗(yàn)和監(jiān)視工具、文件編譯器、工程管理系統(tǒng)、上下文相關(guān)幫助與自動(dòng)匹配功能和智能化控制臺(tái)等。
二、 啟動(dòng)和退出Visual LISP集成開(kāi)發(fā)環(huán)境
1. 啟動(dòng)步驟:(菜單方式)
(1) 啟動(dòng)AutoCAD
(2) 工具——AutoLisp——Visual LISP編輯器
若使用鍵盤(pán)命令,則:
命令:vlisp或vlide
2.退出:
文件——退出
三、 Visual LISP 集成開(kāi)發(fā)環(huán)境介紹
包含以下幾個(gè)部分:
1. 菜單欄
2. 工具欄:標(biāo)準(zhǔn)、調(diào)試、工具、搜索、視圖 (共5個(gè))
3. 控制臺(tái)窗口
可輸入AutoLisp命令,代替菜單和工具欄命令
4. 狀態(tài)欄——屏幕底部
顯示Visual LISP的狀態(tài)信息
5. 跟蹤窗口
啟動(dòng)時(shí)包含:關(guān)于Visual LISP當(dāng)前版本的信息、啟動(dòng)Visual LISP遇到錯(cuò)誤時(shí)的一些信息。
6. 文本編輯器
打開(kāi)或新建一個(gè)Visual LISP源程序,就可以看到文本編輯器的全貌。
7. 其他Visual LISP窗口(必要時(shí)才打開(kāi))
(一)Visual LISP菜單介紹
¨菜單的內(nèi)容:隨著激活窗口的不同菜單內(nèi)容將會(huì)不同。
1. 文件:打開(kāi)、新建、保存
2. 編輯:復(fù)制、粘貼、括號(hào)匹配
3. 搜索:查找、替換文本、設(shè)置書(shū)簽
4. 視圖:查找、替換變量及符號(hào)值等
5. 工程:應(yīng)用程序的工程功能——管理項(xiàng)目、編譯程序等
6. 調(diào)試:提供程序調(diào)試功能——設(shè)置和刪除斷點(diǎn)、單步執(zhí)行、檢查變量狀態(tài)、檢查表達(dá)式結(jié)果等
7. 工具:設(shè)置Visual LISP選項(xiàng)文本格式、環(huán)境選項(xiàng)變量,如窗口和工具欄的位置
8. 窗口:提供窗口管理功能
9. 幫助:提供幫助功能,包括顯示在線幫助
(二)工具欄介紹
工具欄——包括一系列功能的Vlisp命令組
1. 標(biāo)準(zhǔn):新建、打開(kāi)、保存、打印輸出、剪切、復(fù)制、粘貼、取消、恢復(fù)、完成詞語(yǔ)功能
2. 工具:加載整個(gè)活動(dòng)窗口代碼、加載指定部分代碼、語(yǔ)法檢查(全部、指定部分)、對(duì)窗口代碼格式化(整個(gè)活動(dòng)窗口、指定代碼)、設(shè)置注釋代碼、取消整塊注釋塊、在線幫助
3. 搜索:查找、替換、查找并替換、設(shè)置或取消書(shū)簽、下一個(gè)書(shū)簽、上一個(gè)書(shū)簽
4. 視圖:切換到AutoCAD窗口、選擇窗口、Visual LISP控制臺(tái)、打開(kāi)檢驗(yàn)窗口、堆棧跟蹤、符號(hào)服務(wù)、自動(dòng)匹配、顯示監(jiān)視窗口
5. 調(diào)試:下一層嵌套表達(dá)式、下一個(gè)表達(dá)式、跳出表達(dá)式、繼續(xù)執(zhí)行、退出、重置、設(shè)置或取消斷點(diǎn)切換、添加監(jiān)視、顯示上一個(gè)斷點(diǎn)
(三)控制臺(tái)操作
1. 控制臺(tái)的功能
這里是用命令操作的地方(Visual LISP命令、AutoLISP命令),并能看到結(jié)果,類似于AutoCAD的命令行窗口
如:(setq a “hello,The world!”)
查看a的值時(shí)
在控制臺(tái)窗口用:a¿(¿表示回車(chē))
AutoCAD命令:!a¿
2. Visual LISP控制臺(tái)窗口中的獨(dú)特特性
¨可以在新的一行上輸入上一行沒(méi)有完成的AutoLISP表達(dá)式
¨可在¿前輸入多個(gè)表達(dá)式,并在Visual LISP給控制臺(tái)返回一個(gè)值之前將為每一個(gè)表達(dá)式求值
¨光標(biāo)在任意位置均可用¿移至提示符所在行上,如果選中的有文本,則同時(shí)移至提示符所在行(此功能可以復(fù)制)
¨使用Tab鍵可獲得以前輸入的文本,每按一次即可將上一次的文本顯示,循環(huán)執(zhí)行。Shift+Tab與Tab類似,只是方向相反
¨使用Tab鍵可以實(shí)現(xiàn)關(guān)聯(lián)查找,如輸入“(+Tab”會(huì)在以前輸入的文本中查找以“(+”開(kāi)頭的文本
¨Esc鍵清除提示符下的所有字符,shift+Esc則離開(kāi)當(dāng)前行上的文本,并在新的提示符下準(zhǔn)備接受用戶的輸入
3. 系統(tǒng)控制臺(tái)的快捷菜單——單擊右鍵
*小技巧:可在控制臺(tái)窗口與AutoCAD命令行窗口之間復(fù)制和粘貼文本。
(四)文本編輯器概述
主要功能:
1. 彩色代碼顯示
2. 文本格式化
3. 括號(hào)匹配
4. 執(zhí)行AutoLISP表達(dá)式(不離開(kāi)文本編輯器)
#p#分頁(yè)標(biāo)題#e#5. 在多文件間進(jìn)行查找
6. 語(yǔ)法檢查
(五)加載和運(yùn)行AutoLISP程序
1. 在AutoCAD窗口操作(略)
2. 在VLISP環(huán)境下操作
可加載完整的和部分的AutoLISP程序文件
¨加載完整的AutoLISP程序:文件——打開(kāi)文件——選擇文件內(nèi)容——工具——加載選定代碼
¨加載部分的AutoLISP程序:選擇部分文件內(nèi)容——工具——加載選定代碼
四、 文本編輯器主要功能及其實(shí)現(xiàn)
1. 文件/編輯/保存操作
有關(guān)操作與Windows環(huán)境下的應(yīng)用軟件(如Word等)類似,這里從略。
2. 代碼分色器
和在控制臺(tái)窗口中相同,一旦在文本編輯器中輸入文本后,Visual LISP會(huì)判斷所輸入的文本是否是一個(gè)AutoLISP內(nèi)部函數(shù)、數(shù)字、字符串或者其它的已知元素,并用每一種元素自己的顏色顯示這些文本。
默認(rèn)的AutoLISP語(yǔ)言代碼配色方案
AutoLISP元素 | 顏色 |
內(nèi)部函數(shù)和被保護(hù)的符號(hào) | 藍(lán)色 |
字符串 | 粉色 |
整數(shù) | 綠色 |
實(shí)數(shù) | 淺藍(lán)色 |
注釋 | 粉色,背景為灰色 |
括號(hào) | 紅色 |
其他(如用戶變量名等) | 黑色 |
¨Visual LISP可以按照一些語(yǔ)言的種類確定代碼顏色,方法是:
工具——窗口屬性——按語(yǔ)法著色
¨用戶可以自定義顏色配置,方法是:
工具——窗口屬性——配置當(dāng)前窗口——打開(kāi)“窗口屬性”對(duì)話框進(jìn)行配置
3. 文本格式化
(1)設(shè)置AutoLISP代碼格式的對(duì)話框
工具——環(huán)境選項(xiàng)——Visual LISP格式選項(xiàng)
(2)AutoLISP代碼格式的總體式樣
有普通、寬行、窄行和分欄四種式樣。
4. 語(yǔ)法檢查
(1) 括號(hào)匹配
向前匹配——將插入點(diǎn)(光標(biāo)位置)移到和開(kāi)括號(hào)相匹配的閉括號(hào)之后
向后匹配——將插入點(diǎn)(光標(biāo)位置)移到和閉括號(hào)相匹配的開(kāi)括號(hào)之后
向前選擇——插入點(diǎn)的移動(dòng)和“向前匹配”相同,同時(shí)選中文本
向后選擇——插入點(diǎn)的移動(dòng)和“向后匹配”相同,同時(shí)選中文本
(2) 檢查語(yǔ)法錯(cuò)誤
¨應(yīng)用彩色代碼功能檢查語(yǔ)法錯(cuò)誤
¨用語(yǔ)法檢查功能檢查語(yǔ)法錯(cuò)誤
主要檢查的語(yǔ)法錯(cuò)誤為:
·圓括號(hào)不匹配
·函數(shù)的參數(shù)數(shù)目不正確
·函數(shù)的參數(shù)類型不正確
·某些特殊函數(shù)的語(yǔ)法不正確
方法:工具——“檢測(cè)編輯器中的文字”
如果檢測(cè)到錯(cuò)誤,就會(huì)在“編譯輸出”窗口看到錯(cuò)誤信息。
五、 調(diào)試程序
VLISP提供的調(diào)試程序工具有:
¨監(jiān)視窗口:在程序執(zhí)行過(guò)程中查看變量的值
¨檢驗(yàn)窗口:在“檢驗(yàn)”對(duì)話框中顯示指定對(duì)象的詳細(xì)信息
¨“符號(hào)服務(wù)”對(duì)話框:符號(hào)可以使變量或函數(shù)名。通過(guò)符號(hào)服務(wù)對(duì)話框可以查看變量的當(dāng)前值、函數(shù)的定義和設(shè)置變量及函數(shù)的一些特性
¨斷點(diǎn)循環(huán)模式:在程序內(nèi)部設(shè)置斷點(diǎn),中斷程序的執(zhí)行,并允許用戶在中斷時(shí)查看和修改對(duì)象值
下面再看幾個(gè)用AutoLISP語(yǔ)言編程畫(huà)圖的例子:
1. 繪制太極圖案
程序源代碼:
(defun yinyang(/ origin radius i-radius half-r origin-x origin-y os) ;#p#分頁(yè)標(biāo)題#e#
(setq os (getvar ”OSMODE”)) ;
(setvar ”OSMODE” 0) ;
(setq origin (getpoint ”n圖案的中心:”))
(setq radius (getdist ”n圖案的半徑:” origin))
(setq i-radius (getdist ”n內(nèi)部圓的半徑:” origin))
(if (> i-radius radius) (setq i-radius (/ radius 4)))
;
(setq half-r (/ radius 2))
(setq origin-x (car origin))
(setq origin-y (cadr origin))
(command ”CIRCLE” origin radius)
(command ”ARC”
“C”
(list origin-x (+ origin-y half-r))
(list origin-x (+ origin-y radius))
origin
)
(command ”ARC”
“C”
(list origin-x (- origin-y half-r))
(list origin-x (- origin-y radius))
origin
)
(command ”CIRCLE”
(list origin-x (+ origin-y half-r))
i-radius
)
(command ”CIRCLE”
(list origin-x (- origin-y half-r))
i-radius
)
(setvar ”OSMODE” os)
(princ) ;
)
2. 繪制正弦函數(shù)曲線:Y=ASin(X)
;給定坐標(biāo)原點(diǎn)、周期數(shù)和振幅,繪制正弦曲線,自變量以“弧度”為單位
(defun c:drawsin () ;
(initget 1) ;見(jiàn)輔導(dǎo)材料P47
(setq lp (getpoint ”n 坐標(biāo)原點(diǎn):”) ;
lpx (car lp)
lpy (cadr lp)
)
(initget 7) ;
(setq n (getint ”n 周期數(shù):”)) ;
(setq a (getint ”n 振幅:”))
(setq x 0
step 0.02
)
(command ”pline”) ;
(while (<= x (* 2 n pi)) ;
(command (list (+ lpx x) ;
(+ lpy (* a (sin x)))
)
)
(setq x (+ x step))
)
(command ”") ;結(jié)束正弦曲線繪制
(command ”line” lp (list (+ lpx (* 2 n pi)) lpy) ”")
;畫(huà)水平軸
(command ”line”
(list lpx (+ lpy (* 2 a)))
(list lpx (- lpy (* 2 a)))
“”
) ;畫(huà)垂直軸
(command ”zoom” ”e” ”") ;圖形極大化
(command) ;中斷執(zhí)行任何命令
)
3.繪制極坐標(biāo)方程R=1+2cos2a在區(qū)間[0,2p]的圖像
;繪制極坐標(biāo)方程曲線
(defun c:draw (/ cp)
(setq cp (getpoint ”n基點(diǎn):”))
(command ”ucs” ”w” ”ucs” ”o” cp ”pline”)
(drawl 0) ;函數(shù)調(diào)用#p#分頁(yè)標(biāo)題#e#
(command ”zoom” ”e”) ;圖形極大化
)
(defun drawl (x / r)
(if (>= x (* 2 pi)) ;
(command ”3,0″ ”" ”ucs” ”w”)
(progn (setq r (+ 1 (* 2 (cos (* 2 x))))) ;
(command (list (* r (cos x)) (* r (sin x))))
(drawl (+ x 0.05)) ;函數(shù)的遞歸調(diào)用
)
)
)
相關(guān)文章
- 2021-08-29環(huán)境藝術(shù)制圖AutoCAD [徐幼光 編著] 2013年P(guān)DF下載
- 2021-08-23精通AutoCAD三維設(shè)計(jì)與開(kāi)發(fā)PDF下載
- 2021-08-22AutoCAD 2013應(yīng)用與開(kāi)發(fā)系列中文版AutoCAD 2013室內(nèi)裝
- 2021-08-22AutoCAD 2013應(yīng)用與開(kāi)發(fā)系列中文版AutoCAD 2013機(jī)械圖
- 2021-08-19數(shù)字化成圖-最新AutoCAD地形圖測(cè)繪高級(jí)開(kāi)發(fā)PDF下載
- 2021-08-03Autodesk RevitStructure2012應(yīng)用寶典 [歐特克軟件(中
- 2021-08-02Autodesk RevitMEP2012應(yīng)用寶典 [歐特克軟件(中國(guó))有限
- 2021-08-02Autodesk Revit2013族達(dá)人速成 [歐特克軟件(中國(guó))有限公
- 2021-08-01Visual Basic與AutoCAD二次開(kāi)發(fā)PDF下載
- 2021-07-31Autodesk Revit2012族達(dá)人速成 [歐特克軟件(中國(guó))有限公