- (defun make*ublock(obj / blockobj)
- (setq blockobj (vla-add (vla-get-blocks acaddocument) (vlax-3d-point (list 0 0 0)) "*u" ))
- (vla-copyobjects acaddocument
- (vlax-safearray-fill
- (vlax-make-safearray vlax-vbobject (cons 0 0) )
- (list obj)
- )
- blockobj
- )
- (vla-delete obj)
- (vla-get-name blockobj)
- )
- (setq acadobject (vlax-get-acad-object)
- acaddocument (vla-get-activedocument acadobject)
- mspace (vla-get-modelspace acaddocument)
- )
- (setq nent (nentsel "\nSelect Nested Objects:"))
- (entmake (entget (car nent)))
- (setq objent (vlax-ename->vla-object (entlast))i 0)
- (foreach n (last nent)
- (setq obj (vlax-ename->vla-object n))
- (setq blockrefobj
- ( vla-insertblock
- mspace
- (vla-get-insertionpoint obj)
- (make*ublock objent)
- (vla-get-xscalefactor obj)
- (vla-get-yscalefactor obj)
- (vla-get-zscalefactor obj)
- (vla-get-rotation obj)
- )
- )
- (setq i (1+ i))
- (if(> i 1) (command "_.explode" (entlast)))
- (setq objent(vlax-ename->vla-object (entlast)))
- )
见附件。
从块“12”复制嵌套对象是正常的。在原始位置复制对象。
但从块“34”复制嵌套对象有问题。复制对象,而不是在原始位置。
为什么?如何修复?
测试3.dwg |