块添子实体
请问如何实现把选择集内的实体添加到已知块中?谢谢。。。。。请给我讲讲实现的方法,有代码就最好了。。。。 <P>参考这个程序</P><P> ;BLK:MAKE-BLOCK_______________________________________________<BR> ;Creates a block out of list of vla-objects<BR> ;Arguments<BR> ; 1) insertion point <(x y z)><BR> ; 2) block name <string><BR> ; 3) list of entities as vla-objects<BR> ; 4) document object<BR> ; 5) Use "*u" as the blockname argument to this function<BR> ; TO MAKE AN UNNAMED BLOCK</P>
<P>(defun blk:make-block (ip blockname vla-objects doc / blkobj sArray)<BR> (setq<BR> blkobj (vla-add (vla-get-blocks doc) (vlax-3d-point ip) blockname)<BR> sArray<BR> (vlax-safearray-fill<BR> (vlax-make-safearray<BR> vlax-vbObject<BR> (cons 0 (1- (length vla-objects)))<BR> )<BR> vla-objects<BR> )<BR> )<BR> (vla-copyobjects doc sArray blkobj)<BR> blkobj<BR>)<BR>;;;将选择集换成对象表<BR>(defun selectionset->vla-object-list (sset / thelist idx)<BR> (setq thelist '()<BR> idx -1<BR> )<BR> (repeat (sslength sset)<BR> (setq thelist (append thelist<BR> (list (vlax-ename->vla-object<BR> (ssname sset (setq idx (1+ idx)))<BR> )<BR> )<BR> )<BR> )<BR> )<BR>)<BR>;;;</P> 我要的是把一个实体添加到一个已经定义好的块中,就是我先前已经做好一个块了, 但是后来我想把一个实体舔加到这个块中。
re
<P>双击块就可以编辑了(02以后的版本)(在以前的帖子中,飞板主讲过的)</P> <P>Almost there...:)</P><P>(defun c:Add2Block(/ blkobj sArray blockname vla-objects)<BR> (setq doc (vla-get-activedocument (vlax-get-acad-object)))<BR> (princ "\Please select the object to add into a block....")<BR> (setq vla-objects (selectionset->vla-object-list (ssget)))<BR> (setq blockname (cdr (assoc 2 (entget (car (entsel "\nSelect a block: "))))))<BR> (setq<BR> blkobj (vla-item (vla-get-blocks doc) blockname)<BR> sArray<BR> (vlax-safearray-fill<BR> (vlax-make-safearray<BR> vlax-vbObject<BR> (cons 0 (1- (length vla-objects)))<BR> )<BR> vla-objects<BR> )<BR> )<BR> (vla-copyobjects doc sArray blkobj)<BR> (mapcar 'vla-delete vla-objects)<BR> (vla-regen doc :vlax-true)<BR>)<BR>;;;?????????<BR>(defun selectionset->vla-object-list (sset / thelist idx)<BR> (setq thelist '()<BR> idx -1<BR> )<BR> (repeat (sslength sset)<BR> (setq thelist (append thelist<BR> (list (vlax-ename->vla-object<BR> (ssname sset (setq idx (1+ idx)))<BR> )<BR> )<BR> )<BR> )<BR> )<BR>)<BR></P> <P>不行啊,把实体给弄飞了,再也找不到了..................................................</P> <P>还需要一个变换。。。</P> <P>这样才行。。。</P> no function definition: LLDET:INVERSE
页:
[1]