复制具有属性的块
(defun C:cb ()
(setq blkent (car (entsel "Select block to Copy: "))
lstent (entget blkent))
(setq ptcpy (getpoint "Enter Point to copy: "))
(setq ptcpy (cons '10 ptcpy))
(setq lstnewent lstent)
(setq lstnewent (subst ptcpy (assoc 10 lstent) lstnewent))
(entmake (list (assoc 0 lstnewent)
(assoc 8 lstnewent)
(assoc 2 lstnewent)
(assoc 10 lstnewent)
(assoc 41 lstnewent)
(assoc 42 lstnewent)
(assoc 43 lstnewent)
(assoc 50 lstnewent)
))
)
我试图复制一个块,但仍然能够编辑属性(附加的是一个块)。我目前可以复制一个区块;但是当我尝试运行eattedit命令时,我得到了以下结果:“该块没有可编辑的属性。”我认为这可能与实体组代码330有关;但我不能确定。
我知道有复印功能;但我正在尝试对这个区块做其他事情,一旦它被复制。
有人有什么建议吗?
标志。图纸 插入后是否尝试过爆炸?
你可能会遇到一个街区中的街区。 我知道是VLA,但这有帮助吗?
(defun c:CB (/ #Block #Point)
(vl-load-com)
(and (setq #Block (car (entsel "\nSelect block to copy: ")))
(eq "INSERT" (cdr (assoc 0 (entget #Block))))
(setq #Point (getpoint "\nSpecify placement point: "))
(setq #Block (vla-copy (vlax-ename->vla-object #Block)))
(vla-move #Block
(vla-get-insertionpoint #Block)
(vlax-3d-point (trans #Point 0 1))
) ;_ vla-move
) ;_ and
(princ)
) ;_ defun
确保向插入数据添加顺序标志(66.1),以访问属性。然后必须添加属性实体定义。然后必须添加ENDBLK实体。这不是最干净的插入方式,但这是通过entmake实现的-大卫 谢谢大家的帮助。在所有的评论之后,我认为我可能会使用VLA代码,因为它似乎是最简单的。虽然,我不得不说,在AutoCAD中使用的所有代码中,VLA是目前我最难想到的一个。
听起来entmake命令可能只对LISP中的基本实体(即直线、多段线、圆、圆弧)有用
再次感谢。
页:
[1]