明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1908|回复: 2

[基础] 高手帮忙,按颜色

[复制链接]
发表于 2013-5-23 15:28:48 | 显示全部楼层 |阅读模式
高手帮帮我,现有一段Lisp代码,功能是按颜色移动对象。我想改为按颜色选择对象,且可以框选。
  1. ;;http://bbs.mjtd.com/thread-61591-1-1.html
  2. ;;如果是随块,则是按7号色选择对象
  3. (defun c:x1 (/ *laysel* cor en lay-lst lay-str obj pt ss)
  4.   (setq *laysel* (vla-get-layers (vla-get-activedocument (vlax-get-acad-object))))
  5.   (if (and (setq en (car (entsel "\n选择目标对象:")))
  6.     (setq obj (vlax-ename->vla-object en))
  7.     (setq cor (vla-get-color obj))
  8.     (setq pt (getpoint "\n基点:"))
  9.       )
  10.     (progn
  11.       ;; 分辨颜色
  12.       (cond ((= cor 256) ;_ 随层
  13.       (setq cor (vla-get-color (vla-item *laysel* (vla-get-layer obj))))
  14.      )
  15.      ((= cor 0) ;_ 随块
  16.       (setq cor 7)
  17.      )
  18.       )
  19.       ;; 筛选图层
  20.       (vlax-for lay *laysel*
  21. (if (= (vla-get-color lay) cor)
  22.    (setq lay-lst (cons (vla-get-name lay) lay-lst))
  23. )
  24.       )
  25.       (if lay-lst
  26. (foreach lay lay-lst
  27.    (if lay-str
  28.      (setq lay-str (strcat lay-str "," lay))
  29.      (setq lay-str lay)
  30.    )
  31. )
  32.       )
  33.       ;; 形成选择集
  34.       (if lay-str
  35. (setq ss (ssget "x" (list '(-4 . "<OR") (cons 0 lay-str) (cons 62 cor) '(-4 . "OR>"))))
  36. (setq ss (ssget "x" (list (cons 62 cor))))
  37.       )
  38.       (vl-cmdf "move" ss "" pt)
  39.       (vl-cmdf pause)
  40.     )
  41.   )
  42. )
发表于 2013-5-23 15:58:34 | 显示全部楼层
 楼主| 发表于 2014-12-18 10:54:51 | 显示全部楼层
自贡黄明儒 发表于 2013-5-23 15:58
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=86610

谢谢长老,帮我大忙了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-6 09:55 , Processed in 0.153570 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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