现在这一切都很好。
只需在函数末尾添加2个括号)。
谢谢你的努力。 可以在末尾添加计数结果吗-
“删除了名为“blockname”的XX块”?
你好
+
嗨,帕特里克,
我在前面加了这个(princ)),给出了以下内容。错误
命令:delblk
指定块名:rev。
图纸包含81个块,名称为:rev。
删除所有或选举?:
; 错误:自动化错误。调用接口的方法附加项
IAcadSelectionSet失败
请给出建议。 你可以把你的Lisp程序放在网上。
@+
(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))
6 谢谢Patrick,
这是可行的,但还是有一些错误,
命令:DELBLK
指定块名:REV。
图纸包含34个块,名称为:REV。
删除所有或选举?:
删除34个对象。;错误:自动化错误。实体名称无效 我试过了,成功了
@+
页:
1
[2]