没什么变化,但现在lisp
当我创建这个时,它工作得很好。更改了命令行颜色,没有错误。现在它告诉我Program ERROR
Resetting environment ; error: An error has occurred inside the *error*
functionbad argument type: consp nil
(defun c:PST (/ pickstyle)
(if (= (getvar "pickstyle") 1) (setvar "pickstyle" 0) (setvar "pickstyle" 1))
(if (= (getvar "pickstyle") 1) (CmdCol 255 0 0) (CmdCol 255 255 255))
(defun CmdCol (r g b)
(vl-load-com)
(vla-put-TextWinBackgrndColor
(vla-get-Display
(vla-get-Preferences
(vlax-get-acad-object))) (+ r (* 256 g) (* 65536 b))))
(princ (getvar "pickstyle"))
(princ)
) 由于您的代码没有定义局部*error*函数,因此您似乎正在运行其他LISP例程,这些例程覆盖默认*error*函数,而不是重置它(有关详细信息,请参阅此处)。
这不会解决您的问题,但会提供有关错误的更多信息;在命令行中键入:
然后重新运行上述代码。
将IF语句移到CmdCol函数定义下方,因为否则调用函数时不会定义该函数。
李 谢谢它现在这样说
Command: pst ; error: no function definition: CMDCOL
我在定义中添加了“cmdcol”
但仍然得到相同的错误
(defun c:PST (/ pickstyle CmdCol)
(if (= (getvar "pickstyle") 1) (setvar "pickstyle" 0) (setvar "pickstyle" 1))
(if (= (getvar "pickstyle") 1) (CmdCol 255 0 0) (CmdCol 255 255 255))
(defun CmdCol (r g b CmdCol)
(vl-load-com)
(vla-put-TextWinBackgrndColor
(vla-get-Display
(vla-get-Preferences
(vlax-get-acad-object))) (+ r (* 256 g) (* 65536 b))))
(princ (getvar "pickstyle"))
(princ)
) 请从子函数中删除变量CmdCol,然后重试
^^重新阅读。 好了,这个现在可以用了
5
第一次错过了。执行此操作并删除子功能def。
现在起作用了
谢谢
好东西。
但是,您可能仍然希望调查在正在运行的另一个LISP程序中没有重置“error”函数的问题。
我阅读了你发送的链接。我仍然不确定是否在另一个程序中找到错误。我知道它可能不会重置,因为我可能在命令完成一半时按了esc。但我不知道如何找到它
页:
[1]