marko_ribar 发表于 2022-7-6 00:40:22

 
我认为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)
)

MSasu 发表于 2022-7-6 00:43:43

遗憾的是,当输入GET*系列函数之一或从AutoLISP调用的命令的提示时,不能在命令行使用AutoLISP表达式。
 
您可以对内置命令的提示执行此操作,只要这些命令不是从AutoLISP调用的。

MSasu 发表于 2022-7-6 00:49:38

一些例子:
错误:
 
对的:

pBe 发表于 2022-7-6 00:51:19

 
谢谢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]
查看完整版本: 无法重新输入lisp错误