找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3385|回复: 19

[求助] 求助-改选择集图层与线型

[复制链接]

已领礼包: 15个

财富等级: 恭喜发财

发表于 2016-8-14 11:24:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
(vl-cmdf "_.chprop" get "" "C" "BYLAYER" "LT" "BYLAYER" "La" Hu_Layer "")

这样改选择集 颜色随层,线型随层,,有点不稳定
比如选10个对象,有时候8个对象,改成随层了,有2个又没改过来,
请问这是怎么回事,还有别的方法没,改选择集 颜色,线型随层吗?
请指点下,谢谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-8-14 12:24:14 | 显示全部楼层
用LISP函数 entmod 修改

点评

COMMAND 调用CAD命令的确是不稳定是吧 用ENTMOD 修改,那就要处理选择每一个对象,WHILE一次 数量多的话,没有CAD命令快哦  详情 回复 发表于 2016-8-14 12:28
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 15个

财富等级: 恭喜发财

 楼主| 发表于 2016-8-14 12:28:13 | 显示全部楼层
newer 发表于 2016-8-14 12:24
用LISP函数 entmod 修改

COMMAND 调用CAD命令的确是不稳定是吧
用ENTMOD 修改,那就要处理选择每一个对象,WHILE一次
数量多的话,没有CAD命令快哦

点评

你理解有误,CAD的命令处理多个实体的选择集,内部也是要一个一个来的,不如你用LISP 循环处理的快, 另外,执行一个命令,要先到命令堆栈里面寻找命令,要有一定的额外开销。因此,用COMMAND执行一个命令和同样的L  详情 回复 发表于 2016-8-14 16:33
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-8-14 16:33:26 | 显示全部楼层
爱莫能助 发表于 2016-8-14 12:28
COMMAND 调用CAD命令的确是不稳定是吧
用ENTMOD 修改,那就要处理选择每一个对象,WHILE一次
数量多的 ...

你理解有误,CAD的命令处理多个实体的选择集,内部也是要一个一个来的,不如你用LISP 循环处理的快,
另外,执行一个命令,要先到命令堆栈里面寻找命令,要有一定的额外开销。因此,用COMMAND执行一个命令和同样的LISP函数,一定是LISP快。
开发程序,如果能用LISP实现的话,尽量不要用COMMAND.

点评

我写LISP方法,还是没有调用CAD自身的命令快哦 用LISP方法有卡的现象 调用CAD自身没有卡的现象 这里上传不了CAD图档 我是选了 找到 116580 个 对象试的 大神试下,看谁快  详情 回复 发表于 2016-8-15 08:47
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2016-8-14 17:03:40 | 显示全部楼层
爱莫能助 发表于 2016-8-14 12:28
COMMAND 调用CAD命令的确是不稳定是吧
用ENTMOD 修改,那就要处理选择每一个对象,WHILE一次
数量多的 ...

你怎么构造的选择集?

锁定的图层实体不可更改

点评

我怎么发现,,别人都说COMMAND 调用CAD命令执行速度慢 但我发现,批量改图层,用CAD自身命令,就比LISP快好多 为什么会这样呢  详情 回复 发表于 2016-8-15 14:42
我是用SSGET 构建的选择集 同时改颜色,线型,图层,全改为随层 有的对象,改了图层与线型随层,有的颜色又没有改过来随层 没有锁定的图层实体  详情 回复 发表于 2016-8-15 08:39
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 15个

财富等级: 恭喜发财

 楼主| 发表于 2016-8-15 08:39:11 | 显示全部楼层
st788796 发表于 2016-8-14 17:03
你怎么构造的选择集?

锁定的图层实体不可更改

我是用SSGET 构建的选择集
同时改颜色,线型,图层,全改为随层
有的对象,改了图层与线型随层,有的颜色又没有改过来随层
没有锁定的图层实体
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 15个

财富等级: 恭喜发财

 楼主| 发表于 2016-8-15 08:44:58 | 显示全部楼层
newer 发表于 2016-8-14 16:33
你理解有误,CAD的命令处理多个实体的选择集,内部也是要一个一个来的,不如你用LISP 循环处理的快,
另 ...
  1. (defun c:tt ()
  2.   (setq get (ssget))
  3.   (if get
  4.     (progn
  5.       (setq len (sslength get))
  6.       (repeat len
  7.   (setq nn (ssname get (setq len (1- len))))
  8.   (setq en (entget nn))
  9.   (setq en (subst (cons 62 256) (assoc 62 en) en))
  10.   (setq en (subst (cons 8 "bend") (assoc 8 en) en))
  11.   (setq en (subst (cons 6 "ByLayer") (assoc 6 en) en))
  12.   (entmod en)
  13.   )
  14.       )
  15.     )
  16.   (princ)
  17.   )

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 15个

财富等级: 恭喜发财

 楼主| 发表于 2016-8-15 08:47:48 | 显示全部楼层
newer 发表于 2016-8-14 16:33
你理解有误,CAD的命令处理多个实体的选择集,内部也是要一个一个来的,不如你用LISP 循环处理的快,
另 ...

我写LISP方法,还是没有调用CAD自身的命令快哦 用LISP方法有卡的现象
调用CAD自身没有卡的现象
这里上传不了CAD图档  我是选了  找到 116580 个 对象试的
大神试下,看谁快
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 15个

财富等级: 恭喜发财

 楼主| 发表于 2016-8-15 14:42:38 | 显示全部楼层
st788796 发表于 2016-8-14 17:03
你怎么构造的选择集?

锁定的图层实体不可更改


我怎么发现,,别人都说COMMAND 调用CAD命令执行速度慢
但我发现,批量改图层,用CAD自身命令,就比LISP快好多
为什么会这样呢

点评

用命令执行,两种时间 1、查询命令接口的时间 2、内部ARX执行的时间 用LISP执行: 1、LISP解释然后调用底层ARX的时间 至于哪个快,还真得看具体是什么应用。 如果一个LISP代码中,反复频繁的在循环里面  详情 回复 发表于 2016-8-15 15:22
不同的代码效率也不同,你把你的LISP操作修改实体的代码贴上来看看。  详情 回复 发表于 2016-8-15 14:56
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-8-15 14:56:36 | 显示全部楼层
爱莫能助 发表于 2016-8-15 14:42
我怎么发现,,别人都说COMMAND 调用CAD命令执行速度慢
但我发现,批量改图层,用CAD自身命令,就比LI ...

不同的代码效率也不同,你把你的LISP操作修改实体的代码贴上来看看。

点评

[*](defun c:tt () [*] (setq get (ssget)) [*] (if get [*] (progn [*] (setq len (sslength get)) [*] (repeat len [*] (setq nn (ssname get (setq len (1- len)))) [*]  详情 回复 发表于 2016-8-15 15:50
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 859个

财富等级: 财运亨通

发表于 2016-8-15 15:11:50 来自手机 | 显示全部楼层
change/chprop/move/copy/rotate/mirror执行操作使用command即可

点评

(vl-cmdf "_.chprop" get "" "C" "BYLAYER" "LT" "BYLAYER" "La" Hu_Layer "") 这样改选择集 颜色随层,线型随层,,有点不稳定 比如选10个对象,有时候8个对象,改成随层了,有2个又没改过来, 请问这是怎么  详情 回复 发表于 2016-8-15 15:53
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-8-15 15:22:12 | 显示全部楼层
爱莫能助 发表于 2016-8-15 14:42
我怎么发现,,别人都说COMMAND 调用CAD命令执行速度慢
但我发现,批量改图层,用CAD自身命令,就比LI ...

用命令执行,两种时间

1、查询命令接口的时间
2、内部ARX执行的时间

用LISP执行:
1、LISP解释然后调用底层ARX的时间

至于哪个快,还真得看具体是什么应用。
如果一个LISP代码中,反复频繁的在循环里面调用命令,效率是不高的。

实际上,最决定的因素还是算法的时间效率。如果仅仅是线性时间复杂度O(N)的,比较时间没意义,差别也仅仅是几个毫秒的差距。

如果在O(N2)以上的算法,如果在里面频繁使用命令,影响的就大了。

所以,能尽量不使用命令的时候还是用提供的函数去做。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 15个

财富等级: 恭喜发财

 楼主| 发表于 2016-8-15 15:50:51 | 显示全部楼层
newer 发表于 2016-8-15 14:56
不同的代码效率也不同,你把你的LISP操作修改实体的代码贴上来看看。



论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 15个

财富等级: 恭喜发财

 楼主| 发表于 2016-8-15 15:53:47 | 显示全部楼层
csharp 发表于 2016-8-15 15:11
change/chprop/move/copy/rotate/mirror执行操作使用command即可

(vl-cmdf "_.chprop" get "" "C" "BYLAYER" "LT" "BYLAYER" "La" Hu_Layer "")

这样改选择集 颜色随层,线型随层,,有点不稳定
比如选10个对象,有时候8个对象,改成随层了,有2个又没改过来,
请问这是怎么回事
请指点下,谢谢

点评

看看是不是在锁定层中  详情 回复 发表于 2016-8-15 15:58
你把你的DWG文件,没成功的做下标记, 压缩文件传上论坛。  详情 回复 发表于 2016-8-15 15:58
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-8-15 15:58:07 | 显示全部楼层
爱莫能助 发表于 2016-8-15 15:53
(vl-cmdf "_.chprop" get "" "C" "BYLAYER" "LT" "BYLAYER" "La" Hu_Layer "")

这样改选择集 颜色随 ...

你把你的DWG文件,没成功的做下标记, 压缩文件传上论坛。

点评

DWG也没有问题 有时候行,有时候不行 同一个图,,一下行选中好多,有的图层改过来,线型又没有改随层,颜色改了,又没有随层 返回去重新选,又可以了,我也搞晕了  详情 回复 发表于 2016-8-15 16:30
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-27 14:21 , Processed in 0.213315 second(s), 69 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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