(defun c:Tabs->Drawings (/ ActDoc MsObjList PsObjList dbxApp oVer FirstPass)
(setq ActDoc (vla-get-ActiveDocument (vlax-get-Acad-Object)))
(vlax-for obj (vla-get-ModelSpace ActDoc)
(setq MsObjList (cons obj MsObjList))
)
(vlax-for lo (vla-get-Layouts ActDoc)
(if (/= (vla-get-Name lo) "Model")
(progn
(setq FirstPass T)
(vlax-for obj (vla-get-Block lo)
(if (not FirstPass)
(setq PsObjList (cons obj PsObjList))
(setq FirstPass nil)
)
)
(setq dbxApp
(if (< (atoi (setq oVer (substr (getvar "acadver") 1 2))) 16)
(vla-GetInterfaceObject (vlax-get-acad-object) "ObjectDBX.AxDbDocument")
(vla-GetInterfaceObject (vlax-get-acad-object) (strcat "ObjectDBX.AxDbDocument." oVer))
)
)
(vlax-invoke ActDoc 'CopyObjects MsObjList (vla-get-ModelSpace dbxApp))
(vlax-invoke ActDoc 'CopyObjects PsObjList (vla-get-PaperSpace dbxApp))
(vla-SaveAs dbxApp (strcat (vla-get-Path ActDoc) "\\" (vla-get-Name lo)))
(vlax-release-object dbxApp)
(setq dbxApp nil)
(setq PsObjList nil)
)
)
)
(princ)
)
(vla-put-name (vla-get-layout (vla-get-PaperSpace dbxApp)) (vla-get-name lo))
(vla-delete (vla-item (vla-get-layouts dbxApp) 1))
Roy,Thanks for mentioning this. I have corrected the code. In BricsCAD vla-save can be used as well.
Not sure about Briscad but in AutoCAD you have to use vla-saveas on a dbx doc.Code - Auto/Visual Lisp: [Select]
(vlax-dump-object (vla-getinterfaceobject (vlax-get-acad-object) "objectdbx.axdbdocument") T)
=>;
; Property values (IAxDbDocument) :
;
; Application (RO) = #<VLA-OBJECT IAcadApplication 0CA2A918>
; Database (RO) = #<VLA-OBJECT IAcadDatabase 0CBF6D94>
; Name =
;
; Methods supported (IAxDbDocument) :
;
; DxfIn (2)
; DxfOut (3)
; Open (2)
; Save ()
; SaveAs (2)
;
; Properties and Methods of associated Database object :
;
; IAcadDatabase 0cbf6d94 : Provides an interface to the database resident objects in an TeighaX document
;
; Property values :
;
; Blocks (RO) = #<VLA-OBJECT IAcadBlocks 0CAD7B60>
; Dictionaries (RO) = #<VLA-OBJECT IAcadDictionaries 0CBD0160>
; DimStyles (RO) = #<VLA-OBJECT IAcadDimStyles 0CBD01A0>
; ElevationModelSpace = 0.0
; ElevationPaperSpace = 0.0
; FileDependencies (RO) = #<VLA-OBJECT IAcadFileDependencies 0CBF74B8>
; Groups (RO) = #<VLA-OBJECT IAcadGroups 0CAD7AE0>
; Layers (RO) = #<VLA-OBJECT IAcadLayers 0CBD01E0>
; Layouts (RO) = #<VLA-OBJECT IAcadLayouts 0CAD7B20>
; Limits = (0.0 0.0 12.0 9.0)
; Linetypes (RO) = #<VLA-OBJECT IAcadLineTypes 0CBF8EB0>
; Materials (RO) = #<VLA-OBJECT IAcadMaterials 0CBF8F28>
; ModelSpace (RO) = #<VLA-OBJECT IAcadModelSpace 0CBF8FA0>
; PaperSpace (RO) = #<VLA-OBJECT IAcadPaperSpace 0CBF9018>
; PlotConfigurations (RO) = #<VLA-OBJECT IAcadPlotConfigurations 0CBF9090>
; Preferences (RO) = #<VLA-OBJECT IAcadDatabasePreferences 0CBF8F8C>
; RegisteredApplications (RO) = #<VLA-OBJECT IAcadRegisteredApplications 0CBF9108>
; SectionManager (RO) = NIL
; SummaryInfo (RO) = #<VLA-OBJECT IAcadSummaryInfo 0CBF907C>
; TextStyles (RO) = #<VLA-OBJECT IAcadTextStyles 0CBF9298>
; UserCoordinateSystems (RO) = #<VLA-OBJECT IAcadUCSs 0CBF92D8>
; Viewports (RO) = #<VLA-OBJECT IAcadViewports 0CBF93A8>
; Views (RO) = #<VLA-OBJECT IAcadViews 0CBF9420>
;
; Methods supported :
;
; CopyObjects (3)
; HandleToObject (1)
; ObjectIdToObject (1)
T