- 积分
- 23274
- 明经币
- 个
- 注册时间
- 2018-11-7
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
发表于 2019-7-12 10:05:49
|
显示全部楼层
本帖最后由 1291500406 于 2019-7-12 10:36 编辑
颜色分为三种 bylayer byblock 还有 1 ~ 255
其中256随层色是最难的,ssget 搜索不到,
需要进一步解析随层的图层颜色
(defun c:bb( / sst obj cc ls co b bb bb1 co1)(vl-load-com)
(if (setq sst (ssget ":E:S" '((0 . "SPLINE,ARC,CIRCLE"))))
(progn(setq obj (vlax-ename->vla-object (ssname sst 0)))
(setq cc(vla-get-color obj))(if (> cc 255)(progn
(setq ls(vla-get-layers (vla-get-ActiveDocument (vlax-get-Acad-object)))
co(vla-get-color(vla-item ls(vla-get-layer obj))))
(setq bb(ssget "x" ' ((0 . "SPLINE,ARC,CIRCLE")(62 . 256)))
b -1 bb1 (ssadd))(repeat (sslength bb)(setq b (1+ b)
bb2(ssname bb b) co1(vla-get-color(vla-item ls
(vla-get-layer (vlax-ename->vla-object bb2)))))
(if(= co co1)(setq ss (ssadd bb2 bb1)))))(progn
(setq ss(ssget "x" (list '(0 . "SPLINE,ARC,CIRCLE")
(cons 62 cc))))))(vl-cmdf "REGEN")(if ss (sssetfirst nil ss)))
(alert "\n请选取样条曲线,圆或者圆弧"))(princ))
|
|