[已解決][問題]關於LISP中的函數有定義卻顯示錯誤是未定義函數
2 posters
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第1頁(共1頁)
[已解決][問題]關於LISP中的函數有定義卻顯示錯誤是未定義函數
關於LISP中的函數有定義卻顯示錯誤是未定義函數
載入LISP後就直接顯示
;錯誤:no function definition: SELMENU
載入LISP後就直接顯示
;錯誤:no function definition: SELMENU
- 代碼:
(defun c:test-1070821 ( / *error* pickfirst Sum)
;;取得設定的系統變數
(setq pickfirst (getvar "pickfirst"))
;;設定系統變數
(setvar "pickfirst" 0)
;;錯誤處理
(defun *error* (err)
;;恢復設定的系統變數值
(setvar "pickfirst" pickfirst)
(princ (strcat ";錯誤:" err))
)
(setq Sum 0)
(SelMenu)
;;恢復設定的系統變數值
(setvar "pickfirst" pickfirst)
;;;結束;;;
(princ)
)
(defun SelMenu ( / sc );;;循環選單;;;
(initget 0 "增減數值(C),C 歸零數值(R),R 放置文字(T),T 放置數值(RT),RT 放置文字和數值(TRT),TRT 結束(Q),Q")
(setq sc (getkword "\n 繼續選取物件或[增減數值(C)/歸零數值(R)/放置文字(T)/放置數值(RT)/放置文字和數值(TRT)/結束(Q)]"))
(cond
((= sc "增減數值(C)")(K:CalculationRF))
((= sc "歸零數值(R)")(progn
(setq Sum 0)
(SelMenu)
)
((= sc "放置文字(T)")(K:PlaceO 0))
((= sc "放置數值(RT)")(K:PlaceO 1))
((= sc "放置文字和數值(TRT)")(K:PlaceO 2))
((= sc "結束(Q)")())
(t (K:SelCal))
)
;;; (princ)
);;;結束;;;
naruto018 在 2018-08-21, 13:14 作了第 2 次修改
naruto018- 中級會員
- 文章總數 : 224
年齡 : 32
來自 : 高雄
職業 : 學習中(CAD,Revit,Excel VBA)
愛好 : 當個懶熊
個性 : 內向
使用年資 : 新手
使用版本 : 2015
AutoCAD基礎篇等級 : 10星級
積分 : 5
經驗值 : 4495
威望值 : 564
注冊日期 : 2016-11-29
回復: [已解決][問題]關於LISP中的函數有定義卻顯示錯誤是未定義函數
建議以後可以使用 VLISP (指令) ,透過 Visual LISP 互動式開發環境來寫程式。
因為最後面少了一個「括號」,Visual LISP會幫你加上去就ok囉
■VLISP (指令)
可使用 Visual LISP 對 AutoLISP 程式進行開發、測試以及除錯。
會顯示 Visual LISP IDE (互動式開發環境)。
註: 使用 VLIDE 指令來傳送對 Visual LISP 的控制權。它執行的功能和 VLISP 指令相同。
相關文章 >> AutoLISP 與 Visual LISP 概述
因為最後面少了一個「括號」,Visual LISP會幫你加上去就ok囉
■VLISP (指令)
可使用 Visual LISP 對 AutoLISP 程式進行開發、測試以及除錯。
會顯示 Visual LISP IDE (互動式開發環境)。
註: 使用 VLIDE 指令來傳送對 Visual LISP 的控制權。它執行的功能和 VLISP 指令相同。
相關文章 >> AutoLISP 與 Visual LISP 概述
____________________________________________________________________________________
👉[訂購]AutoCAD圖塊大師課程(點我)👈
回復: [已解決][問題]關於LISP中的函數有定義卻顯示錯誤是未定義函數
原來是少了一個括號導致錯誤
我以為少括號會直接顯示缺少右括號錯誤
而這次是顯示未定義錯誤
所以沒想到會是缺少括號導致
我是有用IDE編輯器
但是我對裡面功能沒有很了解
原來可以利用 適用選項 這個功能來確認是否左右括號相對
另外想問一下
如果有這種多個函數的LISP
要如何測試?
我是用載入LISP方式測試
有其他方法嗎?
簡短程式碼可以用主控台測試
多個函數好像不行
是我方法錯誤?還是要用一些方法才行
我以為少括號會直接顯示缺少右括號錯誤
而這次是顯示未定義錯誤
所以沒想到會是缺少括號導致
我是有用IDE編輯器
但是我對裡面功能沒有很了解
原來可以利用 適用選項 這個功能來確認是否左右括號相對
另外想問一下
如果有這種多個函數的LISP
要如何測試?
我是用載入LISP方式測試
有其他方法嗎?
簡短程式碼可以用主控台測試
多個函數好像不行
是我方法錯誤?還是要用一些方法才行
naruto018- 中級會員
- 文章總數 : 224
年齡 : 32
來自 : 高雄
職業 : 學習中(CAD,Revit,Excel VBA)
愛好 : 當個懶熊
個性 : 內向
使用年資 : 新手
使用版本 : 2015
AutoCAD基礎篇等級 : 10星級
積分 : 5
經驗值 : 4495
威望值 : 564
注冊日期 : 2016-11-29
回復: [已解決][問題]關於LISP中的函數有定義卻顯示錯誤是未定義函數
多個函數的LISP,我的方法通常會先分開測試,然後再逐一組合測試naruto018 寫到:原來是少了一個括號導致錯誤
我以為少括號會直接顯示缺少右括號錯誤
而這次是顯示未定義錯誤
所以沒想到會是缺少括號導致
我是有用IDE編輯器
但是我對裡面功能沒有很了解
原來可以利用 適用選項 這個功能來確認是否左右括號相對
另外想問一下
如果有這種多個函數的LISP
要如何測試?
我是用載入LISP方式測試
有其他方法嗎?
簡短程式碼可以用主控台測試
多個函數好像不行
是我方法錯誤?還是要用一些方法才行
____________________________________________________________________________________
👉[訂購]AutoCAD圖塊大師課程(點我)👈
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第1頁(共1頁)
這個論壇的權限:
您 無法 在這個版面回復文章