乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 16|回复: 16

[编程交流] 在Lisp中提取对象数据

[复制链接]

16

主题

168

帖子

39

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
197
发表于 2022-7-5 16:07:24 | 显示全部楼层 |阅读模式
GIS制图
我有一张来自该县的图纸,包含该县的每一块土地。
地块是闭合多段线,对象数据包含块和地块编号信息。
 
我想编写一个Lisp例程,在这里我选择闭合多段线,然后选择一个点,ACAD在该点插入一个属性块,并为我填写块和批号(我已经有了这个块,几乎每个项目都使用它)。
 
这个例程应该很容易编写,但我还无法确定如何提取对象数据。
普通的旧ENTGET无法获取对象数据。
这显然不是一个ENTNEXT,它似乎只是让我得到了图形中的下一条多段线。
 
我只需要将变量设置为对象数据的值,就可以完成例程。
 
我的谷歌搜索没有任何结果。。。
 
谢谢大家!
杰夫
 
如果有什么不同的话,我正在ACAD 2009地图中工作。。。
回复

使用道具 举报

35

主题

140

帖子

108

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
177
发表于 2022-7-5 16:14:35 | 显示全部楼层
看看Lee Mac的动态块函数
http://lee-mac.com/dynamicblockfunctions.html#setdynamicpropvalue
 
如果你能分享你的街区,那会很有帮助。
回复

使用道具 举报

18

主题

1529

帖子

973

银币

中流砥柱

Rank: 25

铜币
649
发表于 2022-7-5 16:15:04 | 显示全部楼层
数据可能存储在扩展数据或Xrecords中。
要查找扩展数据,请尝试以下操作:
  1. (entget (car (entsel)) '("*"))
回复

使用道具 举报

16

主题

168

帖子

39

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
197
发表于 2022-7-5 16:20:05 | 显示全部楼层
这不是X数据,这是对象数据。
它们不是块,而是闭合多段线。
 
我附上了一张图纸。其中只有闭合多段线。
选择一个并打开“属性”框。属性框底部是“OD”(对象数据)。
包裹3539。图纸
回复

使用道具 举报

35

主题

140

帖子

108

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
177
发表于 2022-7-5 16:23:57 | 显示全部楼层
在你的作品中,你说你使用的是动态块。
回复

使用道具 举报

16

主题

168

帖子

39

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
197
发表于 2022-7-5 16:29:50 | 显示全部楼层
对不起,乔纳森,但我认为你需要回去再看一遍那篇文章。
 
地块是闭合多段线,对象数据包含块和地块编号信息
 
区块和地块是指用于记录房地产地块信息的系统县。
 
哦,对象数据(OD)和扩展数据(XData)是两件不同的事情。
回复

使用道具 举报

4

主题

2143

帖子

2197

银币

限制会员

铜币
-24
发表于 2022-7-5 16:32:05 | 显示全部楼层
我在属性中没有看到任何对象数据,这可能与地图有关吗?也是一个。shx缺失。
回复

使用道具 举报

16

主题

168

帖子

39

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
197
发表于 2022-7-5 16:33:49 | 显示全部楼层
这肯定与地图有关!
我没有访问ACAD的标准版本来测试这一点。
回复

使用道具 举报

20

主题

338

帖子

323

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-5 16:38:48 | 显示全部楼层
您需要研究OD函数,例如。
 
  1. (ade_odgettables ent)
  2. (ade_odtabledefn tbl)
  3. (ade_odgetfield ent tbl fld 0)

 
我希望这有助于作为一个起点。
 
  1. (defun getfield (ent field) ;field as string
  2. (setq tbl (nth 0 (ade_odgettables ent)))
  3. (setq fields (ade_odtabledefn tbl));not needed but included for reference
  4. (setq return (ade_odgetfield ent tbl field 0))
  5. return
  6. )
回复

使用道具 举报

35

主题

140

帖子

108

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
177
发表于 2022-7-5 16:41:28 | 显示全部楼层
也许这会有帮助?
http://www.cadtutor.net/forum/showthread.php?53420-对象数据到属性数据到完美
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-13 20:08 , Processed in 0.510526 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表