找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1580|回复: 11

[求助] xdrx_entity_getproperty用法疑问

[复制链接]

已领礼包: 48个

财富等级: 招财进宝

发表于 2020-12-8 22:38:44 | 显示全部楼层 |阅读模式

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

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

×
返回文字选择集的字符串表
(setq strlst (xdrx_entity_getproperty (ssget '((0 . "text"))) "textstring"))


如何用类似以上语句,返回联合列表((str1 en1) ....),其中str1为字符串,en1为图元名

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

已领礼包: 40个

财富等级: 招财进宝

发表于 2020-12-9 07:27:39 | 显示全部楼层
本帖最后由 newer 于 2020-12-9 07:32 编辑

1.(mapcar '(lambda(x)(list (xdrx-getpropertyvalue x "textstring") x))(xdrx-pickset->ents (ssget '((0 . "text")))))
2.
(xdrx-entity-getproperty (ssget) "textstring" "handle")
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 48个

财富等级: 招财进宝

 楼主| 发表于 2020-12-9 19:25:13 | 显示全部楼层
本帖最后由 pxt2015 于 2020-12-9 19:27 编辑

第一种方式,xdrx-pickset->ents遍历一次选择集,mapcar再遍历一次表,相对于第二种方式,是不是速度稍慢?

点评

对于现在的机器来说,1毫秒和2毫秒的区别 拖慢程序的是算法 这里的代码都是线性,复杂度是n的,1n好 2n没什么区别 你的代码其他地方如果是n*n的,慢的是其他地方  详情 回复 发表于 2020-12-9 19:31
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2020-12-9 19:31:02 | 显示全部楼层
pxt2015 发表于 2020-12-9 19:25
第一种方式,xdrx-pickset->ents遍历一次选择集,mapcar再遍历一次表,相对于第二种方式,是不是速度稍慢? ...

对于现在的机器来说,1毫秒和2毫秒的区别
拖慢程序的是算法
这里的代码都是线性,复杂度是n的,1n好 2n没什么区别
你的代码其他地方如果是n*n的,慢的是其他地方
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 48个

财富等级: 招财进宝

 楼主| 发表于 2020-12-9 20:49:47 | 显示全部楼层
受教了,第一种方式便于格式化代码,通用性强。

点评

2020.12.18版本,可以直接返回实体名了 (xdrx-getpropertyvalue (ssget) "textstring" "ename")  详情 回复 发表于 2020-12-13 15:42
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2020-12-13 15:42:47 | 显示全部楼层
pxt2015 发表于 2020-12-9 20:49
受教了,第一种方式便于格式化代码,通用性强。

2020.12.18版本,可以直接返回实体名了
(xdrx-getpropertyvalue (ssget) "textstring" "ename")

点评

仅选择 一个时,少了个括号。 命令: (xdrx-getpropertyvalue (ssget) "textstring" "ename") 选择对象: 指定对角点: 找到 1 个 选择对象: ("4%%13225/2%%13220" ) 选择多个时,是正确的: 命令: (xdrx-get  详情 回复 发表于 2020-12-14 14:06
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 202个

财富等级: 日进斗金

发表于 2020-12-14 14:06:33 | 显示全部楼层
XDSoft 发表于 2020-12-13 15:42
2020.12.18版本,可以直接返回实体名了
(xdrx-getpropertyvalue (ssget) "textstring" "ename")

仅选择 一个时,少了个括号。
命令: (xdrx-getpropertyvalue (ssget) "textstring" "ename")
选择对象: 指定对角点: 找到 1 个
选择对象:
("4%%13225/2%%13220" <图元名: 7ff3fdd1d2b0>)

选择多个时,是正确的:

命令: (xdrx-getpropertyvalue (ssget) "textstring" "ename")
选择对象: 找到 1 个
选择对象: 找到 1 个,总计 2 个
选择对象: 找到 1 个,总计 3 个
选择对象:
(("4%%13225/2%%13220" <图元名: 7ff3fdd1d2b0>) ("4%%13225/2%%13222" <图元名: 7ff3fdd1d2d0>) ("4%%13225/2%%13222" <图元名: 7ff3fdd1d2f0>))

建议仅选择一个时,也在外面加上一层括号就好了。

点评

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

使用道具 举报

已领礼包: 202个

财富等级: 日进斗金

发表于 2020-12-14 14:08:05 | 显示全部楼层
命令: (xdrx-entity-getproperty (ssget) "textstring" "handle")
选择对象: 找到 1 个
选择对象:
(("4%%13225/2%%13220" "84EB"))
这样是可以的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 48个

财富等级: 招财进宝

 楼主| 发表于 2020-12-14 14:58:41 | 显示全部楼层
本帖最后由 pxt2015 于 2020-12-14 15:03 编辑

以上语句中,"84EB"如何转换成图元名?
同样是处理选择集,有时用xdrx-entity-getproperty,有时用xdrx-getpropertyvalue,不知道如何区分

点评

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2020-12-14 15:11:12 | 显示全部楼层
pxt2015 发表于 2020-12-14 14:58
以上语句中,"84EB"如何转换成图元名?
同样是处理选择集,有时用xdrx-entity-getproperty,有时用xdrx-ge ...

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2020-12-17 11:27:12 | 显示全部楼层
dyjwyqz5221 发表于 2020-12-14 14:06
仅选择 一个时,少了个括号。
命令: (xdrx-getpropertyvalue (ssget) "textstring" "ename")
选择对象: ...

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

使用道具 举报

已领礼包: 48个

财富等级: 招财进宝

 楼主| 发表于 2021-1-3 18:32:47 | 显示全部楼层
本帖最后由 pxt2015 于 2021-1-3 20:40 编辑

当需要创建联合列表时,
(Xdrx_Getpropertyvalue (ssget '((0 . "text"))) "Textstring" "Rotation" "Ename")

一句话代替了以下一大段代码,有干掉Xdrx_Pickset->Ents函数的趋势,而且避免了局部变量的互相干扰。
代码简化且格式化编程了。

  1. (setq ss (ssget '((0 . "text"))))
  2. (Mapcar 'Set '(i l) '(-1 Nil))
  3. (Repeat        (Sslength ss)
  4.   (Setq  En  (Ssname ss (Setq i (1+ i)))
  5.         Da  (Entget En)
  6.         Str (cdr (assoc 1 Da))
  7.         Ro  (cdr (assoc 50 Da))
  8.   )
  9.   (Setq l (Cons (List Str Ro En) l))
  10. )
  11. (Setq l (reverse l))

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-20 00:36 , Processed in 0.441803 second(s), 51 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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