基于AutoCAD和lisp语言的地籍成果图册生成方法研究
2022-08-15于健
于 健
(北京五色金土信息科技有限公司,北京 100000)
在地籍调查工作中,地籍成果图表的输出是必不可少的,就传统地籍测绘而言,大家习惯于在AutoCAD的基础上,利用南方CASS或者广州CASS来进行地籍测图的内业出图工作,以上插件主要通过提供预编的要素种类对地形地物进行标注,利用AutoCAD中的XData扩展属性来记录地形地物的属性信息。
同样,插件本身也提供了成果图表的输出工具,但是在很多时候插件自带的成果图表输出工具并不能满足我们的出图要求,各地的地方标准要求的成果图表的输出格式不尽一致,很多时候我们需要对成果图表进行二次加工,而且修改起来工作量较大,耗费人力较多。
1 背景
北京五色金土信息科技有限公司承接门头沟、丰台、昌平等区县的农村集体土地确权登记颁证工作。项目涉及到大量地籍测绘及宗地成果图表输出等工作,由于地方标准的不同,传统的地籍测绘软件广州开思等不能完全满足北京市地籍成果图表的输出工作,出图后有相当一部分的内容不一致,需要在原有图表的基础上进行整饰,图表整饰修改的工作量较大,随着标准要求的不同,成果图表的修改量进一步增加,造成很多不必要的人力资源浪费。
基于诸多不便因素的制约下,文章提出在地籍测绘成果总图的基础上,通过AutoCAD自带的Lisp语言编辑器进行绘制代码编写,更加贴合实际生产工作,更能提高工作效率。
2 Lisp语言特点
Lisp语言和众多编程语言一样,有着相类似的地方,通过对代码的编译执行来完成一系列程序化的工作。Lisp语言相对来说应用起来灵活,简化的程序处理,不仅在处理速度上表现优异,在内存管理等方面也非常优秀。
3 地籍成果图表绘制技术方案
3.1 AutoCAD中地籍测绘成果数据的提取
在地籍调查中,主要采用的AutoCAD的扩展属性来存储实体的地籍属性信息,将宗地相关属性存储在宗地图形的扩展属性中。由于地籍属性信息通过扩展属性来存储,而扩展属性则直接挂接在实体对象上,故可以通过获取扩展属性来获取相应图形的地籍信息。扩展属性主要通过扩展属性注册名来进行标识,可以通过该名称提取扩展属性表中的所有信息,再通过相对位置来提取相应的属性信息,从而获取完整的地籍属性信息。
3.2 地籍成果图表的绘制流程
以宗地图和界址点成果表为例,绘制步骤主要分为:裁切另存图形文件、绘制宗地图、绘制界址点成果表等三个方面。
3.2.1 裁剪另存图形
一般而言,地籍测量的成果总图中包含了全部的宗地,而成果图表需要单宗地进行绘制。因此需要根据宗地的范围进行图形裁剪,将宗地及宗地四邻关系重新存储为新的图形,再进行宗地成果图表的绘制。为了便于操作,可以采用批量裁剪的方式,将总图中所有的宗地外围扩大,然后进行批量裁剪,将裁剪后的图形统一输出到“作业成果”文件夹中。
在Lisp编辑器中定义一个批量裁剪命令,然后选择需要裁剪的闭合宗地线,然后遍历所选宗地线,逐一将宗地线的外围扩大10个单位距离,以保留相邻关系。然后对图形进行裁剪,通过图形扩展属性获取该宗地线的地籍号,将裁剪好的图形以该宗地的地籍号命名保存到指定的“作业成果”文件夹中。
批量裁剪的目的是获取每一宗地的小范围宗地图形文件,以地籍号统一命名,便于下一步对每一宗地进行成果图表绘制,最后获得每一宗地的成果图表文件。
3.2.2 绘制宗地图
(1)绘制图框要素。根据地籍号选择图形文件,打开裁剪后的宗地图形,调用命令通过图形选择工具选择需要绘制的宗地线,程序自动读取该宗地图形的界址点坐标以及扩展属性等信息。通过坐标计算获取宗地几何中心的位置,根据宗地图形的包络矩形以及纸张大小计算最适宜绘图比例尺。将图形按照比例尺进行图纸空间缩放,通过调用预先制作的图框模板,作为块插入到相应的坐标位置。然后根据宗地的扩展属性将宗地号、权利人名称、图幅号、土地坐落、制图人、比例尺等相关信息标注到图框的相应位置,完成图框要素的绘制。
(2)绘制界址点、界址线。通过图形对象获取界址点信息,自动检索宗地拐点坐标,根据标注图表样式,按照坐标位置自动绘制界址点圈以及界址线,界址线绘制时需要根据界址点圈半径回缩,以防止压盖。
(3)界址点号、界址边长标注。通过界址点坐标,程序自动检索界址点位置,根据界址点连接的前界址线和后界址线的向量角计算出两根界址线偏移的中心角方向,通过判断向量夹角的大小计算偏移量,将坐标往该方向偏移指定距离单位,标注界址点号。
(4)标注本宗基本信息。计算本宗地中心点位置,将宗地号、权利人、宗地面积、地类代码等按照标准图表样式计算各自的标注点,标注到中心点位置附件的相应标注点上,完成本宗地基本信息的标注。
(5)标注邻宗基本信息。裁剪宗地时外扩了一定距离,可以根据裁剪附带下来的邻宗宗地线,来计算邻宗标注中心点的位置,通过其扩展属性来将邻宗的宗地号、权利人、地类代码等按照标准图表样式标注到适宜标注点,完成邻宗基本信息的标注。
3.2.3 绘制坐标成果表
(1)绘制成果表框架。根据以上宗地图位置,按照图纸纸张的大小,往右偏移一个适当的位移,确定坐标成果表的起始位置,将成果表模板以图块的方式插入到该位置。根据图表的位置将宗地号、图幅号、绘图员等相关信息标注到相应的表框位置。
(2)绘制宗地略图。根据地方标准,界址点成果表的最后需要绘制宗地略图,因此,需要根据界址点成果表中的略图框的大小,将宗地线按比例缩放到合适的位置,并按照界址点号标注的方式进行略图点号标注。
(3)标注界址点号及坐标成果值。获取界址点号标注的位置,遍历所有界址点坐标,将界址点号、界址点类型、界址点坐标值、界址边长逐一标注到表框中的合适位置,该标注位置主要为纵坐标递减的方式计算即可。
(4)跨页处理。界址点数超过单张表的最大记录数时,需要重新添加一张新表。需要重新计算下一张表的起始位置,重复进行一次表框绘制,表格换页后,需要将第一行进行处理,要求与上一张表的最后一行保持一致,然后继续对剩余界址信息进行标注,直至所有坐标值均标注完成。
4 Lisp自动绘图技术要点及难点
4.1 图形裁剪
AutoCAD中没有现成的图形裁剪功能,经过试验和对比,本方案中采用的方式是将宗地线外扩10个单位,与所有相交的线段依次进行打断处理,以实现裁剪的目的。由于打断命令一次只能将图形打断成两部分,对于部分图形,需要进行两次打断处理才能完成相交打断操作,将打断后的图形通过框选的方式复制到一个新的文件,并以宗地号命名保存,完成图形裁剪操作,由于打断操作均在总图中进行,为了保持原图的完整性,在每一宗地裁剪完成后,都需要通过AutoCAD的分组回退命令方式将图形自动还原到原始状态。
4.2 扩展属性获取
扩展属性的存储方式决定了扩展属性的提取方式,在提取扩展属性时,需要了解每一个需要的扩展属性所存储的位置序号,然后再通过(entget)命令来将所有扩展属性取出,通过(nth)命令来提取相应位置的扩展属性,例如:(setqPL_djh(cdr(nth20(nth0(cdr(assoc3(entgetent1'("DJInfo"))))))))。通过获取“DJInfo”注册名下的所有扩展属性信息,然后提取第20位置上的值赋值PL_djh,完成地籍号的扩展属性提取。
图1 比例尺计算代码
4.3 坐标提取
Lisp中要获取CAD图形的坐标等图像信息,需要通过vlax扩展函数来进行提取,将宗地线作为对象提取其所有拐点坐标信息,按照需求将拐点坐标XY值存储到数组中,演示代码如下:
4.4 比例尺计算
由于在AutoCAD中,成果图表需要按照1∶1大小打印成图,这就需要将图形按照指定的大小进行图纸空间变换,比例尺的计算方法如下:
根据本宗地拐点坐标值获取最大、最小坐标值,判断包络矩形的XY值与图纸宽高大小关系,确定采用X值或者Y值进行计算,通过计算获得最适宜的缩放比例尺,要求缩放比例尺为100的整数倍。
通过计算出来的最适宜比例尺,将宗地按照该比例尺进行图纸空间缩放,则可以将图形以最适宜的方式缩放到图框中。
图2 比例尺计算代码
4.5 标注点位计算
在标注点位中,图框中个元素的标注点相对固定,可以根据图框的插入点进行相对定位,进行图框要素的标注,对于图形中界址点号,界址线边长等活动元素,需要按照图形进行计算标注点位置。
(1)界址边长标注点位计算。通过图形对象信息的获取,可以得到该宗地拐点坐标序列,同时也可用计算界址边长序列,遍历所有界址边长,通过获取起点坐标和终点坐标,获取界址线向量,通过计算两点之间的中点位置,然后在垂直平分线上按照指定的距离定点,即可计算出界址边长标注的点位坐标,通过点位坐标以及向量角度来完成界址边长的标注。
图3 界址边长标注代码
图4 垂直平分线定点代码
(2)界址点号标注点位计算。界址点号标注点的计算需要计算前界址线的向量与后界址线的向量,通过计算出向量夹角中心线的向量方向,然后同样通过向量定点的方式来计算界址点号标注的位置。
5 结论
基于AutoCAD的Lisp程序自动绘图技术能够快速便捷的协助地籍作图人员输出成果图表,实现了成果图表自定义模板以及快速制图功能。从读取扩展属性到图形属性,Lisp能够充分利用地籍调查测量中的相关信息进行汇总制图,达到了数据处理的准确性和高效性,在地籍工作这方面表现良好,具有一定的可行性。
Lisp程序化作图不仅可以快速绘制成果图表,还可以避免由于人为原因造成的疏漏和错误。程序化作图能够协助地籍作图者快速制作出完整正确的宗地成果图表等,节省人力物力,也能相应运用到其他相关图表的生产,从而达到一套技术多种运用的目的,实现制图及数据处理一体化和高效化。