CAD中好像没发现,自己写了个,应该可以满足要求:
(defun C:InsertAllBlock (/ AcadObject AcadDocument mSpace blkColl insertionPnt
Name blockRefObj
)
;;; 这个范例先使用Blocks属性来找出图块集合
;;; 接着将新的图块添加到图块集合
(VL-LOAD-COM)
(setq AcadObject (vlax-get-acad-object)
AcadDocument (vla-get-ActiveDocument AcadObject)
mSpace (vla-get-ModelSpace AcadDocument)
)
;;; 取得Blocks 集合
(setq blkColl (vla-get-Blocks AcadDocument))
;;; 定义新图块的插入点
(setq insertionPnt (vlax-make-safearray vlax-vbDouble '(0 . 2)))
(vlax-safearray-fill insertionPnt '(0 0 0))
;;; 插入图块
(vlax-for BLK blkColl
(if (not (wcmatch (setq Name (strcase (vla-get-name BLK))) "*`**"))
(setq blockRefObj (vla-InsertBlock mSpace insertionPnt Name 1 1 1 0))
)
)
(princ)
) |