找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: 它山之石

[求助] [求助]:如何一次得到一条多义线的所有顶点坐标?

[复制链接]
 楼主| 发表于 2004-10-12 12:00:18 | 显示全部楼层
  如果只是得到一根不闭合的多义线的总长度的中点,可以用“DIVIDE”命令将其两等分,再通过用“节点”方式就可以捕捉到中点了。
  如果你要编程,至少要先判断是否闭合。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-10-14 05:03:07 | 显示全部楼层
最初由 它山之石 发布
[B]

如果是封闭的多义线,哪个点才能算是中点?
你不妨贴张图上来看看。 [/B]

因为封闭的多义线有始终点, 自然就有中点. 假如写程序:
[php]
(defun c:test ()
  (setq pl (car (entsel)))
  (setq len (vlax-curve-getdistatparam pl (vlax-curve-getendparam pl)))
  (setq pm  (vlax-curve-getpointatdist pl (/ len 2)))
  pm
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-10-14 11:40:47 | 显示全部楼层
  封闭的多义线是可以得到从始点到终点的中点,但这样做的意义是什么呢?也许在实际应用中会与我的初衷不一致。因为是封闭,我就可以认为任何一点都可以作为起点,至于通过程序得到的实体的起点只是画图时的起点而已。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-10-14 14:48:31 | 显示全部楼层
我是针对你那句话 "如果是封闭的多义线,哪个点才能算是中点?"来回答的.  AUTOCAD就是这么定义的. 实际应用依不同行业而不同.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2004-10-14 16:11:54 | 显示全部楼层
最初由 它山之石 发布
[B]  封闭的多义线是可以得到从始点到终点的中点,但这样做的意义是什么呢?也许在实际应用中会与我的初衷不一致。因为是封闭,我就可以认为任何一点都可以作为起点,至于通过程序得到的实体的起点只是画图时的起点而... [/B]


闭合多义线的“起点”不是没有意义的,即使在视觉上无所谓,可能绘图时也不是严格控制,但在系统中这是有严格意义的,否则ACAD在很多情况下都无法进行下去,常用的“定距等分”也无法进行,如果研究一些DXF,可以看出,即使是“圆环”(Donut),起始点也不是任意的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-10-23 11:33:25 | 显示全部楼层
(defun c:pl()
(setvar "cmdecho" 0)
(setq ffn (getfiled "选取文件" "" "doc" 1))
(setq ff (open ffn "w"))
(close ff)
(princ "\n选取PLINE多义线...")
(setq ss (ssget))
(setq i 0)
(setvar "pdmode" 33)
(repeat (sslength ss)
(setq ssn (ssname ss i))
(setq endata (entget ssn))
(setq n 0)
(repeat (length endata)
(setq pp (nth n endata))
(setq key (car pp))
(if (= key 10)
(progn
(setq x (cadr pp))
(setq y (caddr pp))
(command "point" (list x y))
(setq ff (open ffn "a"))
(princ x ff)
(princ " " ff)
(princ y ff)
(princ "\n" ff)
(close ff)
)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-10-24 15:52:36 | 显示全部楼层
能给出具体求(多义线)一条直经的中点的代码吗?
谢谢!!!1
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-27 13:48 , Processed in 0.170590 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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