我认为pBe的意思是:
(defun C:PLR (/ cen n)
(setq cen '(20.9463 13.5021 0.0))
(while (= (setq n (getreal "\nEnter a factor (* pi n) - n: ")) "")
(command "line" cen (polar cen (* pi n) 50) "")
)
(princ)
)
遗憾的是,当输入GET*系列函数之一或从AutoLISP调用的命令的提示时,不能在命令行使用AutoLISP表达式。
您可以对内置命令的提示执行此操作,只要这些命令不是从AutoLISP调用的。 一些例子:
错误:
对的:
谢谢Marko,如果SamiFox的意图是始终使用(*pi编号),那么:
(defun C:PLR ( / cen n ang)
(setq cen '(20.9463 13.5021 0.0))
(while (setq n (getreal "\nEnter a factor (* pi n) - n: "))
(setq ang (* pi n))
(while (> ang (* pi 2))
(setq ang (- ang (* pi 2)))
)
(command "line" "_non"
cen "_non"
(polar cen ang 50)""
)
(princ (Strcat "(* pi " (rtos n) ") : " (angtos ang 0 2)))
)
(princ)
)
但是如果每次都想输入一个不同的表达式,那么你可以使用这样的东西
(defun C:PLR (/ cen n ang)
(setq cen '(20.9463 13.5021 0.0))
(while (/= (setq n (getstring T "\nEnter lisp expression :")) "")
(setq _n n
ang (eval (read n))
)
(while (> ang (* pi 2))
(setq ang (- ang (* pi 2)))
)
(command "line"
"_non"
cen
"_non"
(polar cen ang 50)
""
)
(princ (Strcat _n " : " (angtos ang 0 2)))
)
(princ)
)
**注:无错误陷阱**(即输入的有效性)
HTH公司
页:
1
[2]