- 积分
- 64756
- 明经币
- 个
- 注册时间
- 2005-11-29
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
发表于 2018-7-17 16:32:51
|
显示全部楼层
;|code 6,62,370等因为随层不出现的组任意组合f"or"或"and"或者当code为nil时任意字符串,dxf当code为nil时可任意,否则不应含code里边组和-4组
(SELECTBYLAYER'((0 . "circle")) '((62 . 1)(370 . 100))"or")
(sslength(SELECTBYLAYER'((0 . "circle")) nil""))
|;
(defun Selectbylayer(dxf code f / ly)
(setq ly(mapcar'(lambda(x)(cons(assoc 370(entget(tblobjname"layer"(cdadr x))))x))(STB"Layer"nil)))
(ssget"X"(if code(append dxf(list(cons -4(strcat"<"f)))
(vl-remove'nil(apply'append(mapcar'(lambda(x)(list'(-4 . "<or")x
'(-4 . "<and")(assoc(car x)'((62 . 256)(6 . "Bylayer")))
(cons 8(apply'strcat(mapcar'(lambda(x)(strcat(cdaddr x)","))
(vl-remove-if-not'(lambda(y)(member x y))ly))))
'(-4 . "and>")'(-4 . "or>")))code)))
(list(cons -4(strcat f">"))))
dxf))) |
|