找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: st788796

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

[复制链接]

已领礼包: 1268个

财富等级: 财源广进

 楼主| 发表于 2013-12-9 19:58:32 | 显示全部楼层
newer 发表于 2013-12-6 09:32
330的试过,可以,

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

420 的不能, Window7 + AutoCAD 2012 64bit

_$ (setq e (car (Entsel)))
<图元名: 7ffffb1c880>
_$ (xdrx_setenttodb e)
T
_$ (xdrx_getentdxf 420)
nil
_$ (xdrx_getpropertyvalue e "Color")
(79 176 171)
_$ (cdr (assoc 420 (entget e)))
5222571
_$ (xdrx_getpropertyvalue e "ObjectID")
-5126016
_$ (xdrx_document_getversionex)
"2013.12.8"
_$

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

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-12-9 20:04:45 | 显示全部楼层
什么实体?

点评

AcDbLine 只不过改成了TrurColor  详情 回复 发表于 2013-12-9 21:59
真彩色对象!  详情 回复 发表于 2013-12-9 20:33
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 344个

财富等级: 日进斗金

发表于 2013-12-9 20:33:49 来自手机 | 显示全部楼层
XDSoft 发表于 2013-12-9 20:04
什么实体?

真彩色对象!

点评

测试了下,ARX返回的和ENTGET的值不同,帮看看数据间有什么内在关系 命令: (xdrx_setenttodb (entlast)) T 命令: (xdrx_getentdxf 420) 31963 命令: (entget (entlast))*取消* 命令: (xdrx_getpropert  详情 回复 发表于 2013-12-9 22:00
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

 楼主| 发表于 2013-12-9 21:59:07 来自手机 | 显示全部楼层
XDSoft 发表于 2013-12-9 20:04
什么实体?

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

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-12-9 22:00:10 | 显示全部楼层

测试了下,ARX返回的和ENTGET的值不同,帮看看数据间有什么内在关系

命令: (xdrx_setenttodb (entlast))
T

命令: (xdrx_getentdxf 420)
31963

命令: (entget (entlast))*取消*

命令: (xdrx_getpropertyvalue (entlast) "color")
(36 124 219)

命令: (entget (entlast))
((-1 . <图元名: 7ef93fb8>) (0 . "LINE") (330 . <图元名: 7ef93c10>) (5 . "C7") (100 .
"AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (62 . 152) (420 . 2391259)
(100 . "AcDbLine") (10 26004.0 13375.2 0.0) (11 20748.4 7177.95 0.0) (210 0.0
0.0 1.0))


点评

(xdrx_getentdxf 420)返回的只是截取了420组码直的16位数字!也就是说rgb只返回了gb,r色值被忽略了!  详情 回复 发表于 2013-12-9 22:52
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

 楼主| 发表于 2013-12-9 22:23:03 来自手机 | 显示全部楼层
本帖最后由 st788796 于 2013-12-9 22:29 编辑

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

使用道具 举报

已领礼包: 344个

财富等级: 日进斗金

发表于 2013-12-9 22:52:47 来自手机 | 显示全部楼层
本帖最后由 牢固 于 2013-12-9 22:55 编辑
XDSoft 发表于 2013-12-9 22:00
测试了下,ARX返回的和ENTGET的值不同,帮看看数据间有什么内在关系

命令: (xdrx_setenttodb (entlast ...


(xdrx_getentdxf 420)返回的只是截取了420组码直的16位数字!也就是说rgb只返回了gb,r色值被忽略了!看书说arx不能直接向lisp返回长整形数!

点评

ARX不能返回LONG整数给LISP,API变通了下,对于420组码 直接发回(R G B)表 下面是测试数据 命令: (xdrx_setenttodb (entlast)) T 命令: (xdrx_getentdxf 420) (36 124 219) 命令: (entget (entlast))  详情 回复 发表于 2013-12-9 23:20
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-12-9 23:20:16 | 显示全部楼层
牢固 发表于 2013-12-9 22:52
(xdrx_getentdxf 420)返回的只是截取了420组码直的16位数字!也就是说rgb只返回了gb,r色值被忽略了! ...

ARX不能返回LONG整数给LISP,API变通了下,对于420组码 直接发回(R G B)表

下面是测试数据

命令: (xdrx_setenttodb (entlast))
T

命令: (xdrx_getentdxf 420)
(36 124 219)

命令: (entget (entlast))
((-1 . <图元名: 7ef93fb8>) (0 . "LINE") (330 . <图元名: 7ef93c10>) (5 . "C7") (100 .
"AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (62 . 152) (420 . 2391259)
(100 . "AcDbLine") (10 26004.0 13375.2 0.0) (11 20748.4 7177.95 0.0) (210 0.0
0.0 1.0))

命令: (xdrx_getpropertyvalue (entlast) "color")
(36 124 219)


点评

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

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-12-9 23:25:49 | 显示全部楼层
2391259的由来

36=0x24
124=0x7C
219=0XDB

0x00RRGGBB=0x00247CDB=(十进制)2391259

点评

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

 楼主| 发表于 2013-12-9 23:58:41 | 显示全部楼层
XDSoft 发表于 2013-12-9 23:25
2391259的由来

36=0x24124=0x7C

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

 楼主| 发表于 2013-12-10 00:04:18 | 显示全部楼层
刚试了下 用 Entmod 修改真彩色很方便,比 VLA-setrgb 好用

命令: (setq el (entget (car (Entsel))))

选择对象: ((-1 . <图元名: 7ffffb13b60>) (0 . "LINE") (330 . <图元名: 7ffffb039f0>) (5 .
"40E") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (100 .
"AcDbLine") (10 2227.53 1187.71 0.0) (11 2257.22 1172.88 0.0) (210 0.0 0.0 1.0))

命令: (entmod (append el '((420 . 2807128))))
((-1 . <图元名: 7ffffb13b60>) (0 . "LINE") (330 . <图元名: 7ffffb039f0>) (5 . "40E")
(100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (100 . "AcDbLine") (10
2227.53 1187.71 0.0) (11 2257.22 1172.88 0.0) (210 0.0 0.0 1.0) (420 . 2807128))
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 344个

财富等级: 日进斗金

发表于 2013-12-10 10:02:19 | 显示全部楼层
XDSoft 发表于 2013-12-9 23:20
ARX不能返回LONG整数给LISP,API变通了下,对于420组码 直接发回(R G B)表

下面是测试数据

  1. struct resbuf *rbVar = acutBuildList(RTLONG,rb->resval.rlong,RTNONE);
  2.             acedRetVal(rbVar);
  3.             acutRelRb(rbVar);


这样就可以直接返回长整型数了!

点评

这样,还是一个表,前面的是组码 (420 . xxxxxxxxx)这样的。API现在是返回(高16位整数 低16位整数)  详情 回复 发表于 2013-12-10 10:46
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-12-10 10:46:18 | 显示全部楼层
牢固 发表于 2013-12-10 10:02
这样就可以直接返回长整型数了!

这样,还是一个表,前面的是组码 (420 . xxxxxxxxx)这样的。API现在是返回(高16位整数 低16位整数)

点评

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

使用道具 举报

已领礼包: 344个

财富等级: 日进斗金

发表于 2013-12-10 11:05:24 | 显示全部楼层
XDSoft 发表于 2013-12-10 10:46
这样,还是一个表,前面的是组码 (420 . xxxxxxxxx)这样的。API现在是返回(高16位整数 低16位整数)

返回的不是表,返回的直接就是长整型数,你试下就知道了!

点评

测试了,带组码的,返回点对的格式,LONG型的返回的是LONG。 API xdrx_getentdxf调整了,对420组码,返回RGB表。 其他长整形返回长整形。  详情 回复 发表于 2013-12-10 23:48
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-23 16:22 , Processed in 0.182765 second(s), 54 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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