Code:
(defun c:test ( / )
(JBf_Plotter:MediaName:List:WithSize)
);;;GrößenListe anhand der MediaNameList für aktuelles Layout
(defun JBf_Plotter:MediaName:List:WithSize ( / ACTIVEDOCUMENT CONFIGNAME
CONFIGSIZELIST HEIGTH
LAYOUT MEDIANAME MEDIANAMECURRENT
WIDTH)
(setq MediaNameCurrent (JBf_Plotter:CanonicalMediaName:Get nil))
(setq ActiveDocument (JBf_Plotter:ActiveDocument)
layout(JBf_Plotter:Layout ActiveDocument nil))
(setq ConfigSizeList(mapcar '(lambda(MediaName)
(vla-put-CanonicalMediaName layout MediaName)
(vla-RefreshPlotDeviceInfo
(vla-get-activelayout ActiveDocument))
(vla-GetPaperSize layout 'Width 'Heigth)
(list MediaName (list Width Heigth)))
(JBf_Plotter:ConfigName:List nil)))
;;;alten Namen wieder herstellen
(vla-put-CanonicalMediaName layout MediaNameCurrent)
(vla-RefreshPlotDeviceInfo
(vla-get-activelayout ActiveDocument))
ConfigSizeList)
;;;ActiveDocument
(defun JBf_Plotter:ActiveDocument ( / ActiveDocument)
(setq ActiveDocument (vla-get-activedocument (vlax-get-acad-object)))
(vla-RefreshPlotDeviceInfo
(vla-get-activelayout ActiveDocument))
ActiveDocument)
;;;Layout über LayoutName oder Current
(defun JBf_Plotter:Layout (ActiveDocument LayoutName / )
(if LayoutName
(vla-item (vla-get-layouts ActiveDocument) LayoutName)
(vla-get-activelayout ActiveDocument)
)
)
;;;Eine Liste mit allen Papierformaten zum aktuellen Layout oder,
;;;wenn Layoutname gesetzt muss es nicht das Aktuelle sein.
;;;wenn kein Plotter gesetzt ist wird grundsätzlich NIL zurückgegeben
(defun JBf_Plotter:ConfigName:List (LayoutName / ACTIVEDOCUMENT LAYOUT)
(setq ActiveDocument (JBf_Plotter:ActiveDocument)
layout(JBf_Plotter:Layout ActiveDocument LayoutName))
(vlax-safearray->list
(vlax-variant-value(vla-GetCanonicalMediaNames layout)))
)
;;;PapierName aus aktuellem TAB (Model oder Layout) zurückgeben
(defun JBf_Plotter:CanonicalMediaName:Get(LayoutName / ACTIVEDOCUMENT LAYOUT)
(setq ActiveDocument (JBf_Plotter:ActiveDocument)
layout(JBf_Plotter:Layout ActiveDocument LayoutName))
(vla-get-CanonicalMediaName layout)
)