检查点线矛盾.docx

上传人:re****.1 文档编号:547953160 上传时间:2022-12-22 格式:DOCX 页数:20 大小:28.70KB
返回 下载 相关 举报
检查点线矛盾.docx_第1页
第1页 / 共20页
检查点线矛盾.docx_第2页
第2页 / 共20页
检查点线矛盾.docx_第3页
第3页 / 共20页
检查点线矛盾.docx_第4页
第4页 / 共20页
检查点线矛盾.docx_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《检查点线矛盾.docx》由会员分享,可在线阅读,更多相关《检查点线矛盾.docx(20页珍藏版)》请在金锄头文库上搜索。

1、检查点线矛盾一种基于AutoCAD平台高程值检查功能的开发李林刚侯海生(广西第二测绘院广西柳州545006)【摘要】数字化地形图测量的生产中,高程值的质量好坏,直接关系到地形图产品的质量。而高程值的检查,对于有效地进行地貌要素的质量监测,提高数字化生产的效率与可靠性具有重要的意义。因AutoCAD有良好的二次开发功能,可以实现对某些特殊功能的补充。本文通过对数字化生产流程的分析,给出了高程赋值的一种检查方法,在此与各位探讨。【关键字】数据高程点质量检查质量控制AutoCAD1 数据来源数字化地形图数据的来源一般有下面几种方法,一是全野外数据采集:利用全站仪进行野外碎部点数据采集,采用相关软件编

2、辑成图;二是航片数据采集:以航空相片作数据源,在解析测图仪、立体量测仪或数字摄影测量系统采集地形特征点编辑成图;三是底图数据采集:以旧的地形图为底图,进行矢量数字化。数字化地形图相对于传统的纸质地形图来说,它存在着很多的优点,因此,经过多年来的数字化地形图生产,笔者通过对数字化地形图图形属性数据的分析,基于AutoCAD平台开发了一个可以自动检查等高线赋值的程序,使之代替传统的在图纸上判断的方法,从而提高生产效率,在生产中发挥了一定的作用。在介绍程序之前,下面先简单提一下全野外数字化测图的生产作业流程。2 全野外数字化地形图内业处理生产工艺流程以全野外数据采集数字化为例,简单介绍数字化内业处理

3、生产工艺流程,全野外数字化地形图内业处理生产工艺流程见图1:图1 全野外数字化地形图内业处理工艺流程图3 数字线划图的高程属性在制图过程中,赋高程属性非常重要。就目前的制图方法,赋高程属性有两种方法,一是根据野外采集的数据在编辑过程中自动赋高程属性,另一种是用手工给赋高程属性。不论是采用何种方法,其原始数据的准确性是非常重要的。全野外数字化测量中,仪器高、目标高是数据正确性的关键,因此要保证高程属性的正确性,必须严把这一关。手工赋高程属性是比较容易出错的一种方法,因为人长期在大量的数据面前重复一种工作,很容易造成习惯性的动作,这就给出错留下了可乘之机。对于检查以上两种方法制图的高程值,是完全采

4、用人工分析的方法来判断是否有错,工作量较大,且不一定能够完全消除错误。因此,在数字化制图过程中,采用程序检查高程值属性是否正确就显得有必要性,这一过程的实施对于提高工作的生产效率、数据质量都有着重要的意义。4 程序功能原理在AutoCAD平台下,南方测绘仪器公司开发了CASS5.0地形地籍成图软件,下面就在该环境下编辑地形图简单说明该程序的原理。在CASS5.0环境下,展绘的高程点以点注记为单位,赋有高程属性,绘制的等高线也赋有高程属性。根据这一点,可以以高程点为基点,在一定范围内查找赋有高程属性的等高线和地物点,检查其高程值是否正确。为了整体控制质量,可以在程序中加入控制点检查,把控制点也作

5、为一个高程值来检查。如果高程点和等高线有矛盾,则利用程序在图上标记出来,然后以人机交互形式对问题点、线进行判断、修改,以提高成图质量。因绘制地形图是一个非常复杂的过程,在此仅能做到半智能化,即查找问题由程序完成,而解决问题由人为判断、修改。5 开发技巧5.1 编程基础LISP语言是在20世纪50年代末期诞生的一种编程语言,最初被设计用在人工智能(AI)应用程序中,今天该语言仍然是人工智能应用程序的基础。LISP语言是唯一适合于进行CAD项目开发的非结构化设计语言。20世纪80年代中期,AutoCAD在其2.1版本中引入了LISP作为二次开发AutoCAD的编程语言,并基于LISP语言的发展形成

6、了一套自己的应用程序接口语言AutoLISP,该编程语言可以用来扩展AutoCAD功能、定制AutoCAD和在AutoCAD 上做二次开发。LISP语言一个最突出的特点就是提供强大的函数调用功能。5.2 高程赋值检查程序分析高程赋值的检查是利用高程点注记的属性,提取高程点注记的值作为高程点的Z值,在设定范围内与相邻两条等高线的高程值做比较,根据图幅等高距判断该点是否与该相邻的两条等高线相符,如果不相符,则作出标记,再利用人工判断问题的症结所在,解决矛盾。下面就该程序的编制做简单介绍。程序编程思路及检查过程如下:(1)打开等高线和高程点图层(defun c:dgx-dxmd()(commandl

7、ayer on dgx thaw dgx )(commandlayeron gcd thaw gcd )(2)选择需要检查等高线点线矛盾的范围线,并从范围线内找出所有的高程点:(prompt选择需要检查等高线点线矛盾的范围线,若还没有范围线,要先绘出。n)(setq entdgx (ssget cp list-p (0 . *POLYLINE)(8 . dgx)(3)输入其他检查参数(setq dis-dgx (getrealn输入允许的两等高线间距(setq dgj (getreal n输入等高距其中输入允许的两等高线间距的目的是为了提高检查速度,针对每幅图的不一致解性,在程序中设定屏幕输入

8、两条等高线的最大间距。(4)逐一通过数据获取每一个高程点高程值并搜索出高程点理论上存在的邻近等高线及等高线的高程值:(write-linen正在检查范围线内的等高线是否有点线矛盾)(Setq ent-long (sslength ent)(Setq ent-n 0 n-error 0)(repeat ent-LONG)(setq ty (ssname ent ent-n)(c:getgc-minmax);获取高程点附近的理论上存在的两根等高线高程gc-min , gc-max(defun c:getgc-minmax()(5)通过高程点的高程值、及高程点到等高线的距离与等高线的高程值的比较判断

9、是存在点线点线矛盾,并在存在问题的高程点上作出标记,提醒作业者进行修改:;检查高程点的点线矛盾cha-dxmd(defun c:cha-dxmd()(if(NOT (and (OR (equal gc-dgx1 gc-min wc-dgx)(equal gc-dgx1 gc-max wc-dgx)(OR (equal gc-dgx2 gc-min wc-dgx)(equal gc-dgx2 gc-max wc-dgx)(progn(commandcircle p-point 5)(setq n-error (1+ n-error)(6)通过窗口输出存在的错误个数,检查完成。程序运行步骤如下:1

10、、加载程序,把编辑好的程序dgx-dxmd.lsp拷贝在CAD默认的路径下,启动CASS5.0程序,打开要检查的地形图,在命令行加载程序(laod“dgx-dxmd.lsp”);2、输入执行命令dgx-dxmd,出现命令行:选择需要检查等高线点线矛盾的范围线,3、输入两等高线间距:4、输入等高距:5、程序开始自动检查,根据图形复杂程度,几分钟后检查完成;6、输出对话提示框1或对话提示框2,作业员再根据对话提示框和图面上的注记作出修改决定。图2 对话提示框1 图3 对话提示框26 效果分析根据上述的设计与分析,笔者编制高程赋值检查程序。并且应用在1:500与1:1000大比例尺地形图全野外数字化

11、测量的生产过程当中。通过该程序的运用,大大解决了人工操作检查不易发现的问题,提高了质量。(1)漏等高线,如图4,在84.60与86.0之间还有一条85米等高线,在图上以error图层绘圆标记出。(2)高程点异常,如图5,该高程点检查可能存在错误,但经过人为分析判断,其为特殊高程点,可以不对其做处理。(3)点线矛盾,如图6(等高距为1米,高程点Z值为155.6米,经检查该高程点与记曲线90米存在点线矛盾。图4 漏等高线图5 高程点异常图6 点线矛盾以上各图在有问题的地方用圆作了标记,根据标记在用人工的方法判断该处的问题出在何处,决定是否问题真的存在,以便作出修改。7 结束语利用地貌的基本原理,在

12、CASS5.0下高程点注记和等高线的绘制是有属性的这一特征,作为该程序开发的基本思路。本程序经过测试成功应用于各测区数字化的生产,并在本作业单位内部成功推广。软件效率高,运行速度快,差错率小,使用简便,特别是对于地形较坡度较大、等高线较密集的山地等地形图有作更加明显的较果,从而解决了数字化地形图生产检查难的问题,提高了生产效率和产品质量。当然程序也存在不少待改善之处,请各位专家多提意见。【参考文献】1 李志林朱庆数字高程模型.武汉测绘科技大学,2000年2 唐博.AutoCAD2002/200 Visusl LISP开发指南,2001年AutoCAD是目前微机上应用最为广泛的通用交互式计算机辅

13、助绘图与设计软件包。AutoCAD的强大生命力在于它的通用性、多种工业标准和开放的体系结构。其通用性使得它在机械、电子、航空、船舶、建筑、服装等领域得到了极为广泛的应用。但是,不同的行业标准使得各领域在使用AutoCAD的过程中均需根据自身特点进行定制或开发。Autodesk 公司为满足广大用户的需求,自AutoCAD v2.18版至AutoCAD 2000的短短十几年间,就相继推出了三代二次开发工具,如图1所示。可以说,AutoCAD的通用性为其二次开发提供了必要条件,而AutoCAD开放的体系结构则使其二次开发成为可能。图1 AutoCAD二次开发工具的演变下面对AutoCAD的三代开发工

14、具进行浅析。一、第一代开发工具AutoLISPAutoLISP是1986年随AutoCAD v2.18提供的二次开发工具。它是一种人工智能语言,是嵌入AutoCAD内部的COMMON LISP的一个子集。在AutoCAD的二次开发工具中,它是唯一的一种解释型语言。使用AutoLISP可直接调用几乎所有的AutoCAD命令。AutoLISP语言最典型的应用之一是实现参数化绘图程序设计,包括尺寸驱动程序和鼠标拖动程序等。另一个典型应用就是驱动AutoCAD提供PDB模块构成DCL(Dialog Control Language)文件,创建自己的对话框。AutoLISP具有以下优点:(1)语言规则十

15、分简单,易学易用;(2)直接针对AutoCAD,易于交互;(3)解释执行,立竿见影。AutoLISP的缺点是:(1)功能单一,综合处理能力差;(2)解释执行,程序运行速度慢;(3)缺乏很好的保护机制,源程序保密性差;(4)LISP用表来描述一切,并不能很好地反映现实世界和过程,跟人的思维方式也不一致;(5)不能直接访问硬件设备、进行二进制文件的读写。AutoLISP的这些特点,使其仅适合于有能力的终端用户完成一些自己的开发任务。二、第二代开发工具ADSADS(AutoCAD Development System)是AutoCAD R11开始支持的一种基于C语言的灵活的开发环境。ADS可直接利用用户熟悉的C编译器,将应用程序编译成可执行文件后在AutoCAD环境下运行,从而既利用了AutoCAD环境的强大功能,又利用了C语言的结构化编程、运行效率高的优势。与AutoLISP 相比,ADS优越之处在于:(1)具备错综复杂的大规模处理能力;(2)编译成机器代码后执行速度快;(3)编译时可以检查出程序设计语言的逻辑错误;(4)程序源代码的可读性好于AutoLISP。而其不便之处在于:(1)C语言比LISP语言难于掌握和熟练应用;(2)ADS程序的隐藏错误往往导致AutoC

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号