明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 765|回复: 2

【悬赏5明经币求程序】求"选择颜色分层"的lisp

[复制链接]
发表于 2024-3-20 15:48:24 | 显示全部楼层 |阅读模式
5明经币
本帖最后由 ninja37 于 2024-3-20 15:51 编辑

以下这个程序 需要选择4次,
第1次ssget把图元移动到图层d000qing
第2次ssget 把把图元移动到图层D007RED
第3次ssget 把把图元移动到图层D010GREEN
第4次ssget 把把图元移动到图层D015BLUE
请哪位大师帮忙写一个  只需要选择1个选择,只需要选择1次然后再分到4个图层
(defun CHmovelayer452030dEshuo  ()
        (princ "\n 【45DS】 选择图元   ")
  (setvar "cmdecho" 0)
  (setq DATE1 (GETVAR "millisecs" ))
  (command "UCS"  "W")  (setvar "orthomode" 0)  (setvar "osmode" 0) (setvar "luprec"  4)
        (command "-layer" "u" "*" "")          ;图层全部解锁
        (if (not (tblsearch "layer" "D000QING"))  (command "-layer" "n" "D000QING"   "c"  "4" "D000QING"   ""));1-
  (if (not (tblsearch "layer" "D007RED"))   (command "-layer" "n" "D007RED"   "c"  "1" "D007RED"   ""));1-
  (if (not (tblsearch "layer" "D010GREEN")) (command "-layer" "n" "D010GREEN" "c"  "3" "D010GREEN" ""));3-
        (if (not (tblsearch "layer" "D015BLUE"))  (command "-layer" "n" "D015BLUE"  "c"  "5" "D015BLUE"  ""));5-
(defun color (ent / c62 ent1)
  (setq ent1 (entget ent))
  (if (setq c62 (cdr (assoc 62 ent1)))
      (if (= 0 c62)
        7
        c62
      )
     (cdr (assoc  62 (entget (tblobjname "layer" (cdr(assoc  8 ent1))))))
  )
)
          (setq co  4)
  (setq enlst (ssadd))
  (princ "\n选择目标窗口: ")
  (if (setq ss (ssget ))
    (repeat (setq n  (sslength ss)) ; fixed
      (cond ((= 4 (color (setq x (ssname ss (setq n (1- n)))))) (ssadd x enlst)))
    ))
  (sssetfirst nil enlst)
  (command "change" ENLST "" "" "la" "D000QING" "c" "bylayer"   "")
          (setq co  3)
  (setq co  1)
  (setq enlst (ssadd))
  (princ "\n选择目标窗口: ")
  (if (setq ss (ssget ))
    (repeat (setq n  (sslength ss)) ; fixed
      (cond ((= 1 (color (setq x (ssname ss (setq n (1- n)))))) (ssadd x enlst)))
    ))
  (sssetfirst nil enlst)
  (command "change" ENLST "" "" "la" "D007RED" "c" "bylayer"   "")
          (setq co  3)
  (setq enlst (ssadd))
  (princ "\n选择目标窗口: ")
  (if (setq ss (ssget ))
    (repeat (setq n  (sslength ss)) ; fixed
      (cond ((= 3 (color (setq x (ssname ss (setq n (1- n)))))) (ssadd x enlst)))
    ))
  (sssetfirst nil enlst)
  (command "change" ENLST "" "" "la" "D010GREEN" "c" "bylayer"   "")
                  (setq co  5)
  (setq enlst (ssadd))
  (princ "\n选择目标窗口: ")
  (if (setq ss (ssget ))
    (repeat (setq n  (sslength ss)) ; fixed
      (cond ((= 5 (color (setq x (ssname ss (setq n (1- n)))))) (ssadd x enlst)))
    ))
  (sssetfirst nil enlst)
  (command "change" ENLST "" "" "la" "D015BLUE" "c" "bylayer"   "")
        (setq DATE2 (GETVAR "millisecs" ))
  (PRINC (STRCAT "图元分类 耗时" (RTOS (/ (- DATE2 DATE1 ) 1000.0 ) 2 2 ) "秒。" ) ) (PRINC "\n【45XM】 所有图元已分类完成" )
  (princ)
        (setvar "cmdecho" 1)
  (princ )
);end defun



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

最佳答案

查看完整内容

搜一下论坛很多按颜色选择代码,注意随层颜色对象的处理,归层后的颜色处理也要考虑
发表于 2024-3-20 15:48:25 | 显示全部楼层
搜一下论坛很多按颜色选择代码,注意随层颜色对象的处理,归层后的颜色处理也要考虑
回复

使用道具 举报

 楼主| 发表于 2024-3-21 13:41:33 | 显示全部楼层
start4444 发表于 2024-3-20 18:25
搜一下论坛很多按颜色选择代码,注意随层颜色对象的处理,归层后的颜色处理也要考虑

【群主】陌路相逢 已经解决  就发给你吧
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 23:07 , Processed in 0.178756 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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