找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1393|回复: 9

[求助] 谁能帮我简化一下代码撒~~

[复制链接]

已领礼包: 275个

财富等级: 日进斗金

发表于 2013-7-22 22:32:02 | 显示全部楼层 |阅读模式

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

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

×
代码如下,那一串看着头痛吧~~

(defun c:ttgs ()
  (vl-load-com)
  (setq cendoc (vla-get-ActiveDocument (vlax-get-acad-object))
layers (vla-get-layers cendoc)
  )
  (vlax-for layer layers
(if (= (vla-get-color layer) 253) (vla-put-color layer 254)
(if (= (vla-get-color layer) 252) (vla-put-color layer 254)
(if (= (vla-get-color layer) 251) (vla-put-color layer 254)
(if (= (vla-get-color layer) 250) (vla-put-color layer 254)
(if (= (vla-get-color layer) 243) (vla-put-color layer 244)
(if (= (vla-get-color layer) 242) (vla-put-color layer 244)
(if (= (vla-get-color layer) 241) (vla-put-color layer 244)
(if (= (vla-get-color layer) 240) (vla-put-color layer 244)
(if (= (vla-get-color layer) 233) (vla-put-color layer 234)
(if (= (vla-get-color layer) 232) (vla-put-color layer 234)
(if (= (vla-get-color layer) 231) (vla-put-color layer 234)
(if (= (vla-get-color layer) 230) (vla-put-color layer 234)
(if (= (vla-get-color layer) 223) (vla-put-color layer 224)
(if (= (vla-get-color layer) 222) (vla-put-color layer 224)
(if (= (vla-get-color layer) 221) (vla-put-color layer 224)
(if (= (vla-get-color layer) 220) (vla-put-color layer 224)
(if (= (vla-get-color layer) 213) (vla-put-color layer 214)
(if (= (vla-get-color layer) 212) (vla-put-color layer 214)
(if (= (vla-get-color layer) 211) (vla-put-color layer 214)
(if (= (vla-get-color layer) 210) (vla-put-color layer 214)
(if (= (vla-get-color layer) 203) (vla-put-color layer 204)
(if (= (vla-get-color layer) 202) (vla-put-color layer 204)
(if (= (vla-get-color layer) 201) (vla-put-color layer 204)
(if (= (vla-get-color layer) 200) (vla-put-color layer 204)
(if (= (vla-get-color layer) 193) (vla-put-color layer 194)
(if (= (vla-get-color layer) 192) (vla-put-color layer 194)
(if (= (vla-get-color layer) 191) (vla-put-color layer 194)
(if (= (vla-get-color layer) 190) (vla-put-color layer 194)
(if (= (vla-get-color layer) 183) (vla-put-color layer 184)
(if (= (vla-get-color layer) 182) (vla-put-color layer 184)
(if (= (vla-get-color layer) 181) (vla-put-color layer 184)
(if (= (vla-get-color layer) 180) (vla-put-color layer 184)
(if (= (vla-get-color layer) 173) (vla-put-color layer 174)
(if (= (vla-get-color layer) 172) (vla-put-color layer 174)
(if (= (vla-get-color layer) 171) (vla-put-color layer 174)
(if (= (vla-get-color layer) 170) (vla-put-color layer 174)
(if (= (vla-get-color layer) 163) (vla-put-color layer 164)
(if (= (vla-get-color layer) 162) (vla-put-color layer 164)
(if (= (vla-get-color layer) 161) (vla-put-color layer 164)
(if (= (vla-get-color layer) 160) (vla-put-color layer 164)
(if (= (vla-get-color layer) 153) (vla-put-color layer 154)
(if (= (vla-get-color layer) 152) (vla-put-color layer 154)
(if (= (vla-get-color layer) 151) (vla-put-color layer 154)
(if (= (vla-get-color layer) 150) (vla-put-color layer 154)
(if (= (vla-get-color layer) 143) (vla-put-color layer 144)
(if (= (vla-get-color layer) 142) (vla-put-color layer 144)
(if (= (vla-get-color layer) 141) (vla-put-color layer 144)
(if (= (vla-get-color layer) 140) (vla-put-color layer 144)
(if (= (vla-get-color layer) 133) (vla-put-color layer 134)
(if (= (vla-get-color layer) 132) (vla-put-color layer 134)
(if (= (vla-get-color layer) 131) (vla-put-color layer 134)
(if (= (vla-get-color layer) 130) (vla-put-color layer 134)
(if (= (vla-get-color layer) 123) (vla-put-color layer 124)
(if (= (vla-get-color layer) 122) (vla-put-color layer 124)
(if (= (vla-get-color layer) 121) (vla-put-color layer 124)
(if (= (vla-get-color layer) 120) (vla-put-color layer 124)
(if (= (vla-get-color layer) 113) (vla-put-color layer 114)
(if (= (vla-get-color layer) 112) (vla-put-color layer 114)
(if (= (vla-get-color layer) 111) (vla-put-color layer 114)
(if (= (vla-get-color layer) 110) (vla-put-color layer 114)
(if (= (vla-get-color layer) 103) (vla-put-color layer 104)
(if (= (vla-get-color layer) 102) (vla-put-color layer 104)
(if (= (vla-get-color layer) 101) (vla-put-color layer 104)
(if (= (vla-get-color layer) 100) (vla-put-color layer 104)
(if (= (vla-get-color layer) 93) (vla-put-color layer 94)
(if (= (vla-get-color layer) 92) (vla-put-color layer 94)
(if (= (vla-get-color layer) 91) (vla-put-color layer 94)
(if (= (vla-get-color layer) 90) (vla-put-color layer 94)
(if (= (vla-get-color layer) 83) (vla-put-color layer 84)
(if (= (vla-get-color layer) 82) (vla-put-color layer 84)
(if (= (vla-get-color layer) 81) (vla-put-color layer 84)
(if (= (vla-get-color layer) 80) (vla-put-color layer 84)
(if (= (vla-get-color layer) 73) (vla-put-color layer 74)
(if (= (vla-get-color layer) 72) (vla-put-color layer 74)
(if (= (vla-get-color layer) 71) (vla-put-color layer 74)
(if (= (vla-get-color layer) 70) (vla-put-color layer 74)
(if (= (vla-get-color layer) 63) (vla-put-color layer 64)
(if (= (vla-get-color layer) 62) (vla-put-color layer 64)
(if (= (vla-get-color layer) 61) (vla-put-color layer 64)
(if (= (vla-get-color layer) 60) (vla-put-color layer 64)
(if (= (vla-get-color layer) 53) (vla-put-color layer 54)
(if (= (vla-get-color layer) 52) (vla-put-color layer 54)
(if (= (vla-get-color layer) 51) (vla-put-color layer 54)
(if (= (vla-get-color layer) 50) (vla-put-color layer 54)
(if (= (vla-get-color layer) 43) (vla-put-color layer 44)
(if (= (vla-get-color layer) 42) (vla-put-color layer 44)
(if (= (vla-get-color layer) 41) (vla-put-color layer 44)
(if (= (vla-get-color layer) 40) (vla-put-color layer 44)
(if (= (vla-get-color layer) 33) (vla-put-color layer 34)
(if (= (vla-get-color layer) 32) (vla-put-color layer 34)
(if (= (vla-get-color layer) 31) (vla-put-color layer 34)
(if (= (vla-get-color layer) 30) (vla-put-color layer 34)
(if (= (vla-get-color layer) 23) (vla-put-color layer 24)
(if (= (vla-get-color layer) 22) (vla-put-color layer 24)
(if (= (vla-get-color layer) 21) (vla-put-color layer 24)
(if (= (vla-get-color layer) 20) (vla-put-color layer 24)
(if (= (vla-get-color layer) 13) (vla-put-color layer 14)
(if (= (vla-get-color layer) 12) (vla-put-color layer 14)
(if (= (vla-get-color layer) 11) (vla-put-color layer 14)
(if (= (vla-get-color layer) 10) (vla-put-color layer 14)
(if (= (vla-get-color layer) 7) (vla-put-color layer 8)
(if (= (vla-get-color layer) 6) (vla-put-color layer 204)
(if (= (vla-get-color layer) 5) (vla-put-color layer 164)
(if (= (vla-get-color layer) 4) (vla-put-color layer 124)
(if (= (vla-get-color layer) 3) (vla-put-color layer 84)
(if (= (vla-get-color layer) 2) (vla-put-color layer 44)
(if (= (vla-get-color layer) 1) (vla-put-color layer 14)
))))))))))) )))) )))) )))) )))) )))) )))) )))) )))) )))) )))) )))) )))) )))) )))) )))) )))) )))) )))) )))) )))) )))) )))) )))) ))))
    )
  )
)


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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-7-23 00:03:55 | 显示全部楼层
你说下你想做什么? 不要用你的思路去引导别人,这样你学不到东西的。你的思路一定就是对的吗?如果你思路繁琐了,把别人也带进沟了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-7-23 06:43:39 | 显示全部楼层
找规律,也要熟悉 alisp 函数
  1. (defun c:ttgs (/ adoc layers lst n color)
  2.   (vl-load-com)
  3.   (setq adoc   (vla-get-ActiveDocument (vlax-get-acad-object))
  4. layers (vla-get-layers adoc)
  5. lst    '(1 2 3 4 5 6 7)
  6.   )
  7.   (vlax-for layer layers
  8.     (setq color (vla-get-layer layer))
  9.     (if (vl-position color lst)
  10.       (mapcar '(lambda (x y)
  11.    (if (= color x)
  12.      (vla-put-color layer y)
  13.    )
  14.         )
  15.        lst
  16.        '(14 44 84 124 164 204 8)
  17.       )
  18.       (progn
  19. (setq n (- 4 (rem color 10)))
  20. (vla-put-color layer (+ n color))
  21.       )
  22.     )
  23.   )
  24.   (vlax-release-object adoc)
  25.   (vlax-release-object layers)
  26.   (princ)
  27. )

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

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-7-23 08:33:58 | 显示全部楼层
对于楼主这样大量重复的代码,可以找出规律,用循环做出来。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 275个

财富等级: 日进斗金

 楼主| 发表于 2013-7-23 08:44:52 | 显示全部楼层
{:soso_e106:}代码我是从别人那里复制过来,然后一个个找函数的意思拼凑起来的啦。想法是把图层换颜色,用1-3的换成4的那种,1-8的另外换成其他颜色~

点评

我当初学习LISP的时候也这样做过,把别人的变成一行的LISP,每个括号的手工格式化过,我认为这觉得值得做,是个学习的过程。  详情 回复 发表于 2013-7-23 14:59
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-7-23 11:14:06 来自手机 | 显示全部楼层
関吣 发表于 2 小时前
{:soso_e106:}代码我是从别人那里复制过来,然后一个个找函数的意思拼凑起来的啦。想法是把图层换颜色,用1-3的换成4的那种,1-8的另外换成其他颜色~

精神可嘉,值得鼓励来自: Android客户端
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2013-7-23 14:32:28 | 显示全部楼层
  1. (vl-load-com)
  2. (defun C:TTGS (/ CENDOC COL LAYERS TMP)
  3.   (setq        CENDOC (vla-get-activedocument (vlax-get-acad-object))
  4.         LAYERS (vla-get-layers CENDOC)
  5.   )
  6.   (vlax-for LAYER LAYERS
  7.     (setq COL (vla-get-color LAYER))
  8.     (cond ((setq TMP (assoc COL
  9.                             '((7 . 8)
  10.                               (6 . 204)
  11.                               (5 . 164)
  12.                               (4 . 124)
  13.                               (3 . 84)
  14.                               (2 . 44)
  15.                               (1 . 14)
  16.                              )
  17.                      )
  18.            )
  19.            (vla-put-color LAYER (cdr TMP))
  20.           )
  21.           ((<= (rem COL 10) 3)
  22.            (vla-put-color LAYER (+ (/ COL 10) 4))
  23.           )
  24.           (t NIL)
  25.     )
  26.   )
  27. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-7-23 14:59:19 | 显示全部楼层
関吣 发表于 2013-7-23 08:44
代码我是从别人那里复制过来,然后一个个找函数的意思拼凑起来的啦。想法是把图层换颜色,用1 ...

我当初学习LISP的时候也这样做过,把别人的变成一行的LISP,每个括号的手工格式化过,我认为这觉得值得做,是个学习的过程。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 275个

财富等级: 日进斗金

 楼主| 发表于 2013-7-23 16:04:13 | 显示全部楼层
{:soso_e178:}多谢各位热心指导~主要没时间学来着,一步一步来吧~

评分

参与人数 1D豆 +3 收起 理由
炫翔 + 3 好学奖

查看全部评分

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-25 10:40 , Processed in 0.250868 second(s), 47 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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