这将把选定的对象深度克隆到新布局:
- ;; lay = New Layout Name (Will be Created if non-existent)
- (defun CopytoLayout (lay / ss NewLay ObjLst)
- (vl-load-com)
- ; Lee Mac ~ 27.01.10
- (setq *acad* (cond (*acad*) ((vlax-get-acad-object)))
- *adoc* (cond (*adoc*) ((vla-get-ActiveDocument *acad*))))
- (cond ( (not (snvalid lay)))
- ( (ssget)
- (vlax-for obj (setq ss (vla-get-ActiveSelectionSet *adoc*))
- (setq ObjLst (cons Obj ObjLst)))
- (vla-delete ss)
- (if (vl-catch-all-error-p
- (setq NewLay (vl-catch-all-apply
- (function vla-item)
- (list (vla-get-Layouts *adoc*) lay))))
-
- (setq NewLay (vla-Add (vla-get-Layouts *adoc*) lay)))
- (vla-CopyObjects *adoc*
-
- (vlax-make-variant
- (vlax-safearray-fill
- (vlax-make-safearray vlax-vbObject
- (cons 0 (1- (length ObjLst))))
-
- (reverse ObjLst)))
-
- (vla-get-Block NewLay)))))
|