明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4274|回复: 26

求点选一图元,在该图元上的图层被选择,然后颜色变为红色

  [复制链接]
发表于 2012-12-23 23:54 | 显示全部楼层 |阅读模式
1明经币
求点选一图元,在该图元上的图层被选择,然后颜色变为红色

最佳答案

查看完整内容

改用 entmod 函数即可 Ref: http://bbs.mjtd.com/thread-43550-1-1.html
发表于 2012-12-23 23:54 | 显示全部楼层
改用 entmod 函数即可
Ref:
http://bbs.mjtd.com/thread-43550-1-1.html

点评

太好了  发表于 2012-12-24 14:19
回复

使用道具 举报

发表于 2012-12-24 08:48 | 显示全部楼层
颜色变为红色...
是指Layer颜色变为红色 or 已在该 层 图元颜色 变为红色
回复

使用道具 举报

发表于 2012-12-24 10:28 | 显示全部楼层
这个应该很简单吧,先试试这个是不是你要的!命令为lay2red

本帖子中包含更多资源

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

x

点评

源码有吗?  发表于 2018-6-29 10:13

评分

参与人数 1明经币 +1 收起 理由
品茗新秀 + 1 很给力!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2012-12-24 12:53 | 显示全部楼层
Andyhon 发表于 2012-12-24 08:48
颜色变为红色...
是指Layer颜色变为红色 or 已在该 层 图元颜色 变为红色

是被选图层上的图元变红色
回复

使用道具 举报

 楼主| 发表于 2012-12-24 12:56 | 显示全部楼层
Andyhon 发表于 2012-12-24 08:48
颜色变为红色...
是指Layer颜色变为红色 or 已在该 层 图元颜色 变为红色

不是图层颜色变为红色,是该图层上的图元颜色变成红色,其它不变
回复

使用道具 举报

发表于 2012-12-24 13:08 | 显示全部楼层
(Defun C:Try ()
   (cond
     ((null (setq ee (entsel "选择要改变颜色变为红色的代表图元: "))))
     (T
      (command "Chprop"
        (ssget "X" (list (cons 8 (cdr (assoc 8 (entget (car ee)))))))
        ""
        "C"
         1        ; Red
         ""
   )))     
)

点评

十分不错,程序速度快,可不可以不用command ,这样程序在有的地方就会有通用性  发表于 2012-12-24 13:30
还有选择一个图元,则这个图元的图层上的图元全被选择,然后改色为红色  发表于 2012-12-24 13:21
能不能不用command放入程序中,  发表于 2012-12-24 13:13

评分

参与人数 1明经币 +1 收起 理由
品茗新秀 + 1 很给力!

查看全部评分

回复

使用道具 举报

发表于 2012-12-24 14:28 | 显示全部楼层
来晚了一步!
另类的(随层的对象也改为红色)
  1. (DEFUN C:XX( / laname s1)
  2.      (SETQ S1 (car(entsel "\n选择实体: ")))
  3.      (setq laname (KX-dxf 8 (entget s1)))
  4. (KX-Put-Lay-Col laname 1)
  5. )

点评

这样的不要发,没意思。  发表于 2018-6-29 10:16
KX-Put-Lay-Col 这个是什么,查了半天都没查到  发表于 2012-12-25 18:03

评分

参与人数 1明经币 +1 收起 理由
品茗新秀 + 1 很给力!

查看全部评分

回复

使用道具 举报

发表于 2012-12-24 14:47 | 显示全部楼层
这个功能实际上不难,希望楼主能多自己研究下。
提供纯lisp的方法如下:
  1. (defun c:test  (/ en ent lay layent a)
  2.   (command "_.undo" "_begin")
  3.   (setq en (car (entsel "\n选择图层颜色改为红色的代表对象:")));_选择对象
  4.   (setq ent (entget en));_对象图元表
  5.   (setq lay (cdr (assoc 8 ent)));_获取对象图层名
  6.   (setq layent (entget (tblobjname "LAYER" lay)));_获取图层图元表
  7.   (if (setq a (assoc 340 layent)) ;_如果存在真彩色
  8.     (setq layent (vl-remove a layent)) ;_删除真彩色表
  9.     )
  10.   (setq layent (subst (cons 62 1) (assoc 62 layent) layent));_图层颜色改为红色
  11.   (entmod layent);_更新图层
  12.   (entupd (cdr (assoc -1 layent)))
  13.   (command "_.undo" "_end")
  14.   (princ)
  15.   )

点评

只有你的回复符合题意。  发表于 2018-6-29 10:28
(command "_.undo" "_begin") 这个不知什么意思  发表于 2012-12-25 17:58
谢谢,太好了,给力  发表于 2012-12-24 16:58

评分

参与人数 1明经币 +1 收起 理由
品茗新秀 + 1 很给力!

查看全部评分

回复

使用道具 举报

发表于 2012-12-24 15:59 | 显示全部楼层
不知道为什么要写这个,用好图层管理很容易的事情,建议学习chlh_jd
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 08:06 , Processed in 0.299470 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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