找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 829|回复: 0

[教学]:关于辞典里面如何存取数据和数据存储位置的原理...

[复制链接]

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-4-18 12:12:55 | 显示全部楼层 |阅读模式

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

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

×
ACAD核心数据库将数据存储在3个地方,
1.块表
    存储可见对象(实体)

2.除去块表的8套符号表
  层表、线形表、字型表、尺寸样式表、视表、视口表、应用程序名表、
UCS表
  这8套符号表特点是只能存储同一类型的对象。而且不能用ARX方法去修改每个表的记录,只能通过ACAD的命令如PURGE,WBLOCK等操作来修改。

3.命名对象辞典

  辞典和符号表的操作是一样的,但是和符号表的区别是:可以存储不同类型的对象,

  所以,我们在辞典里面可以存储任何类型的AcDbObject对象,如:AcDbLine、AcDbGroup、AcDbXRecord、甚至AcDbDictionary(辞典)。

  其中,AcDbXRecord对象是为了给ADS和LISP程序员存储大量数据准备的,它下面的数据是个resbuf链表,可以存储任何的DXF组吗的数据(注意,这里是数据,不是对象)。

  所以,我们要想在辞典里面保存我们应用程序需要的数据,只能建立AcDbXRecord类对象,通过在辞典建立KEY来区别不同的XRecord,然后建立RESBUF链表数据,把RESBUF数据和AcDbXRecord联系起来。

  因为辞典里面,除了XRecord是给我们存储基本的数据如整数、字符串、实体名、点的数据结构外,辞典要求存储的对象是AcDbObject类型,是对象,而那些数据如整数等不是对象,所以不能直接把这些基本数据存储到辞典里面,只能通过RESBUF存储到XRecord里。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-5 10:23 , Processed in 0.395675 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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