明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4852|回复: 24

颜色随层求助

  [复制链接]
发表于 2006-12-21 19:01 | 显示全部楼层 |阅读模式

请教一下各位高手 如何将所有对象的颜色随层,且在文件较大时,处理速度较快

我尝试了一下command 了CAD的命令,当处理速度相当慢

在此先谢过了

发表于 2006-12-30 10:23 | 显示全部楼层
  1. (defun C:ccc (/ Obj blocklist block n)
  2.   (vl-load-com)
  3.   (setq AcadObject (vlax-get-acad-object))
  4.   (setq AcadDocument (vla-get-activedocument AcadObject))
  5.   (setq ModelSpace (vla-get-modelspace AcadDocument))
  6.   (vlax-for obj ModelSpace                      ;取得模型空间对象集合
  7.     (if (/= (vla-get-color obj) 256)            ;遍历模型空间对象
  8.       (vla-put-color obj 256)
  9.     )
  10.   )
  11.   (setq blocklist (vla-get-blocks AcadDocument));取得块集合
  12.   (vlax-for block blocklist                     ;遍历块集合
  13.     (vlax-for n block                           ;遍历单个块
  14.       (if (/= (vla-get-color n) 256)
  15.         (vla-put-color n 256)
  16.       )
  17.     )
  18.   )
  19. )
这是对于块的方法,采用了嵌套循环。
稍加改动,就可以对整个CAD图形进行变成自己需要的颜色。
没有出错检查,可能跟天正之类的软件不兼容。
回复 支持 1 反对 0

使用道具 举报

发表于 2006-12-22 10:17 | 显示全部楼层
  1. (defun c:cb (/ ss i elist)
  2.   (setq i -1)
  3.   (repeat (sslength (setq ss (ssget)))
  4.     (entmod (subst
  5.        '(62 . 256)
  6.        (assoc 62 (setq elist (entget (ssname ss (setq i (1+ i))))))
  7.        elist
  8.      )
  9.     )
  10.   )
  11.   (princ)
  12. )
 楼主| 发表于 2006-12-25 12:36 | 显示全部楼层

这个方法我也试过,也不行,效率也底

大的图形还导致CAD自动关闭!!

有没有其他方法啊

发表于 2006-12-25 13:31 | 显示全部楼层

可試試我U盤中的ch_color.vlx

发表于 2006-12-25 13:35 | 显示全部楼层
本帖最后由 作者 于 2006-12-25 13:58:19 编辑

  1. (defun C:ccc (/ )
  2.   (vl-load-com)
  3.   (setq ModelSpace (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object))))
  4.   (vlax-for obj ModelSpace
  5.     (if (/= (vla-get-color obj) 256)
  6.       (vla-put-color obj 256)
  7.     )
  8.   )  
  9. )
用之前先把所有图层解锁,加载上面代码,运行CCC
试验上面的方法可以不?(应该是很快的了,因为直接用的ActiveX方式,遍历CAD对象,如果是随层则不作改变,不是随层则作改变)
发表于 2006-12-25 17:24 | 显示全部楼层

我的意见和楼上的一样,应该比较快。

Color=0就是随块

发表于 2006-12-26 07:53 | 显示全部楼层
本帖最后由 作者 于 2006-12-26 12:40:46 编辑

樓主要將所有物件的顏色隨層,5樓的只把ModelSpace中物件改為隨層,對圖塊內物件&屬性&標註等皆無處理

 楼主| 发表于 2006-12-26 12:36 | 显示全部楼层

5樓的程序处理起来相当快,很不错呢,至于布局空间就不强求呢

多谢呢,

以前没留意ActiveX,现在看来要好好研究一下呢!

 楼主| 发表于 2006-12-26 20:07 | 显示全部楼层

为什么按照5楼的程序,遇到天正对象(如T6版)较多时,效率比较低,

而没有天正对象(如T3版)时,程序效率较快,为什么??????

发表于 2006-12-26 21:08 | 显示全部楼层

五楼程序还可以再加速。就是使用选择集把不随层的对象先放到选择集中,再修改属性。

二楼的程序也是一样的道理。

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

本版积分规则

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

GMT+8, 2024-5-21 19:32 , Processed in 0.406277 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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