AutoCAD扩展图元数据在地籍测量中应用.docVIP

AutoCAD扩展图元数据在地籍测量中应用.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
AutoCAD扩展图元数据在地籍测量中应用

AutoCAD扩展图元数据在地籍测量中应用   摘要: 本文对AutoCAD中扩展图元数据(XDATA)的数据格式进行了详细分析,介绍了扩展图元数据在AutoCAD中添加、访问和使用的方法,讨论了扩展数据在地籍测量中的具体应用,对从事地籍测量工作的技术人员有一定的借鉴作用。 关键词: 图元;扩展数据;地籍测量 中图分类号:P209 文献标识码:A 文章编号:1006-4311(2014)07-0202-03 0 引言 AutoCAD有强大的图形编辑功能,在测绘领域有着广泛的应用,目前国内流行的几种测图软件系统,像南方CASS软件、广州开思,都是以AutoCAD为平台进行二次开发,而CASS软件在国内各个测绘单位占了很大的使用比率,其图形要素的属性,以扩展属性的方式存放在图元上。 AutoCAD的基本图形类型有以下几种:单行文本(Text)、多行文本(MText)、直线(Line)、圆(Circle)、圆弧(Arc)、多段线(PolyLine)、点(Point)、块参照(Insert),其中多段线又分为轻量多段线及二维多段线两种,后者又可分为无拟合、二次拟合、三次拟合等几种形式。 在AutoCAD数据文件中,只是记录着表示图形元素的几何位置、形状、大小的几何坐标和表示图形元素性质(如颜色、层号等)的辅助数据。采用扩展属性,在相应的图元上添加扩展数据,可以拓展AutoCAD在专业方面的应用,使其具有一定的GIS功能。 1 扩展图元数据 AutoCAD的DWG文件,图形对象并不直接存贮属性数据,相反,对属性数据的存贮是通过图形的扩展数据XDATA来实现,利用XDATA设计变量,然后将属性数据赋给这些变量来完成。AutoCAD没有提供相应的菜单命令来直接操作XDATA,要读写属性数据,借助该平台的二次开发,选择一种开发语言:Lisp/Visual Lisp、VBA/VB或C++编写代码来读写这些属性数据。如果图元包括扩展数据,则扩展数据将放在普通定义数据之后。利用扩展图元数据,用户能将用户定义数据添加到任何AutoCAD图元中。 1.1 扩展图元数据码 扩展数据是由 AutoLISP 或 ObjectARX应用程序创建的。如果图元包括扩展数据,则扩展数据将跟在普通定义数据之后。从 1000 到 1071 的组码用来描述扩展数据。 组码 1001 表示扩展数据的开始。与普通图元组码相比,在扩展数据中相同的组码可以出现多次,而且次序非常重要。 扩展数据按照已注册的应用程序名称编组。每一个注册应用程序的组都从组码 1001 开始,其组值为表示应用程序名称的字符串。注册应用程序名称符合 APPID 符号表条目。 如果需要,应用程序可以使用多个 APPID 名称。APPID 名称是永久性的,尽管那些在图形中非当前使用的 APPID 名称将被清理。每个 APPID 名称可以拥有一个附着到每个对象上的数据组。在应用程序的组码中,扩展数据组的序列及其含意由应用程序定义。 扩展数据组码的说明如表1。 1.2 添加扩展图元数据 在为一个图元添加XDATA之前,AutoCAD需要注册应用名。因为一个图形可以为许多不同的应用程序引用。一个应用程序必须将其数据与别的应用程序分开,唯一应用程序识别名(APPID)用于完成这种功能。注册应用程序名之后,可用APPEND函数把扩展图元数据添加到原图元数据表后。下面的代码示例基于ObjectARX2008及VC++2005。 完成添加扩展数据的功能。 void addXdata(CString appName,CString resString,ads_name en) { AcDbObject* pObj; AcDbObjectId ObjectId; acdbGetObjectId(ObjectId,en); acdbOpenAcDbObject(pObj,ObjectId,AcDb::kForWrite); struct resbuf *pRb, *pTemp; pRb = pObj-xData(appName); if(pRb != NULL){ for (pTemp = pRb; pTemp-rbnext != NULL; pTemp = pTemp-rbnext) { ; } } else { acdbRegApp(appName); pRb = acutNewRb(AcDb::kDxfRegAppName); pTemp = pRb; pTemp-resval.rstring=(ACHAR*)malloc((w

文档评论(0)

linsspace + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档