cq_qg 发表于 2007-8-21 16:36:14

显示图形中全部的块

显示图形中全部的块

在一个图形中定义了很多块,但是没有全部插入
有没有什么命令可以一下子插入全部的块?

小鱼儿 发表于 2007-9-8 11:01:25

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)
)
页: [1]
查看完整版本: 显示图形中全部的块