四川省川建勘察设计院,成都 610000)
摘要:本文针对房产面积内业处理时遇到的问题,提出利用AutoLISP语言进行编程解决的可行性,实现了面积计算标注功能、面积统计功能、数据导出功能。最后对此次研究内容进行了总结,并分析重叠区域检查功能的初步设计思路,提出有待进一步解决的问题。
关键词:房产测绘;AutoLISP;面积计算;面积标注
1、面积标注功能的设计
此功能满足了快捷标注封闭区域的面积数据,分图层管理半算和全算面积区域的需求。输入“mj”命令,开始执行面积标注功能函数,首先判断当前图形文件是否有“mj”图层(此图层用于面积数据标注),若没有则创建此图层;然后依次判断是否有“qs”和“bs”图层,这两个图层用于区分全算和半算面积区域,分别用绿色和黄色表示;获取待计算面积区域的内部点坐标,判断该点是否在封闭区域内,若不是则结束程序,若是则进行下一步;获取全算或半算参数(q为全算,b为半算),若全算,则直接输出封闭区域的面积属性,若为半算,则需对封闭区域面积乘以0.5后输出;此时完成一次面积标注,若需继续,则在下一个待算封闭区域内点击左键,若需结束,则点鼠标右键退出程序。
面积标注功能实现主要代码:
(1)判断是否有用于标注面积的图层“mj”图层,若没有则创建该图层:(setq k_lay(tblsearch "layer""mj"))(if (null k_lay)(command "-layer""n""mj""c" 6 "mj""""") ;若没有mj图层,则新建该图层,并设置颜色为6号桃红色
(2)获取待算面积区域的内部点,并将该点信息赋给p1:(setq p1 (getpoint "\n点取需计算面积区域内部点:"))
(3)将p1所在的封闭区域构成面域,并将该面域的信息赋给变量EN:(command "_boundary" p1 "")(setq EN (entlast))
(4)对EN进行面积计算,并获得其面积属性值赋给smj:(command "area""o" EN) (setq smj (getvar "area"))
(5)根据所输入的参数q或b,区分面积全算或面积半算,从而设置面积系数xs为1或0.5和构成面域的所在图层,并将面积数据输出:(setq s(getstring "\n面积全算(q)or半算(b)<q>:"))(if (= s "q")(setq xs 1 lay "qs")(setq xs 0.5 lay "bs"))(command "style""standard""txt.shx" htxt 0.8 """n""""")(command "text""s""standard""j""BC" p1 "" smj)
2、面积计算功能的设计
为了统计每户、每层或每栋的总面积,可将半算面积和全算面积通过图层进行区分,然后分别对全算面积和半算面积求和,最后输出两种面积的总和。
期刊文章分类查询,尽在期刊图书馆对于全算图层“qs”所有封闭区域面积求和的过程是:首先取得该图层上所有图形对象,形成一个选择集;然后统计这个集合里的对象个数;最后读取每个对象的面积属性,并累加。对“bs”图层上的图形进行求和时,只需改变其面积系数为0.5,则得其实际面积的一半。面积统计功能主要代码:
(1)选取qs图层所有图形对象形成选择集,赋值给变量ss,并将 Visual LISP 扩展功能加载到 AutoLISP:(setq ss (ssget "X" (list (cons 8 "qs"))))(vl-load-com)
(2)利用Visual LISP的功能,依次判断对象是否有“面积”属性,若有进行循环求和:(if (vlax-property-available-p obj "area")(setq tarea (+ (vlax-get-property obj 'area) tarea)))
3 数据导出功能的设计
为了更加方便的对房屋面积数据使用,需将绘制好的分户图的面积数据以表格的形式输出。首先获取创建Excel文件及其目录;然后读取“mj”图层所有对象,并统计对象个数;最后循环判断对象是否为文本类型,若是则依次写入到创建的Excel表格中
数据导出功能的主要代码:
(1)创建Excel写出文件:(setq ffn (getfiled "写出文件""""xls" 1))
(2)以“写”的方式打开该文件:(setq ff (open ffn "w"))
(3)从ss选择集(面积标注图层所有对象)中取得第i个对象的对象名称:(setq ssn (ssname ss i))
(4)获取对象的信息列表,并赋值给ssdata变量:(setq ssdata (entget ssn))
(5)获取ssdata里“TEXT”和“MTEXT”格式的数据,写入到Excel:(setq sstyp (cdr (assoc 0 ssdata)))(if (or (= sstyp "TEXT") (= sstyp "MTEXT"))
(progn(setq txt (cdr (assoc 1 ssdata)))(princ txt ff)(princ "\n" ff)))
结束语:
本文对在房产测绘工作中遇到的问题进行总结分析,如:在进行面积计算时,不能连续快速的计算并标注封闭区域面积;面积数据导出困难,不便于后期统计分析。通过利用AutoLISP语言进行编程,解决了以上问题,为工作提高效率。由于此研究仅为初步成果,该程序仍有许多待改进的地方,比如:错误处理机制不完善;重叠区域检查功能尚未试验成功。这些将是接下来学习和研究的重点方向。
参考文献
[1]陈重奎,李乃良.AutoCAD中利用区域计算实现多边形的重叠与空洞检查[J].城市勘测, 2009(4).
[2]夏翔.现代数据房产测绘技术在我国的应用[J].广东科技,2010(2).
[3]张建超,闫峰.房产测绘中房屋面积预测和实测对比之我见[J].民营科技, 2013(3).
[4]张闻宇.浅谈测绘技术在房地产开发中的应用[J].中国新技术新产品,2011(04).
[5]陈向道.房地产测绘管理的探讨[J].测绘与空间地理信息,2011(3).
论文作者:许珺 张超
论文发表刊物:《新材料.新装饰》2018年3月下
论文发表时间:2018/9/11
标签:面积论文; 图层论文; 区域论文; 功能论文; 对象论文; 数据论文; 房产论文; 《新材料.新装饰》2018年3月下论文;