找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1432|回复: 0

[每日一码] API应用 查找邻接三角形

[复制链接]

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-7-5 09:32:48 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 st788796 于 2014-7-5 09:33 编辑

  1. (defun c:tt (/ ss pnts:center lst)
  2.   (defun Pnts:Center (pts)
  3.     (mapcar '(lambda (x)
  4.                (/ x 4.)
  5.              )
  6.             (apply 'mapcar (cons '+ pts))
  7.     )
  8.   )
  9.   (if (setq ss (ssget '((0 . "3DFACE"))))
  10.     (progn
  11.       (setq lst        (mapcar        '(lambda (x / pts p1 p2 p3)
  12.                            (setq pts (xdrx_entity_getstretchpoint x)
  13.                                  p1  (xdrx_line_midp (car pts) (cadr pts))
  14.                                  p2  (xdrx_line_midp (cadr pts) (caddr pts))
  15.                                  p3  (xdrx_line_midp (car pts) (caddr pts))
  16.                            )
  17.                            (list (list p1 pts)
  18.                                  (list p2 pts)
  19.                                  (list p3 pts)
  20.                            )
  21.                          )
  22.                         (xdrx_pickset->ents ss)
  23.                 )
  24.             lst        (apply 'append lst)
  25.             lst        (XD::List:GroupByIndex lst 1e-3)
  26.       )
  27.       (mapcar
  28.         '(lambda (x /)
  29.            (if (> (length x) 2)
  30.              (entmake
  31.                (list
  32.                  '(0 . "line")
  33.                  (cons 10
  34.                        (apply 'Pnts:Center (cadr x))
  35.                  )
  36.                  (cons 11
  37.                        (apply 'Pnts:Center (caddr x))
  38.                  )
  39.                  '(62 . 1)
  40.                )
  41.              )
  42.            )
  43.          )
  44.         lst
  45.       )
  46.     )
  47.   )
  48.   (princ)
  49. )


不可一次选择太多,对一个三角形会形成三个表,所以待分组的表数量是选择实体的 3 倍,在几百个实体时速度是很快的,对大量实体,分区域处理是最快方法
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-4-27 00:29 , Processed in 0.159340 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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