明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2426|回复: 3

[函数]返回符合长度要求的直线选择集

[复制链接]
发表于 2002-6-2 21:41:00 | 显示全部楼层 |阅读模式
(defun SelLinesByLength (Low Hig / CurEnl CurEnt CurSet EntCnt LinLgt)
(if (setq CurSet (ssget "_X" '((0 . "LINE")))) ;过滤直线
  (progn                                ;如果找到直线...
   (setq EntCnt 0)                      ;设置图元计数
   (repeat (sslength CurSet)            ;扫描选择集
    (setq CurEnt (ssname CurSet EntCnt) ;提取图元
          CurEnl (entget CurEnt)        ;提取图元列表
          LinLgt (distance              ;获取直线对象的长度
                  (cdr (assoc 10 CurEnl))
                  (cdr (assoc 11 CurEnl))
                 )
    )
    (if (<= Low LinLgt Hig)             ;如果长度相符...
     (setq EntCnt (1+ EntCnt))          ;获取下一个对象...
     (ssdel CurEnt CurSet)              ;不然...从选择集中删除图元...
    )                                   ;
   )                                    ;检查是否为空的选择集
   (setq CurSet (if (= (sslength CurSet) 0) nil CurSet))
  )
)
CurSet                                 ;返回选择集
)

用法:
(SelLinesByLength MinValue MaxValue)
返回符合长度要求的直线选择集
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2015-6-30 13:08:42 | 显示全部楼层
好东西沉得太深了,帮你挖出来
发表于 2015-6-30 13:41:50 | 显示全部楼层
  1. ;; xyp-SelCurvesByLength 返回符合长度要求的曲线选择集 (xyp-SelCurvesByLength ss Low Hig)
  2. (defun xyp-SelCurvesByLength (ss Low Hig / ll)
  3.   (xyp-list2ss
  4.     (vl-remove-if-not
  5.       '(lambda (x) (setq ll (xyp-CurveLength x)) (<= low ll hig))
  6.       (vl-remove-if-not 'xyp-curve-check (xyp-ss2list ss))
  7.     )
  8.   )
  9. )

  10. (if (setq ss1 (xyp-SelCurvesByLength (ssget) 200 5000))
  11.   (sssetfirst nil ss1)
  12. )
发表于 2015-6-30 17:34:46 | 显示全部楼层
xyp1964 发表于 2015-6-30 13:41

院长威武!不过不喜欢看院长的代码,只喜欢看你的演示动画

点评

这个动画没法做  发表于 2015-7-1 12:45
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-21 18:38 , Processed in 0.155541 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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