明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1406|回复: 4

[提问] 求助!!如何依次获得多边形网格的全部顶点

[复制链接]
发表于 2018-10-26 22:55:53 | 显示全部楼层 |阅读模式
本帖最后由 gamexia 于 2018-10-26 23:25 编辑

使用edgesurf 生成的多边形网格,如何依次取得全部顶点?





本帖子中包含更多资源

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

x
发表于 2018-10-27 13:04:06 | 显示全部楼层
本帖最后由 lisperado 于 2018-10-27 13:22 编辑
gamexia 发表于 2018-10-27 11:23
首先非常感谢帮助!!
有疑问如下:
1)顶点的编号与CAD的特性中的顶点编号刚好相反

1.相反因为之前 ( setq ls (cons x ls) ) 思路,已更正 :)
2.以下示范只以瞬态点取代替插入块以便直接预览(以免undo费时),思路相同以'p'变量坐标值。。

  1. (defun c:tt2 (/ *error* l i s p )
  2.   
  3.   (defun *error* (msg)
  4.    (princ "*cancel*")
  5.     )
  6.   (princ "\n选取多边形网格..")
  7.   (cond        ((setq s (ssget "_:E:S+." '((0 . "POLYLINE") (-4 . "&=") (70 . 16)))
  8.                l (vlax-get (vlax-ename->vla-object (ssname s 0)) 'coordinates)
  9.                i 1
  10.                )
  11.          (while        l
  12.            (setq p (list (car l) (cadr l) (caddr l)))                     (setq p (trans p 0 1)) ; UCS坐标只限于瞬态
  13.            (or (zerop (logand i 1))

  14.                ;; (command "-insert" "块名称" p 1 1 0 )
  15.                               (grvecs                         (apply
  16.                           'append
  17.                           (mapcar
  18.                            '(lambda (x)
  19.                               (list 2 p (polar p (* x pi) (* 10. (/ (getvar "viewsize") (cadr (getvar "screensize"))))))
  20.                               )
  21.                            '(0.25 0.75 1.25 1.75)
  22.                            )
  23.                           )
  24.                          )

  25.                )
  26.            (setq i (1+ i)
  27.                  l (cdddr l)
  28.                  )
  29.            )
  30.          )
  31.         (t (princ "\n退出?"))
  32.         )
  33.   (*error* nil)
  34.   (princ)
  35.   )






点评

感谢帮助,!!!  发表于 2018-10-27 14:47

评分

参与人数 2明经币 +1 金钱 +25 收起 理由
ysq101 + 5 赞一个!
gamexia + 1 + 20 很给力!

查看全部评分

回复 支持 1 反对 0

使用道具 举报

发表于 2018-10-27 05:05:18 | 显示全部楼层
本帖最后由 lisperado 于 2018-10-27 11:47 编辑

  1. (defun c:tt (/ *error* s w i r l)
  2.   (defun *error* (msg)
  3.     (if        r
  4.       (close r)
  5.       )
  6.     )
  7.   (princ "\n选取多边形网格.." )
  8.   (cond        ((setq s (ssget "_:E:S+." '((0 . "POLYLINE") (-4 . "&=") (70 . 16)))
  9.                l (vlax-get (vlax-ename->vla-object (ssname s 0)) 'coordinates)
  10.                i 0
  11.                w (setq w (vl-filename-mktemp))
  12.                r (open w "w")
  13.                )
  14.          (while        l
  15.            (write-line
  16.              (apply 'strcat
  17.                     (vl-list* (itoa i)
  18.                               "\t"
  19.                               (mapcar '(lambda (x) (strcat (rtos x 2 3) "\t")) (list (car l) (cadr l) (caddr l)))
  20.                               )
  21.                     )
  22.              r
  23.              )
  24.            (setq i (1+ i)
  25.                  l (cdddr l)
  26.                  )
  27.            )
  28.          (close r)
  29.          (startapp "notepad" w)
  30.          )
  31.         (t (princ "\n退出?"))
  32.         )  (*error* nil)
  33.   (princ)
  34.   )


 楼主| 发表于 2018-10-27 11:23:59 | 显示全部楼层
本帖最后由 gamexia 于 2018-10-27 11:33 编辑

首先非常感谢帮助!!
有疑问如下:
1)顶点的编号与CAD的特性中的顶点编号刚好相反

2)不用输出到EXCEL,我是在奇数编号的点的位置插入块  (只用到XY二维平面)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-1 05:42 , Processed in 0.197398 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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