再来个稍微复制点的.
 - ;xshrimp 2009.3.13
- (defun c:nn ( / acaddocument acadobject blockobj blockrefobj i mspace n nent obj objent)
- (VL-LOAD-COM)
- (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)
- )
- (if (= (length (setq nent (nentsel))) 4)
- (progn
- (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)))
- );end foreach
- (command "_.explode" (entlast))
- (sssetfirst nil (ssget "p"))
- )
- )
- (prin1)
- )
|