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((wcslen(appName)+1)*sizeof(ACHAR));

_tcscpy(pTemp->resval.rstring,appName);

}

pTemp->rbnext 等于 acutNewRb(AcDb::kDxfXdAscii

String);

pTemp 等于 pTemp->rbnext;

pTemp->resval.rstring等于(ACHAR*)malloc((wcslen(resString)+1)*sizeof(ACHAR));

_tcscpy(pTemp->resval.rstring,resString);

pObj->upgradeOpen(); pObj->setXData(pRb);

pObj->close();

acutRelRb(pRb);

}

1.3 访问扩展图元数据 访问扩展图元数据时,必须提供应用程序名,下面的代码展示如何获得扩展数据及如何删除扩展数据.

获取图元ent上扩展名为appName的扩展数据,存入csXdata中

void Get_Xdata(ads_name ent,CString appName,CStringArray &csXdata)

{

struct resbuf *eb1等于NULL,*eb2等于NULL,*apps等于NULL;

CString xData;

apps等于acutBuildList(RTSTR,appName,0);

eb1等于acdbEntGetX(ent,apps);

for(eb2等于eb1;eb2!等于NULL;eb2等于eb2->rbnext) {

if(eb2->restype等于等于1000) {

_tcscpy(xData.GetBuffer(1000),eb2->resval.rstr

ing);

xData.ReleaseBuffer();

csXdata.Add(xData);

}

}//for

acutRelRb(apps);

acutRelRb(eb1);

return;

}

删除图元ent上扩展名为appName的扩展数据

int delXdata(ads_name ent,CString appName)

{

struct resbuf *entbuf,*pbuf1,*pbuf2;

TCHAR sbuf[20];

entbuf等于acdbEntGet(ent);

pbuf1等于acutNewRb(-3);

pbuf2等于acutNewRb(1001);

_tcscpy(sbuf,appName.GetBuffer(20));

appName.ReleaseBuffer();

pbuf2->resval.rstring等于sbuf;

pbuf2->rbnext等于NULL;

pbuf1->rbnext等于pbuf2;

entbuf->rbnext等于pbuf1;

acdbEntMod(entbuf);

return RTNORM;

}

2.扩展图元数据的应用

AutoCAD的图层组织较为自由,不同类型的几何实体可以放在同一层中,可以设置不同的颜色.

在DWG文件中,图形对象并不直接存贮属性数据,相反,对属性数据的存贮是通过图形的扩展数据XDATA来实现,利用XDATA设计变量,然后将属性数据赋给这些变量来完成. AutoCAD没有提供相应的菜单命令来直接操作XDATA,要读写属性数据,借助该平台的二次开发,选择一种开发语言:Lisp/Visual Lisp、VBA/VB或C++编写代码来读写这些属性数据.

利用扩展图元数据,可以实现图形数据与属性数据的连接,从而可以实现信息的管理、查询、分析等功能,弥补CAD系统在属性管理方面功能相对较弱的不足.


在地籍测量的内业工作中,需要将采集到的界址点信息以及宗地信息录入计算机进行处理,根据作业要求,一般将地籍数据分为界址点、界址线及宗地三类,依照具体调查要求,将三种不同数据建立数据库,将数据录入其中,进行处理.

界址点主要属性有点号、X坐标、Y坐标等信息,界址线属性包括街坊号、起点点号、终点点号、左宗地号、右宗地号等内容,宗地属性包含街坊号、宗地号、单位性质等权属调查的详细信息,通过界址线表的界址点点号及宗地号,将界址点表和宗地属性表有机的结合起来.

界址线的数据格式的设计采用双重独立式地图编码法(DIME),这种结构是由美国人口统计局用于进行人口普查分析和制图,对于宗地、界址边以及它们邻接关系的检索都很容易.

界址线表是整个数据库系统的关键,它是连接界址点表及宗地属性表的纽带,界址线表是根据双重独立式地图编码法(DIME)来设计的,其原理是,在二维平面上,多边形的任意一条边都只能被两个并且最多被两个多边形共用,因此,对于宗地的界址边来说,某一条界址边只可能属于相邻的两宗地,或只属于某一宗地,其主要字段有“街坊号”、“起点点号”、“终点点号”、“宗地号1”、“宗地号2”、“备注”、“错误内容”这几项,其中“起点点号”和“终点点号”与界址点表中的点号相关联,“宗地号1”和“宗地号2”与属性表中的街坊号相对应.

在生成地籍图的时候,以字段名为扩展属性的应用程序名,字段值为扩展属性值,通过应用程序名,可以读取界址点、界址线的属性信息,这样就使图元和属性结合在一起.通过操作图形的扩展数据,能够自动生成街坊宗地图,自动计算宗地面积,进行宗地边长、宗地地类号、宗地面积的自动注记,并且由宗地图多边形范围,自动判断该宗地图的幅面大小及比例尺,实现宗地图的自动裁剪,而不需要人工干预.

3.结束语

本文探讨了AutoCAD中扩展图元数据格式,采用代码示例的方式,介绍了扩展图元数据的添加、访问和删除方式,讨论了扩展数据在地籍测量内业中的具体应用,提出了一种应用扩展数据进行地籍测量内业数据处理的方法,对于地籍测量内业工作有一定的借鉴意义.

类似论文

分布式文件系统中元数据操作的优化

摘 要:分析了PVFS2中的元数据操作流程,以remove操作为例,通过测试发现其瓶颈之处,提出一种将判断过程放置到服务。
更新日期:2024-1-2 浏览量:8590 点赞量:3738

基于元数据仓储的数字资源整合与实践

〔摘 要〕数字资源整合是现阶段图书馆发展的必然趋势 笔者根据所在单位开展数字资源整合平台的建设经验, 介绍了国内外有代表性的资源整合。
更新日期:2024-4-1 浏览量:12581 点赞量:4674

视频元数据在服装方面的应用

摘 要 :近几年以来,随着我国图书馆数字化与信息化工程建设不断的深入与发展,视频资源数字化也逐渐的被抬上研发的台。
更新日期:2024-8-1 浏览量:16012 点赞量:4929

2000—2023年我国电子文件管理元数据综述

摘 要 :本文通过文献分析法,对2000——2011年我国有关电子文件管理元数据的论文进行分析总结,以进一步了解我国电子文。
更新日期:2024-10-15 浏览量:132566 点赞量:29117

图书馆信息管理中元数据的应用

[摘 要]随着信息技术的不断发展,元数据的应用也越来越广泛,其在图书馆信息管理中也发挥越来越大的作用,很。
更新日期:2024-2-21 浏览量:33472 点赞量:8552

元数据标准MODS的应用

【摘 要】本文论述了元数据标准MODS的内涵、特点及其使用的基本原则,介绍了国外MODS近期应用的一些项目 【关 键 词 】元数据;MODS。
更新日期:2024-2-6 浏览量:7654 点赞量:2762

地籍测量中数字化测图的特点应用

随着国家城镇建设步伐的加快,以及国民经济的快速增长,土地的综合价值急剧提高,各地对城镇地籍图的需求及可靠性的。
更新日期:2024-8-3 浏览量:16945 点赞量:5324