细部点点号的处理方法.doc_第1页
细部点点号的处理方法.doc_第2页
细部点点号的处理方法.doc_第3页
细部点点号的处理方法.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

大比例尺地形图数字化测量中野外实测点点号的处理方法摘 要 本文对大比例尺地形图数字化测量中如何在计算机辅助设计软件AutoCAD中处理野外实测点的方法进行探讨,并提供在AutoCAD中的开发方法。关键词 实测点 AutoCAD AutoLisp 组码表 扩展组码表0 在测绘行业中,随着计算机的发展,大比例尺地形图的测绘已基本采用了数字测量方法,除电子平板和掌上电脑配合全站仪的方法外,最常用的方法就是利用全站仪野外采集数据,然后根据野外绘制的草图在计算机上进行内业编辑。目前很多测绘单位普遍采用这种方法,然后在内业编辑时使用AutoDesk公司的计算机辅助设计软件进行处理。这种方法的作业程序一般是这样:利用全站仪野外采集实测点数据,并在野外绘制草图,然后把全站仪的数据传输到计算机内,并对数据进行编辑,生成正确的实测点坐标文件,再利用坐标文件在AutoCAD内生成实测点图形文件,利用这个图形文件和野外绘制的草图在计算机内编辑成图,并形成最终的数字化地形图;另一种方法是利用实测点坐标文件和与实测点坐标文件对应的编码文件直接生成图形文件,然后再编辑成图。这里有一个必须要解决的问题是在AutoCAD中如何处理实测点,所有基于AutoCAD进行的二次开发也必须解决这个问题。1 在AutoCAD中如何处理实测点符号,可以有以下几种方法:野外采集的实测点在AutoCAD中可以以块(block)的形式存在,在生成实测点图形文件的同时,每个实测点的流水号必须同时生成,流水号应该是文本(text),并且与每个实测点(block)相关联,这可以有多种方法实现,如把流水号做为block的属性,或按照实测点坐标单独生成流水号文本等,但各有优点和缺点。有些单位要求最终的数字化地形图中保留野外实测点符号,但其流水号则不保留,这时把流水号做为实测点的属性显然是不合适的,虽然可以通过设置AutoCAD的系统变量来关闭其属性,使地形图中不显示流水号,然而只要打开属性设置这些流水号依然存在,利用这种方法就不符合要求了。把流水号按实测点坐标生成临时文本,完成图形编辑后再把临时文本删除,这是比较常见的做法,但这种方法的缺点是如果在编辑过程中误操作把某些流水号删除了,则查找其对应的实测点的序号就比较困难,使用起来不方便。本文介绍另外一种方法,这种方法保证无论何时都可以查询实测点的流水号,而其流水号又不存在于图形数据中。一般来说,对由野外实测点坐标文件生成AutoCAD图形文件这一过程的处理,已经有很多比较成熟的软件解决这一问题,但这些软件通常不能满足有特殊要求的用户,这就要求我们改善或独立开发这类软件。在AutoCAD二次开发中比较常用的是AutoLisp语言,本文介绍的程序是在AutoCAD R14环境下用AutoLisp语言开发的一个软件,由于源程序比较长,本文只介绍其中一部分,也就是解决流水号问题的关键技术。程序代码如下: (command _.insert SCD pt 1 1 0) (setq ent (entget (entlast) (setq exdata (cons 1000 no) (setq exdata (list POINTNUM exdata (cons 1071 3) (setq exdata (list -3 exdata) exdata (list exdata) (setq ent (append ent exdata) (entmod ent)在上面的代码中,“SCD”是AutoCAD中野外实测点符号的块名;pt、no、ent、exdata均为变量,pt为一实测点坐标,no为一实测点流水号,这两个变量的内容可以从野外实测点坐标文件中获得;ent变量内容是代表实测点符号的块的组码表;exdata是以关键字“POINTNUM”开始的扩展组码表。上述代码的作用是这样的:从坐标文件中读入一个实测点数据,把其坐标赋值给pt,把其流水号赋值给no(这是前提,上面没有给出代码),然后用AutoCAD内部命令insert把代表实测点且块名为SCD的符号按坐标pt的位置插入图形中,ent变量记录刚生成的符号的组码,接下来为变量exdata赋值,起内容是一组扩展数据,其中点对(1000 . no)记录实测点的流水号,点对(1071 . 3)记录实测点的流水号生成后显示的颜色,“POINTNUM”是扩展数据的关键字,然后把扩展组码添加到ent中,并更新该组码表。这样,每生成一个实测点符号,该符号的组码表中都记录了该实测点的流水号,并且不会显示在图形文件中。按以上的方法虽然记录了实测点的流水号,但如何使用呢?一种方法是在生成实测点符号的同时,把流水号按文本注记的形式直接在图形中生成,并把该文本放在临时层中,用完后直接删除;另一种方法就是本文要介绍的查询功能,也就是把实测点的流水号提取出来,提取流水号的程序代码如下:(defun c:CDH( / point ent pt no color) (setq point (car (entsel) (setq ent (entget point (list POINTNUM) (setq pt (cdr (assoc 10 ent) (setq ent (assoc -3 ent) (setvar clayer 0) (setq no (cdr (cadadr ent) (setq color (cadr ent) color (cdaddr color) (setq color (rtos color 2 0) (setvar cecolor color) (command _.text pt 0.6 0 no) (princn) (princ)程序第一行设置在AutoCAD下运行的命令名为CDH,第二行提示用户选取实测点符号并将其实体名赋值给point变量;第三行将实体point的带有扩展数据的组码表赋值给变量ent,第四行从组码表中提取实测点的坐标并赋值给变量pt,第五行将扩展组码表赋值给ent,第七行从扩展组码表中提取流水号并赋值给变量no,第八、九行从扩展组码表中提取生成流水号文本的颜色并赋值给变量color,第六、十行设置当前层为0层,颜色号为color,第十一行生成流水号文本,至此程序

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论