各位大师请问为什么SSGET选择会出错?
(defun c:1 ()(if (setq ss (ssget "i")) ;;
(command "chprop" ss "" "c" "BYLAYER" "lt" "BYLAYER" "la" "01-粗实线层" "")
(command "Layer" "s" "01-粗实线层" "")
)
(princ)
)
(ssget "i")出错,PICKFIRST变量也写为1了,chprop提示无效参数,但是已经有选择集了。
如果为(SSGET)就不报错,可以执行下去。不知道为什么,请个位大师解释一下。谢谢 (defun c:hi (/ ss)
(setvar "cmdecho" 0)
(if (not (tblsearch "layer" "dim"))
(command "-layer" "n" "dim" "c" "4" "dim" "")
(princ "\ndim图层已存在\n")
);if
(setq ss (ssget "i"))
(if (= ss nil)
(command "_.clayer" "dim")
(command "_.chprop" ss "" "la" "dim" "")
);if
(princ)
) (ssget "i")是什么意思?
I Implied
Implied selection (objects selected while PICKFIRST is in effect).
自贡黄明儒 发表于 2014-9-9 12:06 static/image/common/back.gif
(ssget "i")是什么意思?
I Implied
i 我的理解是,把选中的对象加入选择集,
要先选对象,再执行命令,
没选对象,再执行别的命令 自贡黄明儒 发表于 2014-9-9 12:06 static/image/common/back.gif
(ssget "i")是什么意思?
I Implied
请问黄大师,应该怎么改?
程序的作用是如果有选择集就将选择集设置为指定图层,如果没有选择集就将当前图层改为指定图层。谢谢 琴剑江山_10184 发表于 2014-9-9 12:50 static/image/common/back.gif
i 我的理解是,把选中的对象加入选择集,
要先选对象,再执行命令,
没选对象,再执行别的命令
我也是这样认为的,就是不知道为什么会出错?请问一下,把 (setq ss (ssget "i"))
这一句从if里拿出来有什么区别吗?谢谢,请指教一下? zkq1212 发表于 2014-9-9 13:05 static/image/common/back.gif
我也是这样认为的,就是不知道为什么会出错?请问一下,把 (setq ss (ssget "i"))
这一句从if里拿出来有 ...
05下,下面是正确的
(if (setq ss (ssget "i"))
(command "chprop" ss "" "c" "BYLAYER" "lt" "BYLAYER" "la" "0" "" "" "")
(command "Layer" "s" "0" "" "")
) (setq ss (ssget "i"))
(if (= ss nil) 改成这样
(command "_.clayer" "dim")没选到执行这句,改成你的
(command "_.chprop" ss "" "la" "dim" "")选中对象执行这句,改成你的
);if
(princ)
)
		页: 
[1]