lisp自动生成界址点表_LISP语言在宗地界址点成果表的应用

1概述全国正在大范围开展农村土地确权发证项目,要求对每个村民小组进行宗地图、宗地界址点成果表的制作,从而进行土地申报,发放土地证。本文介绍如何在南方CASS中生成社宗地界址点成果表TXT数据文件。2问题的提出在农村土地确权发证的项目中,要求每一个社制作社宗地界址成果表,由于每个社宗地界址线端点太多,只需在主要拐弯处设置界址点,其余界址线端点不设置界址点,界址点号按顺时针方向进行编号,界址边长取界址线折线边长。在南方CASS地籍图上自动生成界址点成果表TXT文件就会碰到以下四个问题:(1)界址线不一定是以顺时针方向进行绘制的。(2)界址点起始点位置的确定。(3)哪些端点上有界址点及界点圆圈。(4)如何求取两界址点间在界址线上的折线距离。针对以上问题,采用AUTOLISP语言编制程序进行处理,包括以下两个子程序和一个主程序。3判断界址线方向(子程序DDXFX)(defunDDXFX()(SETQPP0(LIST00))(ifJZX1(progn(setqplineObj(vlax-ename->vla-objectJZX1))(command"COPY"JZX1""PP0PP0)(setqoffsetplineObj(car(vlax-safearray->list(vlax-variant-value(vla-OFFSETplineObj0.0001)))))(if(>(vlax-curve-getdistatparamplineobj(vlax-curve-getEndParamplineobj));_结束vlax-curve-getdistatparam(vlax-curve-getdistatparamoffsetplineObj(vlax-curve-getEndParamoffsetplineObj));_结束vlax-curve-getdistatparam)(progn(SETQFX"SSZ")(princ"n闭合多段线是顺时针."));progn(progn(SETQFX"NSZ")(princ"n闭合多段线是逆时针."));progn)(vla-deleteoffsetplineObj)(vla-deleteplineObj));progn);end_if(setqJZX1(entlast))(princ))4量折线距离(子程序LCD)(defunLCD()(setqfF(vlax-ename->vla-objectJZX1))(setqdis1(vla-get-LengthfF))(setqpt1P0)(setqpt2P1)(setqdis(abs(-(vlax-curve-getDistAtPointJZX1pt1)(vlax-curve-getDistAtPointJZX1pt2))))上面vlax-curve-getDistAtPoint函数求取曲线从开始点到指定点的曲线段的长度,差值dis则为两点间的曲线段长度,但如果曲线开始点在所求两个点的中间时,则差值dis就不是两点间的曲线段长度,而是闭合曲线长度减去差值dis为两点间的曲线段长度。下面判断当折线距离大于界址线(闭合曲线)总长一半时取小值为两点间的曲线段长度。(SETQDIS2(-DIS1DIS))(IF(>DIS2DIS)(SETQDISDIS)(SETQDISDIS2)))5生成界址点成果表(主程序JZDCGB)(defunc:JZDCGB()(setqAcadObject(vlax-get-acad-object)AcadDocument(vla-get-Ac

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值