275437962 发表于 2013-12-24 16:32:37

autolisp如何实现快速选择满足条件的对象

本帖最后由 275437962 于 2013-12-27 22:15 编辑

我想实现用lisp快速选择,长度既小于某个值,又大于某个值的直线或多段线!(如长度小于2.5,但又大于0.5)
选择对象后,还可进行其它操作,(如删除操作等)

自贡黄明儒 发表于 2013-12-24 16:33:51

本帖最后由 自贡黄明儒 于 2013-12-28 08:24 编辑

请使用<选择易>

;;获得minL maxL之间长度线的选择集
;;示例(sslength (MySS 150 200))
(defun MySS (minL maxL / E LEN N OBJ SS)
(if (setq ss (ssget '((0 . "*LINE"))))
    (repeat (setq n (sslength ss))
      (setq e (ssname ss (setq n (1- n))))
      (setq obj (vlax-ename->vla-object e))
      (setq Len (vlax-get obj 'Length))
      (if (or (< Len minL) (> Len maxL))
(ssdel e ss)
      )
    )
)
ss
)

275437962 发表于 2013-12-24 16:35:45

自贡黄明儒 发表于 2013-12-24 16:33 static/image/common/back.gif
请使用

那个我会,但很不方便,帮忙想想用lisp实现吧!!

菜卷鱼 发表于 2013-12-24 16:42:01

http://bbs.mjtd.com/thread-84736-1-1.html

275437962 发表于 2013-12-24 17:10:17

菜卷鱼 发表于 2013-12-24 16:42 static/image/common/back.gif
http://bbs.mjtd.com/thread-84736-1-1.html

里面是有不少,不过没有满足要求的,有一个满足条件圆的选择,可以选择满足条件的圆,但选择后,不能对这些圆做任何操作了

snddd2000 发表于 2013-12-25 08:43:37

http://bbs.mjtd.com/thread-108654-1-1.html

275437962 发表于 2013-12-25 11:00:32

snddd2000 发表于 2013-12-25 08:43 static/image/common/back.gif
http://bbs.mjtd.com/thread-108654-1-1.html

这个我看过了,程序有问题!!1

自贡黄明儒 发表于 2013-12-28 08:28:18

看看2楼能否满足你的要求
(setq ss (myss 0.5 2.5))这后,你就可以处理你的选择集了

edata 发表于 2013-12-28 08:44:45

自贡黄明儒 发表于 2013-12-28 08:28 看看2楼能否满足你的要求 (setq ss (myss 0.5 2.5))这后,你就可以处理你的选择集了

猜测楼主还需要亮显选择集,可以删除等操作,具体什么操作,没有阐述。

xyp1964 发表于 2013-12-28 09:12:23

;; 需要e派工具箱(XCAD)的支持:http://yunpan.cn/QXQKsW9gAPmpF
(defun c:tt ()
(defun aaa (ss d1 d2 / ss1)
    (setq lst (xyp-ss2list ss)
          lst (vl-remove-if
                '(lambda (x)
                   (or (< (xyp-CurveLength x) d1)
                     (> (xyp-CurveLength x) d2)
                   )
               )
                lst
              )
          ss1 (xyp-list2ss lst)
    )
    (if        ss1
      (sssetfirst ss1 ss1)
    )
)
(if (setq ss (ssget '((0 . "*LINE,ARC,CIRCLE,ELLIPSE"))))
    (aaa ss 500 5000)
)
)
页: [1]
查看完整版本: autolisp如何实现快速选择满足条件的对象