找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1685|回复: 9

[原创] 【炫翔】批量多种改层色

[复制链接]

已领礼包: 1742个

财富等级: 堆金积玉

发表于 2013-8-16 09:34:25 | 显示全部楼层 |阅读模式

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

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

×
1.gif
  1. ;功能:取得实体DXF组码对应的值。参数:DXF为组码 ;ent为实体名。;返回值:DXF组码值表
  2. (defun KX-get-dxf (DXF ent)
  3.     (cond ((= (type ent) 'ename)
  4.             (cdr (assoc DXF (entget ent)))
  5.              )
  6.           ((= (type ent) 'list)
  7.            (cdr (assoc DXF ent))
  8.            )
  9.     )
  10. )


  11. ;;功能:更换图元。参数:sname为实体名;DXF为组码;newvalue为新值  ;返回值:新对象
  12. (defun KX-SubUpd (sname DXF newvalue)
  13.    (entmod
  14.      (subst
  15.        (cons DXF newvalue)   
  16.        (assoc DXF (entget sname))   
  17.        (entget sname)
  18.      )
  19.    )
  20. (entupd sname)
  21. )

  22. ;改变对象颜色 sname为实体名 col为颜色号
  23. (defun KX-put-color(sname col)
  24.       (vla-put-color (vlax-ename->vla-object sname) col)
  25. (PRINC)
  26. )

  27. ;批量匹配图层改色
  28. ;(KX-LAY-COL lname COL)  lname为层名  CO为颜色
  29. (defun KX-LAY-COL (lname coL)
  30. (if (setq newl (tblobjname "layer" lname))
  31.    (progn
  32.      (KX-SubUpd newl 62 col)
  33.     (if (SETQ ss (ssget "X" (list (cons 8 lname))))
  34.       (progn
  35.           (setq X -1)
  36.         (while (setq s1 (ssname ss (setq X (1+ X))))      
  37.            (KX-put-color s1 coL)
  38.          )
  39.        )
  40.      )
  41.    )
  42.   )
  43. )



  44. ;程序一 (批量匹配图层改色)
  45. (defun c:XX()
  46.   (vl-load-com)
  47.    (KX-LAY-COL "1" 1)
  48.    (KX-LAY-COL "2" 2)
  49.    (KX-LAY-COL "3" 3)
  50.    (KX-LAY-COL "4" 4)
  51.    (KX-LAY-COL "5" 5)
  52. (PRINC)
  53. )

  54. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  55. ;程序二 (输入层名或直接选对象改其颜色)
  56. (defun c:XX1()
  57.   (vl-load-com)
  58.    (initget "A S")
  59. (setq enda (getkword "\n[A 输入层名 / S 选取对象直接改色] <A>")
  60.        enda (if enda enda "A")
  61.   )
  62.     (cond
  63.        ((= enda "S") (setq lname (strcase (KX-get-dxf 8 (car (entsel)))))
  64.           (setq co (acad_colordlg 7))
  65.            (KX-LAY-COL lname co)
  66.        )
  67.        ((= enda "A") (setq lname (strcase (getstring "\n层名:")))   
  68.             (setq co (acad_colordlg 7))
  69.            (KX-LAY-COL lname co)))
  70. (PRINC)
  71. )

  72. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  73. ;程序三 (综合改层色)
  74. (defun c:XX2()
  75.   (vl-load-com)
  76.    (KX-LAY-COL "1" 1)
  77.    (KX-LAY-COL "2" 2)
  78.    (KX-LAY-COL "3" 3)
  79.    (KX-LAY-COL "4" 4)
  80.    (KX-LAY-COL "5" 5)
  81.    (initget "A S")
  82. (setq enda (getkword "\n[A 输入层名 / S 选取对象直接改色] <A>")
  83.        enda (if enda enda "A")
  84.   )
  85.     (cond
  86.        ((= enda "S") (setq lname (strcase (KX-get-dxf 8 (car (entsel)))))
  87.           (setq co (acad_colordlg 7))
  88.            (KX-LAY-COL lname co)
  89.        )
  90.        ((= enda "A") (setq lname (strcase (getstring "\n层名:")))   
  91.         (setq co (acad_colordlg 7))
  92.                (KX-LAY-COL lname co)
  93.        )
  94.     )
  95. (PRINC)
  96. )

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2013-8-16 11:15:38 | 显示全部楼层
不用这么复杂吧,修改 Layer Object 的 Color ,实体用 chprop 修改实体为 bylayer

点评

方法很多的,这个只是不用COMMAND  发表于 2013-8-16 11:21
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-8-16 12:13:07 | 显示全部楼层
有时候 Command 的效率比别的都高!

点评

从来不用图层的学习一下  详情 回复 发表于 2013-8-17 11:56
这倒是真的,比如:删除  发表于 2013-8-16 13:33
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 685个

财富等级: 财运亨通

发表于 2013-8-17 11:56:55 | 显示全部楼层
Free-Lancer 发表于 2013-8-16 12:13
有时候 Command 的效率比别的都高!

从来不用图层的学习一下

点评

如同你从来都不用图层的话,说明你CAD还没入门呢。  详情 回复 发表于 2013-8-17 12:30
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6468个

财富等级: 富甲天下

发表于 2013-8-17 12:04:22 | 显示全部楼层
学习方法。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-8-17 12:30:22 | 显示全部楼层
ysq101 发表于 2013-8-17 11:56
从来不用图层的学习一下

如同你从来都不用图层的话,说明你CAD还没入门呢。

点评

话不能这么说吧。。。CAD从R12用到现在还没入门??? 用不用图层只是个人习惯和行业不同而已,我更喜欢用颜色来管理对象,省去管理设置图层 (我是模具行业,除了标注是用燕秀来标,自己分到标注层)  详情 回复 发表于 2013-8-17 17:29
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 685个

财富等级: 财运亨通

发表于 2013-8-17 17:29:56 | 显示全部楼层
newer 发表于 2013-8-17 12:30
如同你从来都不用图层的话,说明你CAD还没入门呢。

话不能这么说吧。。。CAD从R12用到现在还没入门???
用不用图层只是个人习惯和行业不同而已,我更喜欢用颜色来管理对象,省去管理设置图层

(我是模具行业,除了标注是用燕秀来标,自己分到标注层)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-8-18 12:38:47 | 显示全部楼层
好东西啊,谢谢分享~~~~~~~~~~~~~
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-1 23:57 , Processed in 0.240472 second(s), 46 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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