autocad扩展图元数据在地籍测量中应用

autocad扩展图元数据在地籍测量中应用

ID:5597383

大小:32.00 KB

页数:10页

时间:2017-12-19

autocad扩展图元数据在地籍测量中应用_第1页
autocad扩展图元数据在地籍测量中应用_第2页
autocad扩展图元数据在地籍测量中应用_第3页
autocad扩展图元数据在地籍测量中应用_第4页
autocad扩展图元数据在地籍测量中应用_第5页
资源描述:

《autocad扩展图元数据在地籍测量中应用》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、AutoCAD扩展图元数据在地籍测量中应用  摘要:本文对AutoCAD中扩展图元数据(XDATA)的数据格式进行了详细分析,介绍了扩展图元数据在AutoCAD中添加、访问和使用的方法,讨论了扩展数据在地籍测量中的具体应用,对从事地籍测量工作的技术人员有一定的借鉴作用。关键词:图元;扩展数据;地籍测量中图分类号:P209文献标识码:A文章编号:1006-4311(2014)07-0202-030引言AutoCAD有强大的图形编辑功能,在测绘领域有着广泛的应用,目前国内流行的几种测图软件系统,像南方CASS软件、广州开思

2、,都是以AutoCAD为平台进行二次开发,而CASS软件在国内各个测绘单位占了很大的使用比率,其图形要素的属性,以扩展属性的方式存放在图元上。AutoCAD的基本图形类型有以下几种:单行文本(Text)、多行文本(MText)、直线(Line)、圆(Circle)、圆弧(Arc)、多段线(PolyLine)、点(Point)、块参照(Insert),其中多段线又分为轻量多段线及二维多段线两种,后者又可分为无拟合、二次拟合、三次拟合等几种形式。10在AutoCAD数据文件中,只是记录着表示图形元素的几何位置、形状、大小的

3、几何坐标和表示图形元素性质(如颜色、层号等)的辅助数据。采用扩展属性,在相应的图元上添加扩展数据,可以拓展AutoCAD在专业方面的应用,使其具有一定的GIS功能。1扩展图元数据AutoCAD的DWG文件,图形对象并不直接存贮属性数据,相反,对属性数据的存贮是通过图形的扩展数据XDATA来实现,利用XDATA设计变量,然后将属性数据赋给这些变量来完成。AutoCAD没有提供相应的菜单命令来直接操作XDATA,要读写属性数据,借助该平台的二次开发,选择一种开发语言:Lisp/VisualLisp、VBA/VB或C++编写

4、代码来读写这些属性数据。如果图元包括扩展数据,则扩展数据将放在普通定义数据之后。利用扩展图元数据,用户能将用户定义数据添加到任何AutoCAD图元中。1.1扩展图元数据码扩展数据是由AutoLISP或ObjectARX应用程序创建的。如果图元包括扩展数据,则扩展数据将跟在普通定义数据之后。从1000到1071的组码用来描述扩展数据。组码1001表示扩展数据的开始。与普通图元组码相比,在扩展数据中相同的组码可以出现多次,而且次序非常重要。扩展数据按照已注册的应用程序名称编组。每一个注册应用程序的组都从组码100110开始

5、,其组值为表示应用程序名称的字符串。注册应用程序名称符合APPID符号表条目。如果需要,应用程序可以使用多个APPID名称。APPID名称是永久性的,尽管那些在图形中非当前使用的APPID名称将被清理。每个APPID名称可以拥有一个附着到每个对象上的数据组。在应用程序的组码中,扩展数据组的序列及其含意由应用程序定义。扩展数据组码的说明如表1。1.2添加扩展图元数据在为一个图元添加XDATA之前,AutoCAD需要注册应用名。因为一个图形可以为许多不同的应用程序引用。一个应用程序必须将其数据与别的应用程序分开,唯一应用程

6、序识别名(APPID)用于完成这种功能。注册应用程序名之后,可用APPEND函数把扩展图元数据添加到原图元数据表后。下面的代码示例基于ObjectARX2008及VC++2005。完成添加扩展数据的功能。voidaddXdata(CStringappName,CStringresString,ads_nameen){AcDbObject*pObj;AcDbObjectIdObjectId;acdbGetObjectId(ObjectId,en);10acdbOpenAcDbObject(pObj,ObjectId,Ac

7、Db::kForWrite);structresbuf*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((wcslen(appName)+1

8、)*sizeof(ACHAR));_tcscpy(pTemp->resval.rstring,appName);}pTemp->rbnext=acutNewRb(AcDb::kDxfXdAsciiString);pTemp=pTemp->rbnext;pTemp->resval.rstring=(ACHAR*)malloc((wc

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。