mit VBA alle Blattmodelle nach PDF drucken


  
 Bezieht sich auf 
  
 Produkt(e):MicroStation
 Version(en):08.11.09.578
 Umgebung: N\A
 Produktbereich: Programmierung
 Produktunterbereich: VBA
 Ursprünglicher Autor:Artur Goldsweer, Bentley Technical Support Group
  

Es sollen per VBA alle vorhandenen Blattmodelle einer Zeichnung nach PDF gedruckt werden.
Im folgenden Beispiel wird ein solcher Ansatz gezeigt. Als Voraussetzung wird angenommen, dass als Druckertreiber das Drucken nach PDF voreingestellt ist.
 

Sub PlotAllerBlattmodelle()
Dim oMod As ModelReference
Dim Dateiname As String
Dim PDFDateiname As String

' Festlegung des Ausgabeverzeichnisses:
If ActiveWorkspace.IsConfigurationVariableDefined("MS_PLTFILES") Then
    Dateiname = ActiveWorkspace.ConfigurationVariableValue("MS_PLTFILES")
    Dateiname = Dateiname + ActiveDesignFile.Name
Else
    Dateiname = ActiveDesignFile.FullName
End If

' Druckdialog öffnen, damit die "Print" Befehle geladen werden:
CadInputQueue.SendCommand "DIALOG PLOT"
    
' jedes einzelne Blattmodell drucken:
For Each oMod In ActiveDesignFile.Models
    If oMod.Type = msdModelTypeSheet Then
        oMod.Activate
        ' Ausgabedateiname orientiert sich an Zeichnungsnamen + Modellname:
        PDFDateiname = Dateiname + "--" + oMod.Name + ".PDF"
        ' Drucken in Datei:
        CadInputQueue.SendCommand "print execute " + PDFDateiname
    End If
Next
End Sub

Zur Festlegung des Ausgabeverzeichnisses wird geprüft, ob die Variable MS_PLTFILES definiert ist.
Wenn ja, dann wird der Pfad zur Ausgabe verwendet. Der Dateiname der PDF Datei setzt sich in dem Beispiel aus dem Zeichnungsnamen + Modellnamen zusammen.

Gedruckt werden schließlich nur Blattmodelle, alle anderen Modelle werden beim Drucken ignoriert.

Erweiterung vom 7.11.17:

Das Drucken pauschal aller Modelle ist sicher nicht unbedingt immer gewünscht. Auf Anfrage ist dieses Beispiel erweitert worden um eine zweite Subroutine, die zunächst einmal eine Auflistung aller vorhandener Blatmodelle der aktiven Zeichnung zeigt, aus der dann die gewünschten Modelle für den Druck ausgewählt werden können. Der Dialog sieht etwa so aus, wenn alle Modelle ausgewählt wurden:

Das VBA Projekt inklusive der beiden Varianten liegt hier zum Download:

communities.bentley.com/.../PlotModelle.zip