我是看不懂, 好半天才把括号给对起来
 - (defun C:COPY_2_OTHER_DWG (/ DOC LST N NEWDWG SS NAME)
- (vl-load-com)
- (if
- (and
- (setq SS (ssget (list (cons 410 (getvar "ctab")) (cons 0 (strcat "~" "VIEWPORT")))))
- (setq NAME (getfiled "Start DWG" (getvar "ACADPREFIX") "dwg" 8))
- (setq NAME (findfile NAME))
- )
- (progn
- (setq N -1 DOC (vla-get-activedocument (vlax-get-acad-object))
- NEWDWG (vla-open (vla-get-documents (vlax-get-acad-object)) NAME)
- )
- (repeat
- (sslength SS)
- (setq LST
- (cons (vlax-ename->vla-object (ssname SS (setq N (1+ N)))) LST)
- )
- )
- (vla-copyobjects DOC
- (vlax-safearray-fill (vlax-make-safearray vlax-vbobject (cons 0 (1- (length LST)))) LST)
- (if
- (equal (getvar "ctab") "Model")
- (vla-get-modelspace NEWDWG)
- (vla-get-paperspace NEWDWG)
- )
- )
- (vla-saveas NEWDWG NAME acnative)
- (vla-close NEWDWG)
- (vlax-release-object DOC)
- (vlax-release-object EWDWG)
- )
- )
- (princ)
- )
|