这是草稿:
- (defun SepLayout (blkname / adoc LayoutColl pt_list NewLayoutTab space ObjToMove safObjects MoveToLayout)
- (vl-load-com)
- (cond ((and
- (setq adoc (vla-get-activedocument (vlax-get-acad-object)))
- (= (vla-get-activespace adoc) 0)
- (= (vla-get-count (setq LayoutColl (vla-get-layouts adoc))) 2)
- (vlax-for
- objs (vla-get-paperspace adoc)
- (cond
- ((and
- (eq (vla-get-objectname objs) "AcDbBlockReference")
- (eq (vla-get-name objs) blkname)
- (setq pt_list
- (cons
- (vlax-safearray->list
- (variant-value
- (vlax-get-property objs 'insertionpoint)
- )
- )
- pt_list
- )
- )
- )
- )
- ) T
- )
- (repeat (setq i (1- (length pt_list)))
- (vla-add LayoutColl (setq NLNAme (strcat "NLayout " (itoa (setq i (1- i)))))
- )
- (setq NewLayoutTab (cons NLNAme NewLayoutTab ))
- )
- (foreach SpaceToMove NewLayoutTab
- (setq space (vla-item LayoutColl SpaceToMove))
- (ssget "_W" (car pt_list)
- (mapcar '+ (car pt_list) '(36.0 24.0)))[color=blue];<---size of Tblock[/color]
- (vlax-for x (setq ObjToMove (vla-get-activeselectionset aDoc))
- (setq MoveToLayout (cons x MoveToLayout)))
- (vla-delete ObjToMove)
- (vla-CopyObjects ADoc
- (vlax-make-variant
- (vlax-safearray-fill
- (vlax-make-safearray
- vlax-vbObject
- (cons 0 (1- (length MoveToLayout)))
- )
- MoveToLayout
- )
- )
- (vla-get-block space)
- )
- (foreach O MoveToLayout (vla-delete O))
- (setq pt_list (cdr pt_list) MoveToLayout nil)
- )
- )
- )
- )
- )
键入“LayoutCutter”开始。 |