明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3338|回复: 9

如何提取颜色随层的对象的颜色?

[复制链接]
发表于 2007-8-31 13:26:00 | 显示全部楼层 |阅读模式

如:
图中有一直线,所在图层为RLP390_C4,图层的颜色是蓝色,用
(setq en_data (entget (car (entsel "select:")))) 取得直线的对象属性
结果如下,没有颜色的代码出现,请教高手怎样解决?
((-1 . <图元名: 40072e48>) (0 . "LINE") (330 . <图元名: 40072cf8>) (5 . "71") (100 .
"AcDbEntity") (67 . 0) (410 . "Model") (8 . "RLP390_C4") (100 . "AcDbLine") (10
795.703 218.864 0.0) (11 441.75 304.477 0.0) (210 0.0 0.0 1.0))

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2007-8-31 14:41:00 | 显示全部楼层

没有颜色的代码出现, 那它的颜色就是bylayer。 要确切知道其颜色,查询图层设置的颜色

(setq ent (entget (car (entsel))))
(if (not (assoc 62 ent))
  (setq col (cdr (assoc 62 (tblsearch "LAYER" (cdr (assoc 8 ent))))))
  (setq col (cdr (assoc 62 ent)))
)

 楼主| 发表于 2007-8-31 18:43:00 | 显示全部楼层
两次谢过Alin版主
发表于 2007-9-1 19:26:00 | 显示全部楼层

好像随层色的对象,很难用过滤选择来选取(62 . 1) 如红色

发表于 2007-9-1 20:30:00 | 显示全部楼层

我有一个复制同一图层中颜色随层的,自己写的,在2004中测试通过,请指教,其代码如下:

 (defun c:cc()

            (setq st (entget(car(entsel"\nSelect a object 选择一个实体 :"))))
             (setq st8 (cdr (assoc 8  st)))

             (setq st62 (cdr (assoc 62 st)))

              (setq pt1 (getpoint) pt2 (getcornor pt1))

                      (if (= st62 nil)

                               (progn
                                         (setq ss (ssget "w" pt1 pt2 (list(cons 8 st8) )))

                                        (setq ss (ssget "p" (list(cons 62 256))))

                               )

                      )
             (setq ss (ssget "w" pt1 pt2 (list (cons 8 st8))))

             (setq ss(ssget "p" (list (cons 62 st62))))

             (command "_.copy"  ss "" "")

(princ)

)

发表于 2007-9-1 20:42:00 | 显示全部楼层
不好意思,上面有一错误,更正:  (setq st (entget(car(entsel"\\nSelect a object 选择一个实体 :"))))
改为  (setq st (car(entget(entsel"\\nSelect a object 选择一个实体 :"))))
发表于 2007-9-1 22:04:00 | 显示全部楼层
try this:
  1. (defun c:x1 (/ cor date en lay pt ss)
  2.   (and (setq en (car (entsel "\n选择目标实体:")))
  3.        (setq date (entget en))
  4.        (setq lay (cdr (assoc 8 date)))
  5.        (or (setq cor (cdr (assoc 62 date)))
  6.     (setq cor 256)
  7.        )
  8.        (setq ss (ssget (list (cons 8 lay) (cons 62 cor))))
  9.        (setq pt (getpoint "\n指定基点:"))
  10.        (vl-cmdf "copy" ss "" pt pause)
  11.   )
  12. )
发表于 2007-9-2 14:20:00 | 显示全部楼层
  1. ;;;获取对象颜色
  2. (defun C:TT (/ SS ENT COL)
  3. &#160;&#160;&#160; (if (setq SS (nentsel "\n请点取对象: "))
  4. &#160;&#160; &#160;(progn
  5. &#160;&#160; &#160;&#160;&#160;&#160; (setq ENT (entget (car SS)))
  6. &#160;&#160; &#160;&#160;&#160;&#160; (if&#160;&#160; &#160;(setq COL (cdr (assoc 62 ENT)))
  7. &#160;&#160; &#160;&#160;&#160; &#160;()
  8. &#160;&#160; &#160;&#160;&#160; &#160;(setq COL
  9. &#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160; (cdr (assoc 62
  10. &#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160; (tblsearch "layer" (cdr (assoc 8 ENT)))
  11. &#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160; )
  12. &#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; &#160; )
  13. &#160;&#160; &#160;&#160;&#160; &#160;)
  14. &#160;&#160; &#160;&#160;&#160;&#160; )
  15. &#160;&#160; &#160;&#160;&#160;&#160; (princ COL)
  16. &#160;&#160; &#160;)
  17. &#160;&#160;&#160; )
  18. &#160;&#160;&#160; (princ)
  19. )
发表于 2012-2-17 15:33:08 | 显示全部楼层
可惜不支持块
发表于 2012-2-20 12:26:48 | 显示全部楼层
这种程序可不可以支持块(包括嵌套块、属性块)中的任意图元(包括随层的或者指定颜色)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-7-22 05:11 , Processed in 0.158628 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表