Lisp创建图层时出错
你好我想制作一个“创建层”lisp,这样我就可以通过命令切换层。
我不希望出现任何错误,它们不会显示在非常基本的版本中。
(Defun C:HulplijnA ()
(command "-Layer" "make" "X-XX-AL-HULPLIJN-G" "color" "yellow" "" "")
(Command "-Layer" "set" "X-XX-AL-HULPLIJN-G" "")
(princ)
)
由于上面的代码在几个级别上是错误的,所以我想用if语句创建一个检查。
(Defun C:hulplijn ()
(if (tblsearch "LAYER" "X-XX-AL-HULPLIJN-G") ; Bestaat deze laag?
((Command "-Layer" "set" "X-XX-AL-HULPLIJN-G" "")(princ)) ; Zo ja dan doen we dit
((command "-Layer" "make" "X-XX-AL-HULPLIJN-G" "color" "yellow" "" "")) ; Zo nee dan doen we dit
)
(princ)
)
所以,上面的代码在两种情况下都给了我一个“命令:;错误:无函数定义:nil”错误。
我做错了什么来制造那个错误? 您需要去掉额外的括号和(princ):
(Defun C:hulplijn ()
(if (tblsearch "LAYER" "X-XX-AL-HULPLIJN-G") ; Bestaat deze laag?
((Command "-Layer" "set" "X-XX-AL-HULPLIJN-G" "")(princ)) ; Zo ja dan doen we dit
((command "-Layer" "make" "X-XX-AL-HULPLIJN-G" "color" "yellow" "" "")) ; Zo nee dan doen we dit
)
(princ)
) 如果您只使用“make”层,它会将其设置为活动(如果它已经存在)。在这种情况下,“if”语句过于致命。
谢谢,现在很有魅力。
也许吧,但做正确的事情看起来“更干净”,尽管有一个行为“统治所有人”。但我会添加一个警告,说明该层不存在,明确说明没有使用正确的模板(在这种情况下,一个模板不能缺少另一个模板)
如果我想改变图层的任何属性,比如颜色,那么命令(制作图层)会将其重置为命令中的首选项。
页:
[1]