基于AUTOCAD二次开发实现不动产权籍调查分层平面图的批量出图

来源 :中国科技博览 | 被引量 : 0次 | 上传用户:moon_pine
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  [摘 要]本文以湖北省不动产确权调查登记工作为例,详细讲述了基于AUTOCAD-VBA开发分层平面图的批量出图的开发思路及方法。通过本文讲述的功能实现了分层平面图的自动出图,大大减少了内业工作量,并在保证质量的同时大大提高了实际工作的效率。
  [关键词]不动产权籍调查;分层平面图;点与多边形关系判定;AutoCAD二次开发
  中图分类号:D923.2 文献标识码:A 文章编号:1009-914X(2018)19-0399-02
  1 引言
  AUTOCAD是美国Autodesk公司于1982年生产的自动计算机辅助设计软件,用于二维绘图、详细绘图、文档设计、基本三维设计等。现已成为国际上广泛使用的绘图工具软件。Autocad具有良好的用户界面,通过交互菜单或命令行可以方便的实现各种操作。
  当前AUTOCAD的二次开发工具主要有:VisualLisp、VBA、ObjectARX和.net API等。其中VisualLISP与VBA较为简单,使用方便且开发速度快,这两种语言所提供的对象模型和外部端口基本能满足不动产权籍调查工作中扩展功能二次开发的需求。本文以VBA开发为例,结合AtoCAD用户环境,主要讲述程序的开发思路,开发难点解决方法,并给出核心代码。
  2 资料准备
  在制作分层平面图之前应根据外业测量及外业调查的成果以“权属清楚、界址清晰、面积准确”为原则,绘制详细、准确的地籍图,并进行图形检查。根据《地籍调查规程》,界址点间距应大于0.1米,界址线不能交叉,相邻宗地重叠的界址线应有相同的界址点。另外,为了程序能自动识别房屋用途,需要新建“房屋用途”图层,在该图层中根据调查成果注记各房屋的用途,如“主房”、“厨房”、“车库”、“其他”等。
  3 开发流程
  3.1 图框制作
  为了程序生成过程中可以重复使用图框,可以将图框绘制好后保存为DWG文件,在各宗地分层平面图生成过程中,分别将图框作为外部块插入进来。为了编程方便,图框文件中,最好将图框的左下角移动到原点(0,0)。
  3.2 选择成图范围
  利用AUTOCAD所提供的选择集可以方便的实现由用户选择成图范围。
  Dim ssR As AcadSelectionSet
  Set ssP = ThisDrawing.SelectionSets.Add("sSp")
  ThisDrawing.Utility.Prompt ("请选择成图范围:")
  ssP.SelectOnScreen
  prPt = vbCrLf & "指定插入图框左下角的位置: "
  startPnt = ThisDrawing.Utility.GetPoint(, prPt)‘用戶指定插入点
  3.3 判断房屋的结构、层数及用途
  新建另一个选择集SSR,用于以宗地为范围选择宗地内的房屋。
  SSR.SelectByPolygon acSelectionSetWindowPolygon, objPnt
  其中objPnt是权属线的顶点三维数组。这个选择集在生成完本宗地后应及时清空,避免产生多于图形。
  房屋层数及用途的判断原理基本相同,分别以单个房屋为范围,判断在SSR果中是否有数字“2”或“3”且在“JMD”图层中,并且在房屋内部,否则判断为1层;分别以单个房屋为范围,判断是否有“主房”、“车库”等文本在多边形内且在“房屋用途”图层中,可得出房屋用途;分别判断房屋范围内的房屋结构注记可以得到房屋的结构。新建三个实体数组,分别存放分层判断的结果,新建6个双精度参数用于存放各种用途的房屋的面积,新建一个字符串参数用于存放房屋结构。
  这里的房屋层数及用途的判读,其难点在于判断文本是否在房屋中,其实质是点与在多边形位置关系的判定。目前所采用的主要方法有射线法、极小圆法。相比之下极小圆法编程简单,但准确率不高,而且当数据量大的时候,运行缓慢,我们此处采用了射线法。射线法的原理是:抽象一条以目标点为起点向右的水平射线,当此射线与多边形交点个数为奇数个时,点在多边形内部。当然,要考虑点在多边形边上,多边存在水平边的情况。
  为编程的严密性,此处我们不仅判断了右射线,也判断了左射线。以AcadLWPolylin对象为例,判断点与多边形的位置关系(射线法)函数的核心代码如下():
  Public Function ptInLwp(ByVal objPl As AcadLWPolyline, ByRef pnt) As Integer
  ………
  For i = 0 To pCount - 1
  xJ = 0
  If pAr(i).Y = pAr(i + 1).Y Then
  xJ = 0
  Else
  xJ = pAr(i).X - (pAr(i).X - pAr(i + 1).X) / (pAr(i).Y - pAr(i + 1).Y) * (pAr(i).Y - pnt(0))
  End If
  If xJ < pnt(1) And gMax(pAr(i).Y, pAr(i + 1).Y) > pnt(0) And gMin(pAr(i).Y, pAr(i + 1).Y) < pnt(0) Then
  intLJD = intLJD + 1
  ElseIf xJ > pnt(1) And gMax(pAr(i).Y, pAr(i + 1).Y) > pnt(0) And gMin(pAr(i).Y, pAr(i + 1).Y) < pnt(0) Then   intRJD = intRJD + 1
  End If
  Next i
  If pAr(0).Y = pAr(pCount).Y Then
  xJ = 0
  Else
  xJ = pAr(0).X - (pAr(0).X - pAr(pCount).X) / (pAr(0).Y - pAr(pCount).Y) * (pAr(0).Y - pnt(0))
  End If
  If xJ < pnt(1) And gMax(pAr(0).Y, pAr(pCount).Y) > pnt(0) And gMin(pAr(0).Y, pAr(pCount).Y) < pnt(0) Then
  intLJD = intLJD + 1
  ElseIf xJ > pnt(1) And gMax(pAr(0).Y, pAr(pCount).Y) > pnt(0) And gMin(pAr(0).Y, pAr(pCount).Y) < pnt(0) Then
  intRJD = intRJD + 1
  End If
  If intLJD Mod 2 = 1 And intRJD Mod 2 = 1 Then
  ptInLwp = 1 '点在多边形内
  Else: ptInLwp = -1
  End If
  End Function
  此函数当点在多边形内部时返回1,点在多边形边上时返回0,在多边形外时返回-1。由于函数只进行了常规的数学计算,所以代码运行效率非常高,且准确率达到100%,且适用于任何凹凸多边形。
  3.4 绘制示意图并标记边长
  将3.3中判断的结果以各个数组中各实体元素的中心为基点,复制到图框相应位置,并标注实际边长。标记边长的原理是先计算边长与方位角,将插入的文本起点设置为边长中点向外偏移1米并向起点移动文本长度一半的位置,旋转角度设为方位角。由于不需要标注内部边长,对于二层及三层房屋实体数组中重叠边可不标注。
  3.5 填入面积数据
  按湖北省省厅发布的不动产权籍调查《实施细则》的相关规定,面积保留两位小数,可用FORMAT函数先将面积格式化为“0.00”再填入。填入的文本插入坐标以插入点为基准较为简便。部分代码如下:
  sPnt(0) = startPnt(0) + 112.32: sPnt(1) = startPnt(1) + 17.49: sPnt(2) = 0
  Set pTxt = ThisDrawing.ModelSpace.AddText(zfJG, sPnt, 1)
  pTxt.Alignment=acAlignmentMiddle:pTxt.TextAlignmentPoint=sPnt
  我们只需要使用FOR EACH…..NEXT….语句对选择集内的所有权属线对象进行循环处理,即可方便的实现对所有宗地的批量出图。
  4 结束语
  在以往的不动产权籍调查工作中,分层平面图由调查人员手工制作,制作过程复杂繁琐,工作时间长,人为错误多,效率低。本文论述的开发思路及所开发的应用软件使得分层平面图工作自动化,减少了重复工作量,大大提高了工作效率。本文所提及的代碼运行效率高,每1000宗地,只需5至6分钟即可完成。此外本文二次开发的成果已广泛应用于湖北省襄阳市、随州市等地的权籍调查工作中,并得到了用户的好评,为推进湖北省不动产权籍调查登记工作提供了有力的技术支持。
  参考文献
  [1] 《国土资源部不动产权籍调查技术方案》2015年41号文件.
  [2] 《湖北省宅基地使用权和集体建设用地使用权确权登记发证工作实施细则》.
  [3] 《地籍调查规程 TD T1001-2012》.
  [4] 张帆.《AutoCAD VBA开发精彩实例教程》[M].北京:清华大学出版社,2005年版.
其他文献
[摘 要]近些年随着经济水平的不断提高,我国对于科学技术发展的重视力度逐渐增强,这对于国家现代化建设具有积极的影响意义。电气自动化技术是现阶段较为先进的技术手段,其在中央空调中得到广泛的应用,进而使中央空调的工作效率与质量得到显著提升。目前在中央空调应用过程中还存在一些问题,本研究将对电气自动化技术的优点以及其在中央空调中的具体应用进行分析,从而得到完善中央空调应用的基本措施,使中央空调能够更稳定
期刊
[摘 要]随着我国经济高速发展,我国的网络技术也得到极快的发展,网络技术的发展为人们的生活和工作带来了极大的便利,但是也因为网络的发达使得人们面临的网络威胁日益增大,为了确保网络数据安全性,目前市场出现了各类的防火墙技术、入侵检测技术、网络隔离技术、病毒预防技术等,这些技术对于保证网络安全以及数据安全有重要的作用,但是本文主要探讨计算机密码学的应用对于数据安全性的保障,以为相关人士提供借鉴。  [
期刊
[摘 要]快速成型技术结合了电子、光学和机械等多个学科结合在一起,是一种先进的制造技术本文主要先简单介绍了快速成型技术的工作原理和特点,并就快速成型技术在现代机械制造业中的应用进行了探讨。  [关键词]快速成型 机械 三维 加工  中图分类号:TP339 文献标识码:A 文章编号:1009-914X(2018)19-0394-01  铸造工艺是传统机械制造常用到的一种方法,随着社会和技术的不断发展
期刊
[摘 要]随着近年来科学技术的快速发展,电力工业技术水平也不断提高,电力设施分布形式也更加复杂。电力系统中,配网管理主要承担分配电能以及给用户供电的任务,涉及到电网的空间分布、内部状态的变化等问题,需要信息系统对其进行支持辅助。如果沿用传统的信息管理系统,则很难仅用表格形式去表现空间联系,无法形成系统性的管理。GIS,即地理信息系统,对二维空间问题的描述具有较为明显的优势,因此,将GIS技术引进配
期刊
[摘 要]激光雷达技术作为当前应用最为广泛的测量技术,被广泛地应用到各行各业,并且在农村地籍测量和林业调查中占据主要地位。这主要跟雷达技术的高精度、高准确度、数据获取转换有重要的因素。本文正是基于农村三维数据获取中雷达技术占据的重要地位进行分析,主要对雷达技术在农村地籍三维数据获取中的应用进行研究。  [关键词]激光雷达技术 数据获取 应用  中图分类号:F272 文献标识码:A 文章编号:100
期刊
[摘 要]发展循环经济、低碳经济、绿色包装是国际社会发展的一项重大战略,节能环保已是众多企业发展的共识。电子信息产品打造“绿色包装”势在必行。本文首先对我国绿色包装材料发现现状进行了具体分析,重点就绿色低碳包装在电子产品中的应用与发展趋势进行了研究,以供参考。  [关键词]绿色包装;电子产品;发展趋势  中图分类号:TB484 文献标识码:A 文章编号:1009-914X(2018)19-0395
期刊
[摘 要]随着新时代的发展,多媒体技术和网络技术逐渐融入到社会的各个领域中,尤其是在教育教学领域中的应用较为广泛。教育教学改革的不断深入,要求在创新教学方法的同时融入信息技术,从而提高教学的效率,激发学生的学习兴趣。在此背景之下,文章就信息技术在中等职业学校专业理论课教学中的应用进行了分析,内容供相关人士参考和借鉴。  [关键词]信息技术;中等职业学校;专业理论课程;教学应用  中图分类号:G71
期刊
[摘 要]目前,计算机已经成为我们日常生活中常见的设备,计算机技术的发展也给我们的生活带来了极大的改变,各国也十分关注计算机技术的发展,并大力的培养计算机专业人才。  [关键词]高中;计算机;人才培养;建议;  中图分类号:G883 文献标識码:A 文章编号:1009-914X(2018)12-0004-01  一、序言  在计算机领域当中,人才最重要的一项能力就是创新能力。创新是推动计算机技术发
期刊
[摘 要]随着我国社会发展的不断进步,当今社会竞争力不断加剧,为了能在以后工作中增加就业的竞争实力,目前许多职业中专都会开设计算机维护与维修专业,且越来越受到重视和发展,现在这是个讲究实力和能力的社会,尤其是计算机这样社会大量需要的高技能水平的人才,掌握扎实的专业功底才能更好的投身于工作中,所以,本文就职业中专开设的计算机维护与维修专业的教学现状进行分析,并探讨在实际教学中对本专业的有帮助的几点建
期刊
[摘 要]文化馆是我国广大群众提高精神文明,加强文化交流,形成各个城市独特文化风貌的重要场所。文化馆开展对群众文化辅导工作,是社会主义实现物质文明与精神文明的双丰收。目前文化馆的群众文化辅导工作取得了一定的成绩,但是在社会主义物质文明不断发展的今天需要对群众文化进行更加深入的辅导,促进精神文明的发展。  [关键词]文化馆;群众文化;辅导  中图分类号:R089 文献标识码:A 文章编号:1009-
期刊