明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1920|回复: 7

如何将实体名保存在文件中

[复制链接]
发表于 2012-5-14 18:24:49 | 显示全部楼层 |阅读模式
我现在碰到一个问题,请高手指点。
我从图形数据库中,获得一个实体,如图块的文件名,(如<Entity name: 20a1858>),并且使用文件操作open prin1等命令(prin1 能将实体名原样输至文件),将图块的文件名原样写入文件中。请问在调用文件名时,利用命令(read-line f),取出来的是字符串(如"<Entity name: 20a1858>"),如何将这一字符串变成实体名?我使用read 函数,不能够得到实体,请指点。另外,处理码与实体名是唯一的吗?
发表于 2012-5-14 18:59:34 | 显示全部楼层
这样不行!图元名只能用Lisp函数读取和使用,不可以写成字符串,CAD将图元名显示为<Entity name: 20a1858>仅仅是给你看看而已!你何以使用句柄,句柄是唯一的,不随图形的打开和关闭而发生变化!
 楼主| 发表于 2012-5-15 09:09:58 | 显示全部楼层
句柄也不是唯一的,在autolisp数据库中,如((-1 . <Entity name: 53f0df8>) (0 . "INSERT") (5 . "B9947") (100 .
"AcDbEntity") (67 . 0) (8 . "0") (100 . "AcDbBlockReference") (66 . 1) (2 .
"TYA1A") (10 593054.0 -563236.0 0.0) (41 . 100.0) (42 . 100.0) (43 . 100.0) (50
. 0.0) (70 . 0) (71 . 0) (44 . 0.0) (45 . 0.0) (210 0.0 0.0 1.0))

(5 . "B9947")对应的 B9947为句柄,但在不同的dwg文件里,有可能句柄相同。我编辑的数据可能涉及到不同的图形,可能造成句柄不是唯一的。对于CAD实体,实体名是唯一的,不管有多少dwg实体,哪怕不在同一个dwg文件中,每个实体均对应唯一的实体名。

点评

句柄是和DWG图唯一对应的!  发表于 2012-5-15 10:09
发表于 2012-5-15 09:56:35 | 显示全部楼层
同一张图在不同的cad和机器打开,句柄是不变的,而实体名是变化的。
 楼主| 发表于 2012-5-15 17:25:09 | 显示全部楼层
本帖最后由 hvac_wh 于 2012-5-15 17:27 编辑
xyh 发表于 2012-5-15 09:56
同一张图在不同的cad和机器打开,句柄是不变的,而实体名是变化的。


网友:曲解了我的意思。如打开两个相同模版的ACAD,开始在两个CAD界面,画同一条,起点、终点、标高,图层、颜色一样的直线。查得这两条直线的句柄是相同的,但是他们的实体名是不同的,如果将这两条直线以块的方式插入到对另外一张新图上,是可以合成的;但是如果将同一文件,分别改成不同的文件名,如b1.dwg、b2.dwg。以块的形式,将b1.dwg、 b2.dwg 插入到同一文件中,将会出错,因为他们实体名有重复。实体名不同,句柄一致,插入图形可以;但实体名相同,哪怕句柄不一致,插入图形将出错。由此看来,实体名是CAD绘图唯一的,句柄却不是唯一的。但对于同一张图而言,句柄与实体名是唯一对应的,可以利用handle 函数将句柄得出实体名。我估计,CAD实体名生成可能与时间有关系,不知道能否得到证实?
发表于 2012-5-16 05:00:57 来自手机 | 显示全部楼层
楼主应该反思自己的思路是否进入误区。同样的问题,没有人象你那样处理。好好研究下扩展数据

点评

采用扩展数据我也想过,但从高版本转为低版本时,可能要失去数据。并且兼容性不好,这是扩展数据主要的问题。我已换成另外思路,本问题已解决!  发表于 2012-5-19 03:29
发表于 2012-5-16 09:23:06 | 显示全部楼层
hvac_wh 发表于 2012-5-15 17:25
网友:曲解了我的意思。如打开两个相同模版的ACAD,开始在两个CAD界面,画同一条,起点、终点、标高,图 ...

块名同文件名,有个死循环,所以不能插入。
楼主最终想实现什么功能?是想保存些数据,在另外图中用?
发表于 2023-4-18 17:17:38 | 显示全部楼层
你好  请问那个批量加载手绘签名的lisp的插件  能发我一个吗 最近项目中急需,图框太多 了谢谢   851059933@qq.com  万分感谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-16 15:23 , Processed in 0.212457 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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