明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1900|回复: 3

在 AutoCAD 中, 如何转换颜色?

[复制链接]
发表于 2003-12-11 18:43:00 | 显示全部楼层 |阅读模式
AutoCAD 中, 如何将有同一颜色的物件(例如: Line, Text, Circle 等, 这些物件可能在多个层上)一次性转换为另外一种颜色?
而不用一个一个的去选? 是不是要用到二次开发? 若是, 各位可否提供原程序给我?   谢谢各位前辈指点一二
发表于 2003-12-11 18:54:00 | 显示全部楼层

  1. (defun c:setcolor( / ss color sinf sname i)
  2.   (prompt "选择要改变颜色的对象...")
  3.   (setq ss (ssget))
  4.   (initget 5)
  5.   (setq color (getint "输入颜色值:"))
  6.   (setq i 0)
  7.   (repeat (sslength ss)
  8.     (setq sname (ssname ss i))
  9.     (setq sinf (entget sname))
  10.     (if (assoc 62 sinf)
  11.       (setq sinf (subst (cons 62 color) (assoc 62 sinf) sinf))
  12.       (setq sinf (append sinf (list (cons 62 color))))
  13.     )
  14.     (entmod sinf)
  15.     (setq i (1+ i))
  16.   )  
  17.   (princ)
  18. )
发表于 2003-12-11 21:16:00 | 显示全部楼层
我也依樓主的意思寫個給大家. 呵呵: D
               好簡單的哦. 寫的不好還望Meflying兄多多指點.


Program make by  BDYCAD
Date : 2003-12-10
(DEFUN C:cc()
  (princ "\n請選擇要更改顏色的對象...")
  (command "chprop" (ssget) "" "co" (getint "\n請輸入更改后的顏色值:") "" )
  (princ))
发表于 2003-12-11 23:28:00 | 显示全部楼层
to BDYCAD:
(SSGET)时还是加入匹配比较好。

还有,我觉得成了程序,应该进行一些强壮性处理。
像上例中ssget得到的结果为空,或者getint得到的数值不在颜色表范围时,都会导致程序错误。

如果我们经常用的,对LISP了解还没有什么。其它不熟悉的人用到的时候,出问题就不好了。

听说部队的软件中,部分测试报告和操作手册是不会计算机的人来进行的。当时听到的时候,觉得是个好办法。也不知道是不是真的这样:)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-27 08:30 , Processed in 0.178955 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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