AutoLisp總共有17大類函數,請參考下面的簡介,也可參考http://www.autocad.com.tw/lisp_3.htm,它的語法很簡單,就是:(函數 .. .. ..),這樣而已,這".. .. .."代表給定的參數,不同的函數需要不同數量的參數,不同的函數可以做不同的功能,譬如說(+ 2 3) ,這個意思就是說2+3,所以在AutoCAD的環境裡的底下文字輸入區塊打入:(+ 2 3) ,並enter,它就會幫你做2+3的動作,並回傳5,這是單行的AutoLisp指令測試,要注意"函數"跟"("兩者之間不可以有空格,而函數與參數或者參數與參數之間一定要有空格,連在一起寫的話,AutoCAD會不知道那是甚麼東西,而發生錯誤,此外左括號的數量要等於右括號的數量才行。
範例:
(+ 2 3 4) => 2+3+4 => 9 ,求解時可連加一直下去。
(/ (+ 2 3 4) 3) => (2+3+4)/3 => 3 ,求解時要先從裡面的先算,也就是原式可先化為(/ 9 3),然後再9/3 => 3。 第一類 數學運算功能函數
1.1 (+ 數值 數值 ...) 累計實數或整數數值
1.2 (- 數值 數值 ...) 減去數值
1.3 (* 數值 數值 ...) 所有數值乘積
1.4 (/ 數值 數值 ...) 第一個數值除以第二個以後數值的商
1.5 (1+ 數值) 數值+1
1.6 (1- 數值) 數值-1
1.7 (abs 數值) 數值的絕對值
1.8 (atan 數值) 反正切值
1.9 (cos 角度) 角度的餘弦值,角度值為弳度
1.10 (exp 數值) 數值的指數
1.11 (expt 基數 指數) 基數的指數值
1.12 (fix 數值) 將數值轉換為整數值
1.13 (float 數值) 將數值轉換為實數值
1.14 (gcd 數值1 數值2) 二數值的最大公因數
1.15 (log 數值) 數值的自然對數值
1.16 (max 數值 數值 ...) 數值中的最大值
1.17 (min 數值 數值 ...) 數值中的最小值
1.18 pi 常數p ,其值約為 3.1415926
1.19 (rem 數值1 數值2) 二數值的相除的餘數
1.20 (sin 角度) 角度的正旋值,角度值為弳度
1.21 (sqrt 數值) 數值的平方根
第二類 檢驗 & 邏輯運算功能函數
2.1 (= 表示式1 表示式2) 比較表示式1是否等於表示式2適用數值及字串
2.2 (/= 表示式1 表示式2) 比較表示式1是否大於等於表示式 2
2.3 (< 表示式1 表示式2) 比較表示式 1 是否 <小於 表示式 2
2.4 (<= 表示式1 表示式2) 比較表示式 1 是否 <=小於等於 表示式 2
2.5 (> 表示式1 表示式2) 比較表示式 1 是否 >大於 表示式 2
2.6 (>= 表示式1 表示式2) 比較表示式1是否大於等於表示式2
2.7 (~ 數值) 傳回:數值的位元not值,(1的補數)
2.8 (and 表示式1 表示式2…) 邏輯and的結果
2.9 (boole 函數 整數 整數…) 位元式布林運算
2.10 (eq 表示式1 表示式2) 比較表示式1與表示式2是否相同, 適用串列比較(實際相同)
2.11 (equal 表示式1 表示式2 [差量]) 比較表示式1與表示式2是否相同, 差量可省略)
第三類 轉換運算功能函數
3.1 (angtof 字串 [模式]) 角度值的字串轉成實數
3.2 (angtos 角度 [模式 [精度]]) 角度轉成的字串值
3.3 (atof 字串) 字串轉成實數值
3.4 (atoi 字串) 字串轉成整數值
3.5 (cvunit 數值 原始單位 轉換單位) 數值轉換單位後的值轉換根據 acad.unt 檔案
3.6 (distof 字串 [模式]) 依模式將字串轉成實數值
3.7 (itoa 整數) 整數轉成字串
3.8 (rtos 數值 模式 [精度]) 實數轉成字串
3.9 (trans 點 原位置 新位置 [位移]) 轉換座標系統值
第四類 串列處理功能函數
4.1 (append 串列 串列 ...) 結合所有串列成一個串列
4.2 (assoc 關鍵元素 聯合串列) 依關鍵元素找尋聯合串列中關係資料
4.3 (car 串列) 串列中的第一個元素通常用來求 x 座標
4.4 (cadr 串列) 串列中的第二個元素通常用來求 y 座標
4.5 (caddr 串列) 串列中的第三個元素通常用來求 z 座標
4.6 (cdr 串列) 除去第一個元素後的串列
4.7 (cons 新元素 串列) 將新元素結合到串列
4.8 (foreach 名稱 串列 表示式) 將串列的每一元素對應至名稱再依表示式執行回應
4.9 (length 串列) 串列內的元素數量
4.10 (list 元素 元素…) 將所有元素結合成一串列
4.11 (listp 元素) 判斷元素是否為一串
4.12 (mapcar 函數 串列1 串列2 ...) 將串列1、串列2、…等串列的 元素配合函數,求得新串列
4.13 (member 關鍵元素 串列) 依關鍵元素(含)以後的串列
4.14 (nth n 串列) 串列的第n個元素
4.15 (reverse 串列) 將串列元素依順序顛倒過來的串列
4.16 (subst 新項 舊項 串列) 替換新舊串列後的串列
第五類 字串、字元、檔案處理功能函數
5.1 (ascii 字串) 字串第一個字元的『ASCII』碼
5.2 (chr 整數) 整數所對應的 ASCII 單一字串
5.3 (close 檔案名稱) 關閉檔案
5.4 (open 檔名 模式) 開啟檔案代碼,準備讀取或寫入資料
5.5 (read 字串) 串列中的字串的第一組元素
5.6 (read-char [檔案代碼]) 經由鍵盤或檔案中讀取單一字元
5.7 (read-line [檔案代碼]) 經由鍵盤或檔案中讀取一行字串
5.8 (strcase 字串 [字樣]) 轉換字串大小寫
5.9 (strcat 字串1 字串2 ...) 將各字串結合成一字串
5.10 (strlen 字串) 字串構成的字元數(即字串長度)
5.11 (substr 字串 起始 長度) 取出子字串
5.12 (wcmatch 字串 格式) T或nil,將字串與通用字符進行比對
5.13 (write-char 數值 [檔案代碼]) 將一ASCII字元寫到檔案或螢幕
5.14 (write-line 字串 [檔案代碼]) 將字串寫到檔案或螢幕上
第六類 等待輸入功能函數
6.1 (getangle [基點] [提示]) 請求輸入十進位角度數值,回應一弳度值提示及參考點可有可無
6.2 (getcorner 基點 [提示]) 請求輸入另一矩框對角點座標
6.3 (getdist [基點] [提示]) 請求輸入一段距離
6.4 (getint [提示]) 請求輸入一整數值
6.5 (getkword [提示]) 請求輸入『關鍵字』
6.6 (getorient [基點] [提示]) 請求輸入十進位角度,回應一弳度值不受angbase、angdir影響
6.7 (getpoint [基點] [提示]) 請求輸入一個點座標
6.8 (getreal [提示]) 請求輸入一實數
6.9 (getstring [提示]) 請求輸入一字串
6.10 (initget [位元] 字串) 設定下次 getxxx 函數的有效輸入
函數太多, 不及備載, 請至http://web.mcvs.tp.edu.tw/cu01/下載autolisp簡表;
範例:
(+ 2 3 4) => 2+3+4 => 9 ,求解時可連加一直下去。
(/ (+ 2 3 4) 3) => (2+3+4)/3 => 3 ,求解時要先從裡面的先算,也就是原式可先化為(/ 9 3),然後再9/3 => 3。 第一類 數學運算功能函數
1.1 (+ 數值 數值 ...) 累計實數或整數數值
1.2 (- 數值 數值 ...) 減去數值
1.3 (* 數值 數值 ...) 所有數值乘積
1.4 (/ 數值 數值 ...) 第一個數值除以第二個以後數值的商
1.5 (1+ 數值) 數值+1
1.6 (1- 數值) 數值-1
1.7 (abs 數值) 數值的絕對值
1.8 (atan 數值) 反正切值
1.9 (cos 角度) 角度的餘弦值,角度值為弳度
1.10 (exp 數值) 數值的指數
1.11 (expt 基數 指數) 基數的指數值
1.12 (fix 數值) 將數值轉換為整數值
1.13 (float 數值) 將數值轉換為實數值
1.14 (gcd 數值1 數值2) 二數值的最大公因數
1.15 (log 數值) 數值的自然對數值
1.16 (max 數值 數值 ...) 數值中的最大值
1.17 (min 數值 數值 ...) 數值中的最小值
1.18 pi 常數p ,其值約為 3.1415926
1.19 (rem 數值1 數值2) 二數值的相除的餘數
1.20 (sin 角度) 角度的正旋值,角度值為弳度
1.21 (sqrt 數值) 數值的平方根
第二類 檢驗 & 邏輯運算功能函數
2.1 (= 表示式1 表示式2) 比較表示式1是否等於表示式2適用數值及字串
2.2 (/= 表示式1 表示式2) 比較表示式1是否大於等於表示式 2
2.3 (< 表示式1 表示式2) 比較表示式 1 是否 <小於 表示式 2
2.4 (<= 表示式1 表示式2) 比較表示式 1 是否 <=小於等於 表示式 2
2.5 (> 表示式1 表示式2) 比較表示式 1 是否 >大於 表示式 2
2.6 (>= 表示式1 表示式2) 比較表示式1是否大於等於表示式2
2.7 (~ 數值) 傳回:數值的位元not值,(1的補數)
2.8 (and 表示式1 表示式2…) 邏輯and的結果
2.9 (boole 函數 整數 整數…) 位元式布林運算
2.10 (eq 表示式1 表示式2) 比較表示式1與表示式2是否相同, 適用串列比較(實際相同)
2.11 (equal 表示式1 表示式2 [差量]) 比較表示式1與表示式2是否相同, 差量可省略)
第三類 轉換運算功能函數
3.1 (angtof 字串 [模式]) 角度值的字串轉成實數
3.2 (angtos 角度 [模式 [精度]]) 角度轉成的字串值
3.3 (atof 字串) 字串轉成實數值
3.4 (atoi 字串) 字串轉成整數值
3.5 (cvunit 數值 原始單位 轉換單位) 數值轉換單位後的值轉換根據 acad.unt 檔案
3.6 (distof 字串 [模式]) 依模式將字串轉成實數值
3.7 (itoa 整數) 整數轉成字串
3.8 (rtos 數值 模式 [精度]) 實數轉成字串
3.9 (trans 點 原位置 新位置 [位移]) 轉換座標系統值
第四類 串列處理功能函數
4.1 (append 串列 串列 ...) 結合所有串列成一個串列
4.2 (assoc 關鍵元素 聯合串列) 依關鍵元素找尋聯合串列中關係資料
4.3 (car 串列) 串列中的第一個元素通常用來求 x 座標
4.4 (cadr 串列) 串列中的第二個元素通常用來求 y 座標
4.5 (caddr 串列) 串列中的第三個元素通常用來求 z 座標
4.6 (cdr 串列) 除去第一個元素後的串列
4.7 (cons 新元素 串列) 將新元素結合到串列
4.8 (foreach 名稱 串列 表示式) 將串列的每一元素對應至名稱再依表示式執行回應
4.9 (length 串列) 串列內的元素數量
4.10 (list 元素 元素…) 將所有元素結合成一串列
4.11 (listp 元素) 判斷元素是否為一串
4.12 (mapcar 函數 串列1 串列2 ...) 將串列1、串列2、…等串列的 元素配合函數,求得新串列
4.13 (member 關鍵元素 串列) 依關鍵元素(含)以後的串列
4.14 (nth n 串列) 串列的第n個元素
4.15 (reverse 串列) 將串列元素依順序顛倒過來的串列
4.16 (subst 新項 舊項 串列) 替換新舊串列後的串列
第五類 字串、字元、檔案處理功能函數
5.1 (ascii 字串) 字串第一個字元的『ASCII』碼
5.2 (chr 整數) 整數所對應的 ASCII 單一字串
5.3 (close 檔案名稱) 關閉檔案
5.4 (open 檔名 模式) 開啟檔案代碼,準備讀取或寫入資料
5.5 (read 字串) 串列中的字串的第一組元素
5.6 (read-char [檔案代碼]) 經由鍵盤或檔案中讀取單一字元
5.7 (read-line [檔案代碼]) 經由鍵盤或檔案中讀取一行字串
5.8 (strcase 字串 [字樣]) 轉換字串大小寫
5.9 (strcat 字串1 字串2 ...) 將各字串結合成一字串
5.10 (strlen 字串) 字串構成的字元數(即字串長度)
5.11 (substr 字串 起始 長度) 取出子字串
5.12 (wcmatch 字串 格式) T或nil,將字串與通用字符進行比對
5.13 (write-char 數值 [檔案代碼]) 將一ASCII字元寫到檔案或螢幕
5.14 (write-line 字串 [檔案代碼]) 將字串寫到檔案或螢幕上
第六類 等待輸入功能函數
6.1 (getangle [基點] [提示]) 請求輸入十進位角度數值,回應一弳度值提示及參考點可有可無
6.2 (getcorner 基點 [提示]) 請求輸入另一矩框對角點座標
6.3 (getdist [基點] [提示]) 請求輸入一段距離
6.4 (getint [提示]) 請求輸入一整數值
6.5 (getkword [提示]) 請求輸入『關鍵字』
6.6 (getorient [基點] [提示]) 請求輸入十進位角度,回應一弳度值不受angbase、angdir影響
6.7 (getpoint [基點] [提示]) 請求輸入一個點座標
6.8 (getreal [提示]) 請求輸入一實數
6.9 (getstring [提示]) 請求輸入一字串
6.10 (initget [位元] 字串) 設定下次 getxxx 函數的有效輸入
函數太多, 不及備載, 請至http://web.mcvs.tp.edu.tw/cu01/下載autolisp簡表;
留言
張貼留言