找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 4956|回复: 35

[研讨] 多个相同组码下的GetEntDxf

[复制链接]

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-11-27 22:47:02 | 显示全部楼层 |阅读模式

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

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

×
目前 (xdrx_getentdxf code) 等同于 (cdr (assoc code elist)),仅返回第一次出现的组码值,如果在多个组码情况下是不会返回后面值的,一次获取还要用 vl-remove-if 或者其他,多个相同组码在 elist 中还是很常见,如 100 ,Pline 的组码 10 、Layout 中的 1 等等,虽然API扩展了 Getpropertyvalue ,这个函数还有没有潜力可挖?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-11-27 22:56:25 | 显示全部楼层
试试后面加个 T 参数

(xdrx_getentdxf 10 t)

点评

对于组码值为长整型数的,比如组码420, xdrx_GetEntDxf 有办法提取出返回值么?  详情 回复 发表于 2013-12-6 09:29
T 是一个迭代 next , 把 T 改成 获取全部更好  详情 回复 发表于 2013-11-27 23:07
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

 楼主| 发表于 2013-11-27 23:07:40 | 显示全部楼层
XDSoft 发表于 2013-11-27 22:56
试试后面加个 T 参数

(xdrx_getentdxf 10 t)

T 是一个迭代 next , 把 T 改成 获取全部更好

点评

有时候可能还需要一个一个处理呢。 做个WHILE循环,想单独处理就在循环里面做,不想,循环结束所有的就放一个表里面了,更灵活。  详情 回复 发表于 2013-11-27 23:10
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-11-27 23:10:32 | 显示全部楼层
st788796 发表于 2013-11-27 23:07
T 是一个迭代 next , 把 T 改成 获取全部更好

有时候可能还需要一个一个处理呢。
做个WHILE循环,想单独处理就在循环里面做,不想,循环结束所有的就放一个表里面了,更灵活。

点评

呵呵,一次获取了还可以用 Mapcar 处理呀,有时候只需要取后面的值还要 Repeat 空转几次?  详情 回复 发表于 2013-11-27 23:15
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

 楼主| 发表于 2013-11-27 23:15:59 | 显示全部楼层
XDSoft 发表于 2013-11-27 23:10
有时候可能还需要一个一个处理呢。
做个WHILE循环,想单独处理就在循环里面做,不想,循环结束所有的就 ...

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

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-12-2 22:04:49 | 显示全部楼层
新版本增加了个方式

(xdrx_getentdxf dxfcode num [T])

获取指定数量的,不给T,接着执行取后续的,给T,从0开始查找。

对多段线实体
(xdrx_setenttodb polyent)
(xdrx_getentdxf 10 4)  取4个
(xdrx_getentdxf 10 4)  接着取4个
(xdrx_getentdxf 10 8 t)  从头取8个
(xdrx_getentdxf 10 2)  接着8个,再取2个。

点评

这就够用了,这个迭代组码间互不影响吧,比如(getentdxf 10 4) (getentdxf 42 3)  详情 回复 发表于 2013-12-3 19:50
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

 楼主| 发表于 2013-12-3 19:50:56 来自手机 | 显示全部楼层
XDSoft 发表于 2013-12-2 22:04
新版本增加了个方式

(xdrx_getentdxf dxfcode num [T])

这就够用了,这个迭代组码间互不影响吧,比如(getentdxf 10 4) (getentdxf 42 3)

点评

从头开始时候就加个T,保险。除非上个祖玛已经遍历完了。  详情 回复 发表于 2013-12-3 20:23
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-12-3 20:23:12 | 显示全部楼层
st788796 发表于 2013-12-3 19:50
这就够用了,这个迭代组码间互不影响吧,比如(getentdxf 10 4) (getentdxf 42 3)

从头开始时候就加个T,保险。除非上个祖玛已经遍历完了。

点评

最近有几个例子用了这个函数,比如在这个结构 (if (and (xdrx_entsel … (xdrx_getentdxf (xdrx_entsel (xdrx_getentdxf 就要注意这个数据库,entsel后马上取出有用  详情 回复 发表于 2013-12-3 20:31
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

 楼主| 发表于 2013-12-3 20:31:44 来自手机 | 显示全部楼层
XDSoft 发表于 2013-12-3 20:23
从头开始时候就加个T,保险。除非上个祖玛已经遍历完了。


最近有几个例子用了这个函数,比如在这个结构
(if (and (xdrx_entsel …
              (xdrx_getentdxf
              (xdrx_entsel
              (xdrx_getentdxf
就要注意这个数据库,entsel后马上取出有用的,不然后面的entsel会入库替换掉上个entsel,简单的就不麻烦getpropertyvalue了,可以少码不少字
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 344个

财富等级: 日进斗金

发表于 2013-12-6 09:29:53 | 显示全部楼层
XDSoft 发表于 2013-11-27 22:56
试试后面加个 T 参数

(xdrx_getentdxf 10 t)

对于组码值为长整型数的,比如组码420, xdrx_GetEntDxf 有办法提取出返回值么?

点评

可以返回,按INT类型返回。ARX返回LISP值没有ads_retlong,整型都是用ads_retint返回的。  详情 回复 发表于 2013-12-6 10:01
330的试过,可以, 420的是什么,你试试,原理应该都能吧。  详情 回复 发表于 2013-12-6 09:32
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-12-6 09:32:47 | 显示全部楼层
牢固 发表于 2013-12-6 09:29
对于组码值为长整型数的,比如组码420, xdrx_GetEntDxf 有办法提取出返回值么?

330的试过,可以,

420的是什么,你试试,原理应该都能吧。

点评

420 的不能 _$ (setq e (car (Entsel))) _$ (xdrx_setenttodb e) T _$ (xdrx_getentdxf 420) nil _$ (xdrx_getpropertyvalue e "Color") (79 176 171) _$ (cdr (assoc 420 (entget e))) 5222571 _$ (xdr  详情 回复 发表于 2013-12-9 19:58
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

 楼主| 发表于 2013-12-6 09:37:39 | 显示全部楼层
Long  真彩色?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-12-6 10:01:35 | 显示全部楼层
牢固 发表于 2013-12-6 09:29
对于组码值为长整型数的,比如组码420, xdrx_GetEntDxf 有办法提取出返回值么?

可以返回,按INT类型返回。ARX返回LISP值没有ads_retlong,整型都是用ads_retint返回的。

点评

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

使用道具 举报

已领礼包: 344个

财富等级: 日进斗金

发表于 2013-12-9 14:02:35 | 显示全部楼层
XDSoft 发表于 2013-12-6 10:01
可以返回,按INT类型返回。ARX返回LISP值没有ads_retlong,整型都是用ads_retint返回的。

arx不能返回长整形数到lisp值,返回的只是16位整形数!

点评

应该是32位整数。足够大了,难到你有超过32位整数的应用吗?  详情 回复 发表于 2013-12-9 14:12
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-12-9 14:12:35 | 显示全部楼层
牢固 发表于 2013-12-9 14:02
arx不能返回长整形数到lisp值,返回的只是16位整形数!

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 23:36 , Processed in 0.459289 second(s), 69 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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