明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2414|回复: 7

那位能说一下指针和ID号句柄保存时的有效效性以及唯一性

[复制链接]
发表于 2004-8-19 11:08:00 | 显示全部楼层 |阅读模式
ID号和指针在AutoCAD多文档中,如何区别不同文档中的ID号,以及指针还有句柄等


他们的相互关系如何?
发表于 2004-8-26 09:30:00 | 显示全部楼层
ID号在一个打开的进程中是唯一的,指针只能指向一个特定的对象,句柄则对于某一个图形数据库是唯一的。也就是说如果在一个AutoCAD进程中打开了三个图形,则每个对象的ID号都是唯一的,但是下一次再打开这三个图形时同一对象的ID号与上次工作就不同了,因为ID号并不保存;句柄则在两次工作前后是一致的,但是两个图形中可能会有重复的句柄。 三者之间可以相互转换。 acdbGetObjectId adsname 到ID acdbGetAdsName ID到adsname acdbOpenObject ID到指针 AcDbObjectId::handle ID到handle 只记得这么多了,请大家补充一下,然后我再整理。
 楼主| 发表于 2004-8-26 13:11:00 | 显示全部楼层
谢谢,我问这个问题是因为想保存AutocAD中的图形,利用数据库和AutoCAD文件结合起来,保存。否则如果单纯用程序保存一条多义线的话,通过保存顶点的方法,太过于麻烦,而且失去了多义线的功能,
 楼主| 发表于 2004-8-26 13:13:00 | 显示全部楼层
现在通过保存ID好的方法好像不可以,但是不知道通过句柄是否可以。也就是每次打开都一样??
发表于 2004-8-26 22:20:00 | 显示全部楼层
没错,用句柄和文件名称可以单独确定一个实体。
发表于 2004-8-28 17:41:00 | 显示全部楼层
AcDbObject::database()可以得到该实体的AcDbDatabase指针,接下来可以得到对应的DWG文件名...
 楼主| 发表于 2004-8-29 10:57:00 | 显示全部楼层
谢谢各位:还有一个问题就是。文件名和句柄结合来辨别一个实体。在程序中往往是利用扩展数据的办法,来实现区别不同实体,如果能把句柄和扩展数据相互之间实现映射的话,就好多了,
发表于 2011-10-23 21:53:00 | 显示全部楼层
ID号不保存,同一个图形每次打开ID号一般都不相同,但是不同对象的ID均是唯一的;
句柄关闭时会保存,同一个图形对象再次打开时句柄不变,但是同一图形对象在不同数据库中可能不唯一,因为句柄仅在针对在当前图形数据库中的图形对象是唯一的;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 10:09 , Processed in 0.186558 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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