我想看一级黄色大片_久久亚洲国产精品一区二区_久久精品免视看国产明星_91久久青青青国产免费

您的位置:網站首頁 > CAD教程 > CAD教程文章

Visual LISP集成開發環境簡介

時間:2010-11-17 09:34:22 來源:未知

一、 Visual LISP概述

Visual LISP簡稱VLISP,是為加速AutoLISP程序開發而設計的軟件工具,它提供了一個完整的集成開發環境,包括編譯器、調試器和其他工具,它可以顯著地提高自定義AutoCAD的效率。

VLISP提供的主要工具有:文本編輯器、格式編排器、語法檢查器、源代碼調試器、檢驗和監視工具、文件編譯器、工程管理系統、上下文相關幫助與自動匹配功能和智能化控制臺等。

二、 啟動和退出Visual LISP集成開發環境

1. 啟動步驟:(菜單方式)

(1) 啟動AutoCAD

(2) 工具——AutoLisp——Visual LISP編輯器

若使用鍵盤命令,則:

命令:vlisp或vlide

2.退出:

文件——退出

三、 Visual LISP 集成開發環境介紹

包含以下幾個部分:

1. 菜單欄

2. 工具欄:標準、調試、工具、搜索、視圖 (共5個)

3. 控制臺窗口

可輸入AutoLisp命令,代替菜單和工具欄命令

4. 狀態欄——屏幕底部

顯示Visual LISP的狀態信息

5. 跟蹤窗口

啟動時包含:關于Visual LISP當前版本的信息、啟動Visual LISP遇到錯誤時的一些信息。

6. 文本編輯器

打開或新建一個Visual LISP源程序,就可以看到文本編輯器的全貌。

7. 其他Visual LISP窗口(必要時才打開)

(一)Visual LISP菜單介紹

¨菜單的內容:隨著激活窗口的不同菜單內容將會不同。

1. 文件:打開、新建、保存

2. 編輯:復制、粘貼、括號匹配

3. 搜索:查找、替換文本、設置書簽

4. 視圖:查找、替換變量及符號值等

5. 工程:應用程序的工程功能——管理項目、編譯程序等

6. 調試:提供程序調試功能——設置和刪除斷點、單步執行、檢查變量狀態、檢查表達式結果等

7. 工具:設置Visual LISP選項文本格式、環境選項變量,如窗口和工具欄的位置

8. 窗口:提供窗口管理功能

9. 幫助:提供幫助功能,包括顯示在線幫助

(二)工具欄介紹

工具欄——包括一系列功能的Vlisp命令組

1. 標準:新建、打開、保存、打印輸出、剪切、復制、粘貼、取消、恢復、完成詞語功能

2. 工具:加載整個活動窗口代碼、加載指定部分代碼、語法檢查(全部、指定部分)、對窗口代碼格式化(整個活動窗口、指定代碼)、設置注釋代碼、取消整塊注釋塊、在線幫助

3. 搜索:查找、替換、查找并替換、設置或取消書簽、下一個書簽、上一個書簽

4. 視圖:切換到AutoCAD窗口、選擇窗口、Visual LISP控制臺、打開檢驗窗口、堆棧跟蹤、符號服務、自動匹配、顯示監視窗口

5. 調試:下一層嵌套表達式、下一個表達式、跳出表達式、繼續執行、退出、重置、設置或取消斷點切換、添加監視、顯示上一個斷點

(三)控制臺操作

1. 控制臺的功能

這里是用命令操作的地方(Visual LISP命令、AutoLISP命令),并能看到結果,類似于AutoCAD的命令行窗口

如:(setq a “hello,The world!”)

查看a的值時

在控制臺窗口用:a¿(¿表示回車)

AutoCAD命令:!a¿

2. Visual LISP控制臺窗口中的獨特特性

¨可以在新的一行上輸入上一行沒有完成的AutoLISP表達式

¨可在¿前輸入多個表達式,并在Visual LISP給控制臺返回一個值之前將為每一個表達式求值

¨光標在任意位置均可用¿移至提示符所在行上,如果選中的有文本,則同時移至提示符所在行(此功能可以復制)

¨使用Tab鍵可獲得以前輸入的文本,每按一次即可將上一次的文本顯示,循環執行。Shift+Tab與Tab類似,只是方向相反

¨使用Tab鍵可以實現關聯查找,如輸入“(+Tab”會在以前輸入的文本中查找以“(+”開頭的文本

¨Esc鍵清除提示符下的所有字符,shift+Esc則離開當前行上的文本,并在新的提示符下準備接受用戶的輸入

3. 系統控制臺的快捷菜單——單擊右鍵

*小技巧:可在控制臺窗口與AutoCAD命令行窗口之間復制和粘貼文本。

(四)文本編輯器概述

主要功能:

1. 彩色代碼顯示

2. 文本格式化

3. 括號匹配

4. 執行AutoLISP表達式(不離開文本編輯器)

#p#分頁標題#e#

5. 在多文件間進行查找

6. 語法檢查

(五)加載和運行AutoLISP程序

1. 在AutoCAD窗口操作(略)

2. 在VLISP環境下操作

可加載完整的和部分的AutoLISP程序文件

¨加載完整的AutoLISP程序:文件——打開文件——選擇文件內容——工具——加載選定代碼

¨加載部分的AutoLISP程序:選擇部分文件內容——工具——加載選定代碼

四、 文本編輯器主要功能及其實現

1. 文件/編輯/保存操作

有關操作與Windows環境下的應用軟件(如Word等)類似,這里從略。

2. 代碼分色器

和在控制臺窗口中相同,一旦在文本編輯器中輸入文本后,Visual LISP會判斷所輸入的文本是否是一個AutoLISP內部函數、數字、字符串或者其它的已知元素,并用每一種元素自己的顏色顯示這些文本。

默認的AutoLISP語言代碼配色方案

AutoLISP元素 顏色
內部函數和被保護的符號 藍色
字符串 粉色
整數 綠色
實數 淺藍色
注釋 粉色,背景為灰色
括號 紅色
其他(如用戶變量名等) 黑色

¨Visual LISP可以按照一些語言的種類確定代碼顏色,方法是:

工具——窗口屬性——按語法著色

¨用戶可以自定義顏色配置,方法是:

工具——窗口屬性——配置當前窗口——打開“窗口屬性”對話框進行配置

3. 文本格式化

(1)設置AutoLISP代碼格式的對話框

工具——環境選項——Visual LISP格式選項

(2)AutoLISP代碼格式的總體式樣

有普通、寬行、窄行和分欄四種式樣。

4. 語法檢查

(1) 括號匹配

向前匹配——將插入點(光標位置)移到和開括號相匹配的閉括號之后

向后匹配——將插入點(光標位置)移到和閉括號相匹配的開括號之后

向前選擇——插入點的移動和“向前匹配”相同,同時選中文本

向后選擇——插入點的移動和“向后匹配”相同,同時選中文本

(2) 檢查語法錯誤

¨應用彩色代碼功能檢查語法錯誤

¨用語法檢查功能檢查語法錯誤

主要檢查的語法錯誤為:

·圓括號不匹配

·函數的參數數目不正確

·函數的參數類型不正確

·某些特殊函數的語法不正確

方法:工具——“檢測編輯器中的文字”

如果檢測到錯誤,就會在“編譯輸出”窗口看到錯誤信息。

五、 調試程序

VLISP提供的調試程序工具有:

¨監視窗口:在程序執行過程中查看變量的值

¨檢驗窗口:在“檢驗”對話框中顯示指定對象的詳細信息

¨“符號服務”對話框:符號可以使變量或函數名。通過符號服務對話框可以查看變量的當前值、函數的定義和設置變量及函數的一些特性

¨斷點循環模式:在程序內部設置斷點,中斷程序的執行,并允許用戶在中斷時查看和修改對象值

下面再看幾個用AutoLISP語言編程畫圖的例子:

1. 繪制太極圖案

程序源代碼:

(defun yinyang(/ origin radius i-radius half-r origin-x origin-y os)                   ;#p#分頁標題#e#

(setq os (getvar ”OSMODE”))   ;

(setvar ”OSMODE” 0)            ;

(setq origin (getpoint ”n圖案的中心:”))

(setq radius (getdist ”n圖案的半徑:” origin))

(setq i-radius (getdist ”n內部圓的半徑:” 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. 繪制正弦函數曲線:Y=ASin(X)

;給定坐標原點、周期數和振幅,繪制正弦曲線,自變量以“弧度”為單位

(defun c:drawsin () ;

(initget 1) ;見輔導材料P47

(setq lp  (getpoint ”n 坐標原點:”) ;

lpx (car lp)

lpy (cadr lp)

)

(initget 7) ;

(setq n (getint ”n 周期數:”)) ;

(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 ”")                     ;結束正弦曲線繪制

(command ”line” lp (list (+ lpx (* 2 n pi)) lpy) ”")

;畫水平軸

(command ”line”

(list lpx (+ lpy (* 2 a)))

(list lpx (- lpy (* 2 a)))

“”

)                         ;畫垂直軸

(command ”zoom” ”e” ”")           ;圖形極大化

(command)                        ;中斷執行任何命令

)

3.繪制極坐標方程R=1+2cos2a在區間[0,2p]的圖像

;繪制極坐標方程曲線

(defun c:draw (/ cp)

(setq cp (getpoint ”n基點:”))

(command ”ucs” ”w” ”ucs” ”o” cp ”pline”)

(drawl 0)                ;函數調用#p#分頁標題#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)) ;函數的遞歸調用

)

)

)