明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1799|回复: 8

[LISP]如何获得LWPOLYLINE的几个端点

[复制链接]
发表于 2006-3-12 14:27:00 | 显示全部楼层 |阅读模式

请教各位,如何获得LWPOLYLINE的几个端点

发表于 2006-3-12 14:31:00 | 显示全部楼层

Link to:

http://www.faqs.org/faqs/CAD/autolisp-faq/part2/section-5.html
[23.1] How to access polyline VERTICES?

 

 楼主| 发表于 2006-3-12 14:34:00 | 显示全部楼层

怎么这么难啊,有没有更简单一点的办法啊,

 楼主| 发表于 2006-3-12 15:01:00 | 显示全部楼层

我以为很容易,唉.......................

发表于 2006-3-12 15:22:00 | 显示全部楼层
发表于 2006-3-12 15:37:00 | 显示全部楼层
怎么算不难?
发表于 2006-3-21 11:20:00 | 显示全部楼层

发个函数看看,大家指导下

(defun pline_point_list (pline_e_name)
  (setq pline_e_name_list (entget pline_e_name))
  (setq pline_e_name_point_list nil)
  (repeat (length pline_e_name_list)
    (if (= (caar pline_e_name_list) 10)
      (progn
 (setq pline_e_name_point (cdr (car pline_e_name_list)))
 (setq pline_e_name_point
        (list (car pline_e_name_point)
       (cadr pline_e_name_point)
        )
 )
 (setq pline_e_name_point_list
        (cons pline_e_name_point
       pline_e_name_point_list
        )
 )
 (setq pline_e_name_list (cdr pline_e_name_list))
      )
      (setq pline_e_name_list (cdr pline_e_name_list))
    )
  )
)

发表于 2006-3-21 12:12:00 | 显示全部楼层

这个东西应该很多地方有这种帖子吧

(defun c:test ()
  (setq en (car (entsel "\nPlease select a polyline")))
 (setq pt_lst (mapcar 'cdr
   (vl-remove-if-not '(lambda (x) (= (car x) 10)) (entget en))
  ))
  (prin1)
)

发表于 2006-3-21 12:27:00 | 显示全部楼层
HuaiYu发表于2006-3-21 12:12:00 这个东西应该很多地方有这种帖子吧 (defun c:test ()(setq en (car (entsel \"\nPlease select a polyline\")))(setq pt...

这段程序相当精辟,受用,谢谢分享!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-28 12:42 , Processed in 0.169823 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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