明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2438|回复: 9

用什么函数可以取得一直线的长度、起点坐标、终点坐标。

[复制链接]
发表于 2004-3-7 19:26:00 | 显示全部楼层 |阅读模式

用什么函数可以取得一直线的长度、起点坐标、终点坐标。

我用LIST命令可以查到,但不知在AUTOLISP 中如何提取其中的一个值?头痛啊啊。。。。
发表于 2004-3-7 19:40:00 | 显示全部楼层
(setq ents (entget (car (entsel))))


起点setq pt1 (cdr (assoc 10 ents)))


终点setq pt2 (cdr (assoc 11 ents)))


长度setq len (distance pt1 pt2))
发表于 2004-3-8 16:17:00 | 显示全部楼层
(defun c:test (/ objx); 取得一個實體的兩下端點
(setq objx (vlax-ename->vla-object (car (entsel "\n選擇實體:"))))
(list (vlax-curve-getEndPoint objx)(vlax-curve-getStartPoint objx))
)
 楼主| 发表于 2004-3-7 19:44:00 | 显示全部楼层
初次领教。。。谢了(2楼)!!
发表于 2004-3-8 15:37:00 | 显示全部楼层
二楼大侠的方法对于LINE画的直线可以,但对于PLINE画的直线(即LWPOLYLINE类型)好象行不通.其信息列表如下: (
(-1 . <Entity name: 36e05a8>)
(0 . "LWPOLYLINE")
(5 . "6D")
(100 . "AcDbEntity")
(67 . 0)
(8 . "0")
(100 . "AcDbPolyline")
(90 . 2)
(70 . 0)
(43 . 500.0)
(38 . 0.0)
(39 . 0.0)
(10 7740.1 14473.5)
(40 . 500.0)
(41 . 500.0)
(42 . 0.0)
(10 92809.6 14473.5)
(40 . 500.0)
(41 . 500.0)
(42 . 0.0)
(210 0.0 0.0 1.0)
) 我用下列程序返回起点和终点: qd 起点 zd终点. (setq cc (ssget '((-4 . "<or")(0 . "LINE") (0 . "LWPOLYLINE")(-4 . "or>")))
qd (cdr (assoc 10 (entget (ssname cc 0)))) zd (cdr (assoc 11 (entget (ssname cc 0))))
)
LWPOLYLINE却没有11项点对表,很是奇怪?不知道是CAD的错误,还是我的错误? 注:我用的是R14版本.
发表于 2004-3-8 16:17:00 | 显示全部楼层
问题已解决,对于PLINE的线 (setq cc (ssget '((0 . "LWPOLYLINE")))
qd (cdr (assoc 10 (entget (ssname cc 0)))) zd (cdr (assoc 10 (reverse(entget (ssname cc 0)))))
)
是不是很简单.
发表于 2004-3-8 16:18:00 | 显示全部楼层
楼上的做法好象在R14里无法运行啊.
发表于 2004-3-11 21:28:00 | 显示全部楼层
如果是空间的三维直线怎么办呢?


请指教
发表于 2004-3-11 21:58:00 | 显示全部楼层
一样
发表于 2010-11-14 20:14:00 | 显示全部楼层

圆弧呢 怎样读取其起点 终点

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

本版积分规则

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

GMT+8, 2024-10-2 14:23 , Processed in 0.199426 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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