明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3418|回复: 6

[提问] 如何获取和修改多段线的多个顶点坐标

[复制链接]
发表于 2016-1-5 13:24:17 | 显示全部楼层 |阅读模式
例如:
(assoc 10 (entget (car (entsel))))
运行上述代码后,选择了一个多段线,只能返回第一个顶点的坐标。
如何获取多段线的所有顶点?
发表于 2016-1-5 13:36:58 | 显示全部楼层
(defun c:abc (/ curve dxf point)
  (vl-load-com)
  (setq curve (car (entsel "\n选择对象")))
  (setq dxf (entget curve))
  (setq        point
         (mapcar
           '(lambda (x) (vlax-curve-getclosestpointto curve (cdr x)))
           (vl-remove-if-not '(lambda (x) (= 10 (car x))) dxf)
         )
  )
  (princ point)
  (prin1)
)
发表于 2016-1-5 13:42:37 | 显示全部楼层
发表于 2016-1-5 13:45:06 | 显示全部楼层
有个笨方法,用vl-remove删除,while循环获取。
发表于 2016-1-5 18:44:57 | 显示全部楼层
  1. ;; (PLVertexs (setq s1 (car (entsel "\n选择多段线: "))))
  2. (defun PLVertexs (s1)(mapcar 'cdr (vl-remove-if '(lambda (x) (/= (car x) 10)) (entget s1))))
发表于 2016-1-5 19:55:10 | 显示全部楼层
lisp入门必学题-------获取多段线顶点坐标
 楼主| 发表于 2016-1-6 11:34:55 | 显示全部楼层
多谢楼上各位的回答,现在基本了解如何获取多段线的各个顶点了。
但是这些方法都是另外建立了一个存储数据的表,如何修改多段线顶点数据并更新还是不清楚。
还请各位再帮帮忙
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-21 01:18 , Processed in 0.147582 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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