lisp自动生成界址点表_基于AutoCAD VBA增减挂钩报备坐标文件自动生成.doc

本文介绍了如何使用AutoCAD VBA进行二次开发,以自动生成增减挂钩报备坐标文件,提高了工作效率。通过选择用地线和岛,程序自动判断、提取坐标,计算面积,并确定图幅号,用户输入地块信息后,生成符合国土部门要求的坐标文件。
摘要由CSDN通过智能技术生成

基于AutoCAD VBA增减挂钩报备坐标文件自动生成

基于AutoCAD VBA增减挂钩报备坐标文件自动生成

摘要:生成增减挂钩报备坐标文件是一项非常繁琐的工作,会占用大量工作时间。如果利用VBA对AutoCAD进行二次开发,可以实现自动生成坐标文件,使工作效率得到极大提高。本文就如何实现这一目标给出了具体的解决方法,并对相应的程序代码做了简要介绍。该方法对相关生产单位来说有很大的实用价值和借鉴作用。

关键词:AutoCAD二次开发;报备坐标文件;图幅号;自动生成      中图分类号:{P286+.1} 文献标识码:A 文章编号:   一、概述   报备坐标数据文件是国土部门在城乡建设用地增减挂钩试点在线监管报备工作中的重要基础资料,它包含了地块的位置、形状、面积、用途、坐标数据的坐标系统等重要信息。为了能通过导入坐标交换文件方式导入地块坐标数据,必须先把勘测定界图中的用地界线的坐标导出,再加上必要信息,并按照国土部要求的格式,做成坐标交换文件。其模板如下:   [属性描述]   格式版本号=   数据产生单位=   数据产生日期=   坐标系=80国家大地坐标系   几度分带=3   投影类型=高斯克吕格   计量单位=米   带号=   精度=3   转换参数=0,0,0,0,0,0,0   [地块坐标]   界址点数,地块面积,地块编号,地块名称, 面(点、线),图幅号,地块用途,地类编码,@   点号,地块圈号,X坐标(纵),Y坐标(横)   ......   点号,地块圈号,X坐标(纵),Y坐标(横)   目前,AutoCAD或南方CASS等主流软件没有现成的功能实现自动生成报备坐标文件。通常情况下,我们在南方CASS中利用生成界址点成果表功能,生成Excel坐标表格。然后经复制、粘贴、排序,再粘贴到记事本中,把空格替换成逗号,然后在坐标前加上相对固定的坐标属性等若干行......最后保存为报备坐标文件。其操作过程很繁琐,且对每个地块操作流程都一样,无非就是要更改地块的界址点数、地块面积、地块名称、图幅号,坐标等。地块越多,重复劳动就越多,人力资源浪费的就越多,在非常注重办事效率的今天,这样的生产方式确实需要改变。如果可以编写出一个小程序,能实现在AutoCAD中只需选择用地???线(包括岛),再录入地块编号、地块名称、地块用途、地类编码就能自动生成我们要数据,这无疑会使我们的生产效率得到极大提高。   二、解决方法   AutoCAD是一个可以再次开放的软件平台,它允许用户根据需要开发适合自己的工具,二次开发工具可以选择Visual LISP、VBA、Visual C++等,对于非专业程序开发人员,VBA是个不错的选择,因为它简单易学,速度也还不错。由于生产的需要,本人结合自己工作中的具体情况,用AutoCAD VBA编写了一段程序,实现了在AutoCAD环境下自动生成报备坐标文件。下面就具体的解决方法做简要介绍。   (一)总体思路   按照先后选择界址线、岛(如果地块包含岛),为了保证生成数据的正确性,判断所选多段线是否闭合,是否有重复顶点,若多段线不闭合或有重复顶点,报错后退出,用户需要检查图形。如顺利通过选择,则按照圈号先后顺序提取所有圈上的所有顶点坐标,并按照模板格式赋给一个字符串变量,所有圈的顶点数相加,计算出界址点数,地块面积等于外圈面积减去岛的面积。   为了实现自动计算出地块所在的1:1万图幅号,要在运行该程序前把实际生产中涉及到得所有1:1万图幅四角坐标提取出来,保存在名为结合表.txt的文本文件上,图幅号和相应四角坐标数据按照下列方式存放,其中X、Y和AutoCAD坐标系一致:   图幅号1   X左上,Y左上,X右上,Y右上,X右下,Y右下,X左下,Y左下   ……   图幅号n   X左上,Y左上,X右上,Y右上,X右下,Y右下,X左下,Y左下   然后将该文件放在AutoCAD的support目录下。由地块的界址线(外围线)生成一地块面域,再根据support\结合表.txt中的图幅四角坐标数据,按顺序每次生成一图幅面域,地块面域减去图幅面域,若地块面域面积减少,则和该图幅相交。依次往后读取每一图幅四角坐标生成图幅面域,并用被减后的地块面域减去新的图幅面域,直到地块面域面积变为0或读完结合表.txt中所有数据,这样就能求出地块所在的图幅号。另外,由于地块编号、地块名称、地块用途、地类编码不能由程序自动生成,因此在这几个数据在设计的弹出窗口中手工输入。   最后,将上面获取的数据和一些固定不变的数据按照模板样式组合在一起,写入文本文件,这样就生成了报备坐标文件。   (二)程序主要流程及主要代码   1、提示用户选择地块范围线和岛,创建选择集   Set

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
软件介绍: 国土用地报备坐标转换器请使用section导出的txt格式或excel另存为的csv格式文件本程序根据国土资源部拐报备相关规定进行编写,目前版本只针对一个圈进行转换,后续请加入内圈及外圈进行完善。程序主要功能:1、坐标格式转换:支持txt格式及csv格式的坐标格式文件2、拐坐标CAD成图:可将拐坐标转换成CAD图形,分 X,Y 及 Y,X 两种形式3、导出excel格式拐坐标表(非CASS格式)本程序完全免费,在使用过程中,遇到问题可与作者联系或熟悉人员,反馈问题或获得技术支持使用方法以常用格式进行说明,主要从mapgis、AutoCAD、ArcGIS(苍穹软件)、excel格式进行说明。一、mapgis wl线文件转换步骤:1、连接范围线成一个完全闭合的圈(技巧可以将显示首尾打开再进行连接)。2、运行section,打开范围线文件(或直接打开mapgis工程文件,将线文件设置为编辑状态),击1辅助工具-导入导出功能-导出线拐坐标(TXT),并保存拐坐标。此处需注意的是,请留意section程序下方状态栏,实际坐标(X与Y调换后)与图面坐标是否一致,如不一致请击比例尺设置成1000或0,如实际坐标处显示为“请先设置比例尺”,则此时比例尺为0,无需进行设置。3、运行拐坐标转换程序,击打开按钮,导入txt文本文件,并设置好相应参数。序号位数参数:如设置成3则格式为J001,如不填或为0时为J1,需注意的是如您个数超过1000,则此处应至少填4或不填否则程序将提示位数溢出,重新设置再转换即可。4、转换完后可进行CAD成图及导出excel格式拐坐标表(页面已进行设置可直接打印,别忘了填写项目名称)。二、AutoCAD文件转换步骤:1、另存CAD文件为dxf(2000或R12)文件2、运行mapgis-图形处理-文件转换-输入-装入DXF-将范围线图层保留,其他层可选择不进行转换。3、装入dxf后,文件-保存线,以保存范围线,后面步骤同“一mapgis wl线文件转换”三、ArcGIS(苍穹软件)文件转换步骤:同AutoCAD转换,装入文件时选装入SHAPE文件即可。四、excel文件转换步骤:1、保证excel内表格内第二列与第三列为坐标值,第一列及后面列有无数据不影响。同时所有行(含首行)均需包含坐标值或为空行(空行时程序会自动跳过),切不可含文字或其他数据,否则转换时程序会认为此处为0或相应的数值。2、将excel另存为csv格式文件,再进行转换即可! 五、txt文件转换步骤:保证txt内容格式为“任意内容,坐标值,坐标值,,,……”,第一个逗号与第二个逗号后为坐标值即可,第一个数值、第四个及后面数据任何内容均可。此处需注意的是逗号必须为英文半角符!其他需说明的问题一、程序设置有最大边长自检值项,此处设置的目的是防止在转换过程中因不可预见因素导致坐标值出错,进行边长也计算出错,所以设置边长最大值进行检查。(经测试边长一般为50以下,一旦出错均为数位错误,出错时边长将达几万,故此处设置为200,亦可自定义)。二、本程序目前只针对一个圈范围线进行转换,后续将进行完善!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值