winerfjy 发表于 2015-11-4 14:00:06

按块选择功能

本帖最后由 winerfjy 于 2015-11-4 14:51 编辑

(defun c:ak(/ a ss b c d);按块选择功能
(setvar "cmdecho" 0)
(princ "\n选择要选的块样")
(setq a(cdr (assoc 2 (entget (car (entsel))))))
(setq d(substr a 1 1));到得第一个数
(if (= "*" d)
(setq c(strcat "`" a))(setq c a))
(setq b (uINT 1 "" "1.手选范围,2.全图选中" 1))
(if (= 1 b)
    (prompt "\n选择一个区域:"))
(if (= 1 b)
(SETQ ss (ssget (list '(0 . "INSERT")(cons 2 c)))))
(if (= 2 b)
(SETQ ss(ssget "x"(list '(0 . "INSERT")(cons 2 c)))))
(sssetfirst nil ss)
(princ(STRCAT "共有图块" (ITOA(SSLENGTH ss))"个"))
(prin1)
(princ))
(defun uint (bit kwd msg def / inp)
(if def
    (setq msg (strcat "\n" msg "<" (itoa def) ">:") ;Test for a default
    bit (- bit (boole 1 bit 1)); A default and no null bit code
    )          ;setq
    (if(= "" (substr msg (strlen msg) 1))
      (setq msg (strcat "\n" (substr msg 1 (1- (strlen msg))) ":"))
          ;Then strip space
          ;else msg is OK
      (setq msg (strcat "\n" msg ":"))
    )
)          ;if,if
(initget bit kwd)
(setq inp (getint msg))
(if inp
    inp
    def
)
)




113486295 发表于 2018-3-10 23:08:45

高手啊能不能修改成选择特定的匿名块

bluefcc1 发表于 2018-3-20 13:20:04

下載學習..

113486295 发表于 2018-3-26 00:02:41

能不能修改成选择特定的匿名块

疯球 发表于 2018-5-14 16:30:53

真心感觉高手的分享

winerfjy 发表于 2018-7-14 23:29:55

疯球 发表于 2018-5-14 16:30
真心感觉高手的分享

很久没有上论坛了都是刚学lisp的时候拿得出手的东西

alexmai 发表于 2019-3-6 17:10:05

可否改进一下,对动态块也适用


资料参考:
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=84177&extra=&highlight=ssget&page=2
页: [1]
查看完整版本: 按块选择功能