lisp读点坐标绘多义线_AutoCAD中多义线的坐标标注

0引言在基于AutoCAD的图形中,经常需要将图形中某些点的坐标标注在图面上,常用的方法是通过选择点的形式进行坐标标注,这对于零星的标注几个点的坐标时的确是很好的方法,因为这种方法对于每一个坐标都采用人工控制模式,可以根据图面情况选择坐标标注的位置,具有极大的灵活性。如果对于多义线上所有的节点进行坐标标注,仍然采用逐个节点进行坐标标注的方式,不仅工作量大,更主要的是保证每个点坐标标注的正确性是一件困难的事情,如果要标注的节点处实体较多,节点较为稠密,在进行节点捕捉就要十分小心,否则很容易捕捉到其它节点上。是否可以通过AutoCAD的选择实体的模式进行多义线的选择,进而自动标注多义线上每个节点的坐标呢?这样不仅提高多义线节点坐标标注的效率,且因为选择的是多义线所以可以保证标注的节点的坐标的正确性。通过对AutoCAD的多义线的实体数据进行分析,通过选择多义线对多义线所有节点坐标进行标注是可行的[1~5]。1基于Lisp语言的多义线的坐标标注1.1多义线的实体选取及节点坐标数据的获取在AutoCAD中,多义线分为轻量多义线(Auto-CAD中实体名称为“LWPOLYLINE”)和多义线(AutoCAD中实体名称为“POLYLINE”),所以在多义线选择时应通过实体名称进行过滤,实体名称为“LWPOLYLINE”或“POLYLINE”,在“LWPOLY-LINE”线中,仅有主实体,没有次实体,“LWPOLY-LINE”线的所有节点坐标均在主实体的实体数据中,取出其所有坐标数据依次组成坐标序列。在“POLYLINE”线中,通过实体选择第一次获得的只是“POLYLINE”线的主实体,而其坐标则储存在子实体的实体数据中,需要通过“ENTNEXT”函数遍历其子实体,获取其每个节点坐标,直至子实体名称为“SEQEND”时为止。在获取每个节点坐标组成坐标序列后,复制坐标序列的首坐标和尾坐标,将首坐标添加到坐标序列的尾部,将尾坐标添加到坐标序列的首部,更新坐标序列。这样在进行多义线坐标标注时,从坐标序列的第二点开始至倒数第二个点即可。1.2标注坐标的相关数据计算在进行坐标标注时,标注的坐标文本等均与比例尺有关,为了简化计算,假设图的比例尺为11,所有的数据计算均按照图的比例尺为11进行。首先计算要标注的坐标文本“TXTX”(如图1中的“X46201.842”)和“TXTY”(如图1中的“Y36207.461”),坐标文本的计算应考虑测量坐标系和数学坐标系的差异是否需要调换X、Y值,同时还要考虑所需要的坐标标注样式及小数点位数,坐标文本的高度按经验值确定。对于pt1、pt2、pt3各点的坐标均需要通过极坐标法计算获得,为此需计算起算基点和待求点之间的方位角和距离。876《工程与建设》2007年第21卷第6期如图1所示,Npt1的方位角Npt1取角度N-1NN+1的角度平分线,Npt1的距离LNpt1根据经验值确定。pt1pt2的方位角pt1pt2取值为0或,具体与Npt1的值有关,当0.5

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值