(defun c:IMPLAY (/ objarraydwgName dbxdocdbxLayers
adoc cnt count dbxLayernewpath
)
(vl-load-com)
(IF (NULL (getenv "IMPTPATH"))
(setenv "IMPTPATH" "c:/extras/templates")
)
(IF
(setq dwgName
(dos_getfiled
"Select a file"
(getenv "IMPTPATH")
"Drawing files (*.dwg)|*.dwg|Drawing Template files (*.dwt)|*.dwt|All files (*.*)|*.*||"
)
)
(PROGN
(setq newpath (vl-filename-directory dwgName))
(setq dbxDoc (vla-GetInterfaceObject
(vlax-get-acad-object)
(STRCAT "ObjectDBX.AxDbDocument."
(SUBSTR (GETVAR "ACADVER") 1 2)
)
)
)
(vlax-invoke dbxDoc "Open" dwgName)
(setq dbxLayers (vla-get-Layers dbxDoc)
adoc (vla-get-activedocument (vlax-get-acad-object))
count (vla-get-count dbxLayers)
cnt 0
layerLst'()
)
(repeat count
(setq
layerLst (cons (vla-get-name (vla-item dbxLayers cnt))
layerLst
)
)
(setq cnt (1+ cnt))
)
(SETQ layerlst (vl-sort layerlst '<))
(if (setq rtnlst (dos_multilist
"Import Layers"
"Select layers"
layerLst
'(0)
)
)
(progn
(foreach lay rtnlst
(setq dbxLayer (vla-item dbxLayers lay))
(setq objArray
(vlax-safearray-fill
(vlax-make-safearray vlax-vbObject '(0 . 0))
(list dbxLayer)
)
)
(vla-CopyObjects
dbxDoc
objArray
(vla-get-Layers adoc)
idpairs
)
) ; foreach
(princ
(strcat "\n* Layers imported from file [" dwgname "] *")
)
) ;progn
(princ "\nNo layer(s) imported. Function cancelled.")
) ; end if
(vlax-release-object dbxDoc)
;;(alert (strcat "Layers Imported from " dwgname))
(setenv "IMPTPATH" newpath)
(setq dbxDoc nil
dwgname nil
)
)
)
(princ)
)
(defun c:EXPLAY (/ objarraydbxLayers dwgNametmpName
adoc cnt count dbxLayernewpath
)
(vl-load-com)
(princ
"\nSelect layers to export...Enter to select from layer list"
)
(if (setq ss (ssget))
(progn
(setq idx 0
layerlst '()
)
(repeat (sslength ss)
(setq layerlst (cons (cdr (assoc 8 (entget (ssname ss idx))))
layerlst
)
)
(setq idx (1+ idx))
)
) ;
(setq layerlst (dos_layerlistbox
"AutoCAD Layers"
"Select one or more layers to export"
(+ 128 256)
)
)
)
(IF (NULL (getenv "IMPTPATH"))
(setenv "IMPTPATH" "c:/extras/templates")
)
(IF
(setq dwgName
(dos_getfiled
"Select a file"
(getenv "IMPTPATH")
"Drawing files (*.dwg)|*.dwg|Drawing Template files (*.dwt)|*.dwt|All files (*.*)|*.*||"
)
)
(PROGN
(setq newpath (vl-filename-directory dwgName))
(setq dbxDoc (vla-GetInterfaceObject
(vlax-get-acad-object)
(STRCAT "ObjectDBX.AxDbDocument."
(SUBSTR (GETVAR "ACADVER") 1 2)
)
)
)
(vlax-invoke dbxDoc "Open" dwgName)
(setq dbxLayers (vla-get-Layers dbxDoc)
adoc (vla-get-activedocument (vlax-get-acad-object))
)
(foreach lay layerlst
(setq aLayer (vla-item (vla-get-layers adoc) lay))
(setq objArray
(vlax-safearray-fill
(vlax-make-safearray vlax-vbObject '(0 . 0))
(list aLayer)
)
)
(vla-CopyObjects
adoc
objArray
dbxLayers
idpairs
)
) ; foreach
(vla-saveas
dbxDoc
(setq tmpname
(strcat (vl-filename-directory dwgName) "\\TEMP.dwg")
)
nil
)
(vlax-release-object dbxDoc)
(princ
(strcat "\n* Layers exported to file [" dwgname "] *")
)
(setenv "IMPTPATH" newpath)
(DOS_DELETE dwgName)
(dos_rename tmpname dwgName)
(setq dbxDoc nil
dwgname nil
)
) ; PROGN
) ; END IF
(princ)
)
mandala 发表于 2011-6-30 09:31 static/image/common/back.gif
介绍一个实用的办法:
新建一个空的dwg,把这些图层加入后保存。写一个pu.lsp,在pu之后插入这个dwg。
什么意思呀 没听懂 669423907 发表于 2011-6-30 12:50 static/image/common/back.gif
大师写的有条有里,我却看得云里雾里!
我也是 听不懂哦
页:
1
[2]