明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2364|回复: 9

30求选择鼠标点选指定的图层

[复制链接]
发表于 2011-12-30 11:03 | 显示全部楼层 |阅读模式
1明经币
第一、如图这样,命令提示选取,然后鼠标点选下,,然后框选,,只能选择到被点选指定的层等图元,并高亮或虚线显示。被框选到的。。。


第二、框选完成后命令提示:改颜色,改图层名称(可新建一层的),然后鼠标右键结束
第三、但是高亮或虚线显示还体现在界面上,这样方便我执行其它操作,,,。。。。


测试图

附件: 您需要 登录 才可以下载或查看,没有账号?注册
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2011-12-30 11:03 | 显示全部楼层
  1. (defun c:asdf ( / s1 ss tt gr n layers color )
  2.   (setq s1 (entsel "\n请选择参考层:"))
  3.   (if s1
  4.     (progn
  5.       (setq ss (ssget (list (assoc 8 (entget (car s1))))))
  6.       (if ss
  7.         (progn
  8.           (SSSETFIRST ss ss)
  9.           (INITGET "c l")
  10.           (setq gr (GETKWORD "\n请选择操作:改颜色(C),改图层名(L)..."))
  11.           (cond
  12.             ((or (= gr "c") (= gr "C"))
  13.              (if (setq tt (getint "\n请输入修改的颜色:"))
  14.                (repeat (setq n (sslength ss))
  15.                  (vla-put-color (vlax-ename->vla-object (ssname ss (setq n (1- n)))) tt)
  16.                  )
  17.                )
  18.              )
  19.             ((or (= gr "L") (= gr "l"))
  20.              (if (setq tt (getstring "\n请输入修改的图层名:"))
  21.                (progn
  22.                  (setq layers (vla-get-layers (vla-get-ActiveDocument (vlax-get-acad-object))))
  23.                  (vlax-for n layers (if (= (vla-get-name n) (cdr (assoc 8 (entget (car s1))))) (setq color (vla-get-color n))))
  24.                  (if (null (TBLSEARCH "layer" tt)) (vla-put-color (vla-add (vla-get-layers (vla-get-ActiveDocument (vlax-get-acad-object))) tt) color))
  25.                  (repeat (setq n (sslength ss))
  26.                    (vla-put-layer (vlax-ename->vla-object (ssname ss (setq n (1- n)))) tt)
  27.                    )
  28.                  )
  29.                )
  30.              )
  31.             )
  32.           )
  33.         )
  34.       )
  35.     )
  36.   )

评分

参与人数 1明经币 +1 收起 理由
flytoday + 1 很给力!

查看全部评分

回复

使用道具 举报

发表于 2011-12-30 11:17 | 显示全部楼层
用飞诗的选择易应该可以完成. 不至于悬30币求程序吧。
回复

使用道具 举报

 楼主| 发表于 2011-12-30 12:03 | 显示全部楼层
功能指定滴哈
回复

使用道具 举报

 楼主| 发表于 2011-12-30 13:11 | 显示全部楼层
看来最近高手都很忙哈。。。。哪位有空路过瞧瞧哈。。。。帮帮忙不胜感激
回复

使用道具 举报

 楼主| 发表于 2011-12-30 13:55 | 显示全部楼层
谢谢feng582304 ,技术共享哈。好人啊
回复

使用道具 举报

发表于 2011-12-30 14:17 | 显示全部楼层
高手,这么快就出程序!
回复

使用道具 举报

发表于 2011-12-30 15:20 | 显示全部楼层
(defun c:tt( / en ss)
    (setq en (car (entsel "\n请选择欲指定图层对象:")))
    (setq ss (ssget (list (assoc 8 (entget en)))))
    (setvar "CMDECHO" 1)
    (command "_.chprop" ss "")
    (while (> (getvar "CmdActive") 0) (command pause))
    (sssetfirst nil ss)
    )

点评

好像不能新建层?不过还是很是精简,很强大!!!赞一个!!!  发表于 2011-12-31 00:49
回复

使用道具 举报

发表于 2011-12-30 22:54 | 显示全部楼层
8楼的简短精悍 呵呵  都不错
回复

使用道具 举报

发表于 2011-12-31 08:39 | 显示全部楼层
byghbcx 发表于 2011-12-30 15:20
(defun c:tt( / en ss)
    (setq en (car (entsel "\n请选择欲指定图层对象:")))
    (setq ss (ssget ( ...

可以用透明命令'layer增加图层
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-12 09:55 , Processed in 0.166354 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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