yjpyjp 发表于 2019-1-30 19:18:22

请问怎么修改这个源代码才能让我选择的时候只选中上面已经选中的

本帖最后由 yjpyjp 于 2019-5-4 13:34 编辑

;;;;
(defun c:ktj1 ()
(setq st t)
(while st
(while(not (setq st (entsel "\n请选择一个块作为统计的块名:"))))
            (if(= (cdr (assoc '0 (entget (car st)))) "INSERT")
               (progn
               (setq blockname (cdr (assoc '2 (entget (car st)))))
               (setq st nil)
               )
               (princ "\n未选择到块!")
            )               
)

(princ (strcat "\n选择块" blockname ""))

(alert"\n图块已选择,请选择你要框选的范围:")

(setq ss (ssget '((0 . "insert")));;;;;;;;;;;;;;;;;;;【【【【就是这里该怎么修改才能只选中blockname这个名字的】
       )
(if (= ss nil) ())
(setq n 0 m 0)
(while (and ss (< n (sslength ss)))
         (setq ssn (ssname ss n))
         (if (= (cdr (assoc '0 (entget ssn))) "INSERT")
               (progn
            (setq blockname1 (cdr (assoc '2 (entget ssn))))            
            (if (= blockname blockname1)
                  (setq m (+ m 1))
            )
            )
            )
            (setq n (+ n 1))
)
(print(strcat ">>>>>>>>找到" "["blockname"]" "共:" (rtos m 2 0) "个"))
(print)


)

xyp1964 发表于 2019-1-30 20:45:14

;; 块统计
(defun c:tt ()
(defun xyp-dxf (code e) (cdr (assoc code (entget e))))
(while (or (not (setq s1 (car (entsel "\n请参照块名: "))))
             (not (= (xyp-DXF 0 s1) "INSERT"))
       )
)
(setq bn (xyp-DXF 2 s1))
(princ "\n图块已选择,请选择你要框选的范围: ")
(if (setq ss (ssget (list '(0 . "INSERT") (cons 2 bn))))
    (print (strcat ">>找到块"
                   "["
                   bn
                   "]"
                   "共: "
                   (rtos (sslength ss) 2 0)
                   "个"
           )
    )
)
(print)
)

yjpyjp 发表于 2019-1-30 20:53:42

xyp1964 发表于 2019-1-30 20:45


谢谢!!!!

664571221 发表于 2019-1-31 09:51:26

yjpyjp 发表于 2019-1-30 20:53
谢谢!!!!

不用谢。。。。。。。。。。。。。。
页: [1]
查看完整版本: 请问怎么修改这个源代码才能让我选择的时候只选中上面已经选中的