找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1052|回复: 6

[求助] [求助]:求救怎样读出一封闭线的各个端点坐标

[复制链接]
发表于 2008-6-18 19:38:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
这个函数可以读出多段线的各个顶点坐标
当相邻两点相同时,去掉重点
但并未考虑该多段线是否封闭
(defun hj:getpllist (Polyline / enType %repeat #rev-PolyLine #1 %id-PolyLine objPolyline)
  ;;(setq enVertex (ent
  (setq objPolyline(vlax-ename->vla-object Polyline))
  (setq        #1 (vlax-safearray->list
             (vlax-variant-value
               (vla-get-Coordinates
                 objPolyline
               )
             )
           )
  )
  (if (= (vla-get-ObjectName objPolyline) "AcDb2dPolyline")
    (setq enType 3)
    (setq enType 2)
    )
  (setq %id-PolyLine 0
        %repeat (/ (length #1) enType))
  (repeat %repeat
    (setq #rev-polyline1 (list (nth (* %id-PolyLine enType) #1)
                       (nth (1+ (* %id-PolyLine enType)) #1)
                 ))
    (if (not (equal #rev-polyline1 (car #rev-PolyLine) 1e-09))
      (setq #rev-PolyLine
             (cons
               #rev-polyline1
               #rev-PolyLine
               )
            )
      )
    (setq %id-PolyLine (1+ %id-PolyLine))
  ) ;_end repeat
  (REVERSE #rev-PolyLine)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2008-6-18 22:44:40 | 显示全部楼层
用程序过滤组码为(70  .  1) 的多段线即可实现。 其它联系:ljttjl@ tom.com
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-6-18 23:00:16 | 显示全部楼层
谢谢大家
,你怎么变成1楼去了?

另外你的(defun hj:
一般都是(defun C:

刚才运行了一下,未知命令呢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-6-24 15:03:08 | 显示全部楼层
这是一个函数啦,要手工选择一条多段线看它的坐标的话可以这样用:
(hj:getpllist(car(entsel)))
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-7-11 16:54:20 | 显示全部楼层
起始vl函数的函数名太啰唆,用entget就可以获得多段线的端点坐标,用一个循环就可以了,我甚至怀疑vl函数的速度
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-7-11 17:04:25 | 显示全部楼层
起始vl函数的函数名太啰唆,用entget就可以获得多段线的端点坐标,用一个循环就可以了,我甚至怀疑vl函数的速度
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-7-14 22:48:01 | 显示全部楼层
支持一下吧 辛苦
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-16 16:52 , Processed in 0.181505 second(s), 44 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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