Forum:Inventor
Thema:VBA: Event beim Drucken ansto��en
Möchten Sie sich registrieren?
Wer darf antworten? Registrierte Benutzer können Beiträge verfassen.
Hinweise zur Registrierung Sie müssen registriert sein, um Beiträge oder Antworten auf Beiträge schreiben zu können.
Ihr Benutzername:
Ihr Kennwort:   Kennwort vergessen?
Anhang:    Datei(en) anhängen  <?>   Anhänge verwalten  <?>
Grafik für den Beitrag:                                                
                                                       
Ihre Antwort:

Fachbegriff
URL
Email
Fett
Kursiv
Durchgestr.
Liste
*
Bild
Zitat
Code

*HTML ist AUS
*UBB-Code ist AN
Smilies Legende
Netiquette

10 20 40

Optionen Smilies in diesem Beitrag deaktivieren.
Signatur anfügen: die Sie bei den Voreinstellungen angegeben haben.

Wenn Sie bereits registriert sind, aber Ihr Kennwort vergessen haben, klicken Sie bitte hier.

Bitte drücken Sie nicht mehrfach auf "Antwort speichern".

*Ist HTML- und/oder UBB-Code aktiviert, dann können Sie HTML und/oder UBB Code in Ihrem Beitrag verwenden.

T H E M A     A N S E H E N
bwr

Beiträge: 123 / 0

Win7 64-bit NVIDIA Quadro K4000
Inventor 2015

Hallo,

ich kann rkauskh nur bestätigen. Ein entsrechends onPrintEvent gibt es nicht. Man kann nur den entsrechenden Command abfangen und darauf entsprechend reagieren. Solch ein Addin ist nicht besonders komplex und ich würde mich nicht davor fürchten. Ich habe aber vermutlich auch andere Voraussetungen.
Eine Alternative wäre evt. ein Druck-Makro mit dem deine Kollegen die Zeichnungen ausdrucken. Darin kann man dann noch ein paar Zeilen Code einbauen, die sich um das Druckdatum kümmern. Hier ist ein Ansatz, der bei mir verwendet wird. Da habe ich ein paar Schalter in die Benutzerbefehle gemacht und seitdem druckt keiner mehr über den Inventor-Druck-Dialog.

Code:

Public Sub DruckenHP_A3()
    ' hier Druckername wie iin Windows bei den Geräten angeben
    Call Drucken("HP LaserJet 5200 PCL 6", kPaperSizeA3, kPaperSizeA3)
End Sub

Public Sub DruckenHP_A4()
    Call Drucken("HP LaserJet 5200 PCL 6", kPaperSizeA3, kPaperSizeA4)
End Sub

Private Sub Drucken(sPrinterName As String, maxPaperSize As PaperSizeEnum, PaperSize As PaperSizeEnum)
    'Print all sheets in drawing document
    'Get the active document and check whether it's drawing document
    If ThisApplication.ActiveDocument.DocumentType = kDrawingDocumentObject Then
   
        Dim oDrgDoc As DrawingDocument
        Set oDrgDoc = ThisApplication.ActiveDocument
   
        ' Set reference to drawing print manager
        ' DrawingPrintManager has more options than PrintManager
        ' as it's specific to drawing document
        Dim oDrgPrintMgr As DrawingPrintManager
        Set oDrgPrintMgr = oDrgDoc.PrintManager
        ' Set the printer name
        ' comment this line to use default printer or assign another one
        oDrgPrintMgr.Printer = sPrinterName
   
        oDrgPrintMgr.PrintRange = kPrintCurrentSheet
        'Set the paper size
        'PaperSizeEnum  A0 9993
        '              A1 9994
        '              A2 9995
        '              A3 9996
        '              A4 9997
       
        On Error Resume Next
       
        If PaperSize > maxPaperSize Then
            oDrgPrintMgr.PaperSize = PaperSize
        Else
            oDrgPrintMgr.PaperSize = maxPaperSize
        End If
       
        'ist Zeichnungsformat größer als gew. Blattformat
        If oDrgDoc.ActiveSheet.Size < oDrgPrintMgr.PaperSize Then
            oDrgPrintMgr.ScaleMode = kPrintBestFitScale
        ElseIf oDrgDoc.ActiveSheet.Size = oDrgPrintMgr.PaperSize Then
            oDrgPrintMgr.ScaleMode = kPrintCustomScale
            oDrgPrintMgr.[Scale] = 1
        Else: Debug.Print "ungültiges Papierformat"
        End If
       
        oDrgPrintMgr.AllColorsAsBlack = True
        oDrgPrintMgr.Rotate90Degrees = False
        oDrgPrintMgr.RemoveLineWeights = False
       
        'Set the paper orientation
        On Error Resume Next
        Select Case oDrgDoc.ActiveSheet.Orientation
            Case kLandscapePageOrientation
                oDrgPrintMgr.Orientation = kLandscapeOrientation
            Case kPortraitPageOrientation
                oDrgPrintMgr.Orientation = kPortraitOrientation
            Case Else    ' Andere Werte.
                Debug.Print "ungültige Orientierung"
        End Select
        oDrgPrintMgr.SubmitPrint
    End If
End Sub


------------------
Grüße
Andreas
etaCAD