找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1357|回复: 7

[求助] XDRX_Database_readDwg应用

[复制链接]

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-9-23 22:03:44 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 st788796 于 2013-9-23 22:05 编辑

以前不打开图形进行编辑 Lisp 只能通过 ObjectDBX 来做,看到 API 有几个 DataBase 函数就试了一下,没有摸到头绪,xdrx_database_selDB 后哪些是相关函数? api 中的数据库大都是基于实体的,这个实体一般也是用 ssget entsel 获取,在ObjectDBX下处理 Modelspace PaperSpace也是用遍历方式,不支持选择的,问题是 API 提供了 ReadDWG 方法,可这个 Datebase 内的实体用什么函数获得?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-9-23 22:25:38 | 显示全部楼层
你选择了外部数据库后,API的所有关于对象等函数都是对那个外部数据库操作了。

比如:
你再使用
(xdrx_object_get "layer" "0") 获得的就是那个数据库的图层定义了
你也一样用其他的API函数去修改那个数据库中的实体,比如:
修改层名。

通过这些数据库相关函数,就可以写批量的处理外部数据库内容的程序了,比如批量根据定义的层名替换文件,去修改层名,进行标准化等。

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

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2013-9-23 22:28:17 | 显示全部楼层
API的所有对数据库对象操作的函数,都是对着一个数据库指针,你修改了这个指针,API函数就处理那个数据库。

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

 楼主| 发表于 2013-9-23 23:06:22 | 显示全部楼层
比如我要替换数据库某些Text为 Newstring 怎么操作?

点评

我想,你要先找到这些实体,选择集函数肯定用不了,你只能用API函数。 那只能遍历数据库了, 下面是我的测试: 命令: (setq ob (xdrx_object_get "block" "*model_space")) 命令: (while (setq e (xdr  详情 回复 发表于 2013-9-23 23:14
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-9-23 23:14:50 | 显示全部楼层
st788796 发表于 2013-9-23 23:06
比如我要替换数据库某些Text为 Newstring 怎么操作?

我想,你要先找到这些实体,选择集函数肯定用不了,你只能用API函数。

那只能遍历数据库了,

下面是我的测试:

命令: (setq ob (xdrx_object_get "block" "*model_space"))
<图元名: 7ef93cf8>

命令: (while (setq e (xdrx_object_next))(setq entlst (cons e entlst)))
(("AcDbBlockReference" <图元名: 7ef955a0>) ("AcDbBlockReference" <图元名: 7ef95450>)
("AcDbBlockReference" <图元名: 7ef95430>) ("AcDbBlockReference" <图元名: 7ef95410>))


找到你需要的文字,然后用 xdrx_SetPropertyValue 尽情修改吧。

点评

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-9-23 23:18:38 | 显示全部楼层
另外一个测试:

命令: (setq ob (xdrx_object_get "block" "*model_space"))
<图元名: 7ef93cf8>

命令: (setq entl (xdrx_getpropertyvalue ob "allentities"))
(<图元名: 7ef95410> <图元名: 7ef95400> <图元名: 7ef95408> <图元名: 7ef95430> <图元名:
7ef95450> <图元名: 7ef955a0> <图元名: 7ef95600>)

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

 楼主| 发表于 2013-9-23 23:20:05 | 显示全部楼层
newer 发表于 2013-9-23 23:14
我想,你要先找到这些实体,选择集函数肯定用不了,你只能用API函数。

那只能遍历数据库了,

{:soso_e113:} 我怎么没想到这个 Name 用 *modelspce!

点评

呵呵,越来越感觉API太强悍了。 还有一个 (xdrx_block_getEntity ob '((0 . "text"))) 就是支持过滤了,不过没试出来,问老大,老大说 这个函数过滤暂时支持带参数的 "C" "W",以后支持全选这种,期待。  详情 回复 发表于 2013-9-23 23:31
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-9-23 23:31:28 | 显示全部楼层
st788796 发表于 2013-9-23 23:20
我怎么没想到这个 Name 用 *modelspce!

呵呵,越来越感觉API太强悍了。

还有一个 (xdrx_block_getEntity ob '((0 . "text"))) 就是支持过滤了,不过没试出来,问老大,老大说 这个函数过滤暂时支持带参数的 "C" "W",以后支持全选这种,期待。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-8 20:38 , Processed in 0.414012 second(s), 43 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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