明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1399|回复: 10

[提问] 关于互换两个实体颜色的程序

[复制链接]
发表于 2020-2-19 14:36:22 | 显示全部楼层 |阅读模式
想请假下大神们,相同或不同图层的实体,能否通过一个命令 使得这两个实体的颜色对调,这样能实现吗?
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2020-2-23 00:40:38 | 显示全部楼层
(defun c:tt5 (/ cor1 cor2 ent1 ent2 ss)
(setq ss (ssget) ent1 (ssname ss 0) ent2 (ssname ss 1))
(if (not (setq cor1 (assoc 62 (entget ent1)))) (setq cor1 (assoc 62 (tblsearch "layer" (cdr (assoc 8 (entget ent1)))))))
(if (not (setq cor2 (assoc 62 (entget ent2)))) (setq cor2 (assoc 62 (tblsearch "layer" (cdr (assoc 8 (entget ent2)))))))
(command "CHANGE" ent1 "" "p" "c" (cdr cor2) "" "CHANGE" ent2 "" "p" "c" (cdr cor1) "")
(princ)
)
回复 支持 1 反对 0

使用道具 举报

发表于 2020-2-24 00:24:05 | 显示全部楼层
上面的代码改一下就实现了,基础东西先自己学了
(defun c:tt5 (/ cor1 ent1 ss)
(setq  ent1 (car (entsel "\n选择源对象:")) ss (ssget))
(if (not (setq cor1 (assoc 62 (entget ent1)))) (setq cor1 (assoc 62 (tblsearch "layer" (cdr (assoc 8 (entget ent1)))))))
(command "CHANGE" ss "" "p" "c" (cdr cor1) "")
(princ)
)
回复 支持 1 反对 0

使用道具 举报

发表于 2020-2-23 05:23:34 | 显示全部楼层
start4444 发表于 2020-2-23 00:40
(defun c:tt5 (/ cor1 cor2 ent1 ent2 ss)
(setq ss (ssget) ent1 (ssname ss 0) ent2 (ssname ss 1))
(i ...

谢谢分享你的知识,,,,,谢谢
 楼主| 发表于 2020-2-23 14:07:08 | 显示全部楼层
start4444 发表于 2020-2-23 00:40
(defun c:tt5 (/ cor1 cor2 ent1 ent2 ss)
(setq ss (ssget) ent1 (ssname ss 0) ent2 (ssname ss 1))
(i ...

可以用,大神,非常感谢非常感谢!
 楼主| 发表于 2020-2-23 23:26:06 | 显示全部楼层
start4444 发表于 2020-2-23 00:40
(defun c:tt5 (/ cor1 cor2 ent1 ent2 ss)
(setq ss (ssget) ent1 (ssname ss 0) ent2 (ssname ss 1))
(i ...

大侠,如果是类似笔刷的功能想框选刷其他实体,只改变颜色,能实现么
 楼主| 发表于 2020-2-24 00:57:49 | 显示全部楼层
start4444 发表于 2020-2-24 00:24
上面的代码改一下就实现了,基础东西先自己学了
(defun c:tt5 (/ cor1 ent1 ss)
(setq  ent1 (car (entse ...

感谢感谢大侠,主要学的给排水的,这个没怎么接触过,不知道该如何入门哎,只是能稍微有这么点意识可以通过lsp来实现,但是不知道该怎么去实现,也不知道该看哪些内容来学习的哎
 楼主| 发表于 2020-2-24 14:57:13 | 显示全部楼层
start4444 发表于 2020-2-23 00:40
(defun c:tt5 (/ cor1 cor2 ent1 ent2 ss)
(setq ss (ssget) ent1 (ssname ss 0) ent2 (ssname ss 1))
(i ...

大侠,我用类似代码修改了下,想改成功能是仅刷线型比例,但是貌似实现不了不知道哪里有问题的
(defun c:tt5 (/ cor1 ent1 ss)
(setq  ent1 (car (entsel "\n选择源对象:")) ss (ssget))
(if (not (setq cor1 (assoc 48 (entget ent1)))) (setq cor1 (assoc 48 (tblsearch "layer" (cdr (assoc 8 (entget ent1)))))))
(command "CHANGE" ss "" "p" "s" (cdr cor1) "")
(princ)
)
发表于 2020-2-24 16:34:20 | 显示全部楼层
magicheno 发表于 2020-2-24 14:57
大侠,我用类似代码修改了下,想改成功能是仅刷线型比例,但是貌似实现不了不知道哪里有问题的
(defun c ...

测试了代码没问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-18 09:03 , Processed in 0.190060 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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