找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 352|回复: 3

[编程申请]:如何取得指定层名中颜色号

[复制链接]
发表于 2004-11-21 11:56:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
  1. (defun c:ccolor        (/ es en el a)
  2.   (princ "请选择对象,修改颜色bylayer为绝对颜色号")
  3.   (setq        es (ssget)
  4.         a  0
  5.         en ""
  6.         el nil
  7.         fl nil
  8.   )
  9.   (while (/= en nil)
  10.     (setq en (ssname es a)
  11.           el (cons en el)
  12.           a  (1+ a)
  13.     )
  14.   )
  15.   (setq        el (cdr el)
  16.         fl (cdr (assoc '8 (entget (car el))))
  17.         el (cdr el)
  18.   )
  19.   (repeat (- a 2)
  20.     (setq en (cdr (assoc '8 (entget (car el))))
  21.           fl (strcat en "," fl)
  22.           el (cdr el)
  23.     )
  24.   )
  25.   ;可见层名变量为fl
  26.   ;请把层名为fl的颜色号赋值给变量cc
  27.   (princ)
  28. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-11-21 13:55:33 | 显示全部楼层
REFER TO:
[php]
(defun c:test ()
  ;(vl-load-com)
  (setq lays (vla-get-layers (vla-get-activedocument (vlax-get-acad-object))))
  (setq ent (car (entsel "\nSelect entity of special layer: ")))
  (setq lay (vla-item lays (cdr (assoc 8 (entget ent)))))
  (setq col (vla-get-color lay))
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2004-11-21 14:50:26 | 显示全部楼层

  1. (defun c:test (/ ss sl el lay col)
  2.   (if (setq ss (ssget))
  3.     (progn
  4.       (setq sl (sslength ss))
  5.       (while (> sl 0)
  6.         (setq el  (entget (ssname ss (setq sl (1- sl))))
  7.               lay (cdr (assoc 8 el))
  8.               col (cdr (assoc 62 (tblsearch "layer" lay)))
  9.         )
  10.         (if (not (assoc 62 el));;2004以上可能还有 420 430 组码
  11.           (entmod (append el (list (cons 62 col))))
  12.         )
  13.       )
  14.     )
  15.   )
  16.   (princ)
  17. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-11-21 19:31:28 | 显示全部楼层
谢谢楼上的二位,程序瞎完成,,
1. 加上所以实体归为一层
2. 加上line变trace程序,
可向业主提供dwg图纸
程序如下,请高手优化,本人其实不很懂"
(DEFUN C:cccolor (/ ss en el lay)
  (if(setq ss(ssget))
    (WHILE(setq        en(ssname ss 0))
      (setq ss(ssdel en ss))       
        (setq el(entget en)
            lay(cdr(assoc 8 el))
            laytb(tblsearch "layer" lay)
         )
      (setq cn 1)
        (if(assoc 62 laytb)
        (setq cn(cdr(assoc 62 laytb)))
        )
      (command "_change" en "" "p" "C" cn "")
    )
  )
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-5-18 15:34 , Processed in 0.178592 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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