明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1375|回复: 6

[求助]怎样取得LWPOLYLINE的终点坐标

[复制链接]
发表于 2007-1-18 22:53 | 显示全部楼层 |阅读模式

采用(setq ent1 (entget (car (entsel))))得到如下信息:

((-1 . <图元名: 7ef79688>) (0 . "LWPOLYLINE") (330 . <图元名 :
7ef77cf8>) (5 . "B99") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "HL")
(100 . "AcDbPolyline") (90 . 4) (70 . 0) (43 . 0.0) (38 . 0.0) (39 . 0.0) (10
4062.78 -614.183) (40 . 0.0) (41 . 0.0) (42 . 0.0) (10 4063.28 -614.208) (40 .
0.0) (41 . 0.0) (42 . 0.0249906) (10 4065.28 -614.208) (40 . 0.0) (41 . 0.0)
(42 . 0.0) (10 4065.78 -614.183) (40 . 0.0) (41 . 0.0) (42 . 0.0) (210 0.0 0.0
1.0))

我采用(cdr (assoc 10 ent1)) 只能得到起始点的坐标(4062.78 -614.183) ,无法得到其他三个顶点的坐标。请问怎么把终点坐标取出?

我刚刚开始学习AUTOLISP, 很多东西都不会,希望能够得到高手的帮助.

先谢谢大家的帮助了!

发表于 2007-1-19 08:20 | 显示全部楼层

终点(未点)坐标可以这样取

(cdr (assoc 10 (reverse ent1)))

 楼主| 发表于 2007-1-19 11:02 | 显示全部楼层

谢谢ZZXXQQ板主的帮助!

再问一个问题:怎样依次取得每个顶点的坐标?

发表于 2007-1-19 11:39 | 显示全部楼层
  1. (defun getPP (ename / ptlist)
  2.   (foreach n (entget ename)
  3.     (if (= 10 (car n))
  4.       (setq ptlist (cons (cdr n) ptlist))
  5.     )
  6.   )
  7.   (reverse ptlist)
  8. )
  9. ;;下面为测试程序
  10. (defun C:test (/ ss ename)
  11.   (setq ss (entsel "\n请选取多段线(或样条曲线): "))
  12.   (setq ename (car ss))
  13.   (getPP ename)
  14. )
发表于 2007-1-19 13:32 | 显示全部楼层
(setq Ename(car(entsel))
      SPT(vlax-curve-getstartpoint Ename);對象的起點
      EPT(vlax-curve-getendpoint Ename));對象的終點
发表于 2007-1-19 13:51 | 显示全部楼层

回传的点位值有分2D&3D.

发表于 2007-1-19 14:19 | 显示全部楼层

我常用的工具,你参考参考。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-3 16:45 , Processed in 0.546958 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表