Lee Mac 发表于 2022-7-5 20:36:37

很好的建议,帕特里克,谢谢

apsonwane 发表于 2022-7-5 20:39:36

谢谢Ronjon和Patrick,
 
现在这一切都很好。
只需在函数末尾添加2个括号)。
 
谢谢你的努力。

Ashishs 发表于 2022-7-5 20:41:52

可以在末尾添加计数结果吗-
“删除了名为“blockname”的XX块”?

Patrick_35 发表于 2022-7-5 20:46:57

 
你好
 
+

Ashishs 发表于 2022-7-5 20:48:04

 
嗨,帕特里克,
 
我在前面加了这个(princ)),给出了以下内容。错误
 
命令:delblk
指定块名:rev。
图纸包含81个块,名称为:rev。
删除所有或选举?:
; 错误:自动化错误。调用接口的方法附加项
IAcadSelectionSet失败
 
请给出建议。

Patrick_35 发表于 2022-7-5 20:52:39

你可以把你的Lisp程序放在网上。
 
@+

Ashishs 发表于 2022-7-5 20:56:33

 

(defun c: DELBLK (/ bdef blk ss tmp uss)
(vl-load-com)
(or *fil:del* (setq *fil:del* "All"))
(setq bdef (getvar "INSNAME"))
(while
   (progn
   (setq blk
       (getstring t
         (strcat "\nSpecify Block Name <" bdef ">: ")))
   (cond ((eq "" blk) (setq blk bdef) nil)
         ((not (snvalid blk))
            (princ "\n** Invalid Block Name **"))
         ((not (tblsearch "BLOCK" blk))
            (princ "\n** Block Not Found in Drawing **"))
         (t nil)))) ; Exit Loop
(if (setq ss (ssget "_X" (list (cons 0 "INSERT")
                              (cons 2 blk))))
   (progn
   (princ (strcat "\nDrawing Contains "
                  (rtos (sslength ss) 2 0) " Blocks with Name: " blk))
   (initget "All Selection")
   (or (not (setq tmp
                (getkword
                  (strcat "\nDelete ll or election? <" *fil:del* "> : "))))
         (setq *fil:del* tmp))
   (cond ((eq *fil:del* "Selection")
            (while (not uss)
            (setq uss (ssget (list (cons 0 "INSERT")
                                     (cons 2 blk)))))
            (setq ss uss)))
(mapcar    'vla-delete
   (mapcar 'vlax-ename->vla-object (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))))
)
    ))
(vla-get-count (vla-get-activeselectionset (vla-get-activedocument (vlax-get-acad-object))))
(princ))

Patrick_35 发表于 2022-7-5 20:59:32

6

Ashishs 发表于 2022-7-5 21:02:07

谢谢Patrick,
 
这是可行的,但还是有一些错误,
 
命令:DELBLK
 
指定块名:REV。
 
图纸包含34个块,名称为:REV。
删除所有或选举?:
 
删除34个对象。;错误:自动化错误。实体名称无效

Patrick_35 发表于 2022-7-5 21:05:11

我试过了,成功了
 
@+
页: 1 [2]
查看完整版本: 用于过滤特定blo的Lisp