| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY bietet das umfangreichste Ökosystem von B2B als auch B2C-Lösungen für IT-Akteure auf dem Markt, eine Pressemitteilung
|
Autor
|
Thema: ein kleines Druck-plugin (7534 mal gelesen)
|
Schattenbacke Mitglied Dipl.-Ing (FH)
Beiträge: 114 Registriert: 28.01.2009 Dell Precision T3500 Productstream Professional Easy 2011 Autodesk Inventor 2016
|
erstellt am: 27. Feb. 2009 16:06 <-- editieren / zitieren --> Unities abgeben:
Hallo, habe ein kleines Progrämmchen geschrieben zum ausdrucken. Man hat 5 Knöpfe: • PDF: PDF erzeugen • DruckenA4: alles auf A4 drucken • DruckenA3: A4 --> A4; A3-A0 --> A3 • KombiA4: PDF & DruckenA4 • KombiA3: PDF & DruckenA3 Ihr müsst "XXXXXXX" durch euren Papierdruckernamen ersetzen. Als PDF-Drucker habe ich PDFCreator genommen. Dort könnt ihr bei den Einstellungen des PDFCreators unter "Automatisches Speichern" unter "Dateiname" "<REDMON_DOCNAME>" eintragen und einen speziellen PDF-Pfad, so funktioniert alles automatisch ohne jede Nachfrage. Natürlich könnt ihr das alles individualisieren. Was ich noch dazuprogrammieren möchte ist, dass er alle offenen Dokumente druckt und dass er die Dokumente im Quellverzeichnis als PDF speichert bzw. in einem dortigen Unterordner namens "PDF". Bin aber noch Anfänger im Programmieren und habe noch keine Erfahrung. Vielleicht kann mir ja jemand ein paar Tips diesbzgl. geben? Code: Sub KombiA3() PDF DruckenA3 End Sub Sub KombiA4() PDF DruckenA4 End SubPublic Sub PDF() '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 = "PDFCreator" oDrgPrintMgr.PrintRange = kPrintAllSheets 'Set the paper size and scale On Error Resume Next Select Case oDrgDoc.ActiveSheet.Size Case kA4DrawingSheetSize oDrgPrintMgr.PaperSize = kPaperSizeA4 oDrgPrintMgr.ScaleMode = kPrintCustomScale oDrgPrintMgr.[Scale] = 1 Case kA3DrawingSheetSize oDrgPrintMgr.PaperSize = kPaperSizeA3 oDrgPrintMgr.ScaleMode = kPrintCustomScale oDrgPrintMgr.[Scale] = 1 Case kA2DrawingSheetSize oDrgPrintMgr.PaperSize = kPaperSizeA2 oDrgPrintMgr.ScaleMode = kPrintCustomScale oDrgPrintMgr.[Scale] = 1 Case kA1DrawingSheetSize oDrgPrintMgr.PaperSize = kPaperSizeA1 oDrgPrintMgr.ScaleMode = kPrintCustomScale oDrgPrintMgr.[Scale] = 1 Case kA0DrawingSheetSize oDrgPrintMgr.PaperSize = kPaperSizeA0 oDrgPrintMgr.ScaleMode = kPrintCustomScale oDrgPrintMgr.[Scale] = 1 Case Else ' Andere Werte. Debug.Print "ungültiges Papierformat" End Select '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 Public Sub DruckenA3() '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 = "XXXXXXX" oDrgPrintMgr.PrintRange = kPrintAllSheets 'Set the paper size and scale On Error Resume Next Select Case oDrgDoc.ActiveSheet.Size Case kA4DrawingSheetSize oDrgPrintMgr.PaperSize = kPaperSizeA4 oDrgPrintMgr.ScaleMode = kPrintCustomScale oDrgPrintMgr.[Scale] = 1 Case kA3DrawingSheetSize oDrgPrintMgr.PaperSize = kPaperSizeA3 oDrgPrintMgr.ScaleMode = kPrintCustomScale oDrgPrintMgr.[Scale] = 1 Case kA2DrawingSheetSize oDrgPrintMgr.PaperSize = kPaperSizeA3 oDrgPrintMgr.ScaleMode = kPrintBestFitScale Case kA1DrawingSheetSize oDrgPrintMgr.PaperSize = kPaperSizeA3 oDrgPrintMgr.ScaleMode = kPrintBestFitScale Case kA0DrawingSheetSize oDrgPrintMgr.PaperSize = kPaperSizeA3 oDrgPrintMgr.ScaleMode = kPrintBestFitScale Case Else ' Andere Werte. Debug.Print "ungültiges Papierformat" End Select '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 Public Sub DruckenA4() '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 = "XXXXXXX" oDrgPrintMgr.PrintRange = kPrintAllSheets 'Set the paper size and scale On Error Resume Next Select Case oDrgDoc.ActiveSheet.Size Case kA4DrawingSheetSize oDrgPrintMgr.PaperSize = kPaperSizeA4 oDrgPrintMgr.ScaleMode = kPrintCustomScale oDrgPrintMgr.[Scale] = 1 Case kA3DrawingSheetSize oDrgPrintMgr.PaperSize = kPaperSizeA4 oDrgPrintMgr.ScaleMode = kPrintBestFitScale Case kA2DrawingSheetSize oDrgPrintMgr.PaperSize = kPaperSizeA4 oDrgPrintMgr.ScaleMode = kPrintBestFitScale Case kA1DrawingSheetSize oDrgPrintMgr.PaperSize = kPaperSizeA4 oDrgPrintMgr.ScaleMode = kPrintBestFitScale Case kA0DrawingSheetSize oDrgPrintMgr.PaperSize = kPaperSizeA4 oDrgPrintMgr.ScaleMode = kPrintBestFitScale Case Else ' Andere Werte. Debug.Print "ungültiges Papierformat" End Select '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
Ich wünsch euch viel Spaß und freue mich auf Feedback Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Duc-men Mitglied Freiberufler Konstrukteur
Beiträge: 68 Registriert: 04.02.2009 HP 8710M 4Gb RAM VISTA Win.2000/xp Inventor 10 und 2009.<P>Ducati 851 und 900ss
|
erstellt am: 09. Apr. 2009 08:47 <-- editieren / zitieren --> Unities abgeben: Nur für Schattenbacke
hallo, ich würde es so gerne mal probieren , ich weiß aber leider nicht wie ich es einzetsen kann bzw. wie ich das auf irgendeine weiße zum laifen bringe. Kan mir eine dabei helfen. gibt es eine anweißunf wo das geschrieben steht? Welcher version? ich habe 10 und 2009 würde mich freuen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2580 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 09. Apr. 2009 19:13 <-- editieren / zitieren --> Unities abgeben: Nur für Schattenbacke
Hallo Ich probier's mal. 1. Falls noch nicht geschehen PDF-Creator hier herunterladen. 2. Mit PDF-Creator einen PDF-Drucker erstellen (Name: PDFCreator) 3. Inventor 2009 öffnen (ob der 10er das folgende schon konnte kann ich nicht sagen) 4. Mit Alt+F11 den VBA-Editor öffnen 5. Im Anwendungsprojekt ein neues Modul einfügen (Name könnte "Drucker" lauten) 6. Den geposteten Code per Copy&Paste in das Modul einfügen. 7. Die XXXXX mit dem Namen deines Papierdruckers ersetzen. 8. Zum Testen, den Cursor in die entsprechende Sub stellen und oben in der Symbolleiste den Play-Knopf drücken. 9. Wenn alles läuft kannst du dir für den jeweiligen Drucker einen Button im Inventor einfügen. Anleitung dazu inkl. eigenem Icon steht hier irgendwo. ------------------ MfG RK [Diese Nachricht wurde von rkauskh am 09. Apr. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Schattenbacke Mitglied Dipl.-Ing (FH)
Beiträge: 114 Registriert: 28.01.2009 Dell Precision T3500 Productstream Professional Easy 2011 Autodesk Inventor 2016
|
erstellt am: 14. Apr. 2009 07:05 <-- editieren / zitieren --> Unities abgeben:
|
KAME Mitglied techn. Angestellter
Beiträge: 152 Registriert: 21.06.2006
|
erstellt am: 04. Feb. 2010 12:24 <-- editieren / zitieren --> Unities abgeben: Nur für Schattenbacke
Hallo Leute, hab das makro mal bei mir getestet und etwas angeglichen -A3 und A4 in sw hinzugefügt -kombi für pdf_farbe und drucker_sw -beim pdf (freepdf xp) die diversen blätter gedreht nun ist mir aufgefallen, dass wenn mehrere verschiedengroße blätter in der zeichnung sind, diese mit dem aktiven blattformat im pdf sind gibts da was, dass er jedes blatt auf die größe prüft? kann da wer helfen
------------------ mfg Ronald Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2580 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 04. Feb. 2010 19:39 <-- editieren / zitieren --> Unities abgeben: Nur für Schattenbacke
Hallo Code: oDrgPrintMgr.PrintRange = kPrintAllSheets
ersetzen durch activesheet und jedes Blatt einzeln aktivieren und drucken. Dann im FreePDF Multidocument nach jedem Blatt anklicken und nach dem Drucken als ein PDF abspeichern. Ganz automatisch geht's mit einfachen Mitteln nicht. ------------------ MfG RK Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Schattenbacke Mitglied Dipl.-Ing (FH)
Beiträge: 114 Registriert: 28.01.2009 Dell Precision T3500 Productstream Professional Easy 2011 Autodesk Inventor 2016
|
erstellt am: 21. Jan. 2011 13:52 <-- editieren / zitieren --> Unities abgeben:
Hallo, Anhang ist eine jpg. Mein Skript nutze ich nun in einer neuen Firma. Nur hier funktioniert das mit dem Drucken nicht mehr. Siehe Fehlermeldung. Unterschied wird sein, dass es sich um einen Netzwerkdrucker handelt und nicht mehr um einen lokalen Drucker mit einer IP als Anschluss. Was muss man ändern?! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lu05 Mitglied Technischer Zeichner
Beiträge: 12 Registriert: 12.12.2010
|
erstellt am: 21. Jan. 2011 14:12 <-- editieren / zitieren --> Unities abgeben: Nur für Schattenbacke
|
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2580 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 23. Jan. 2011 20:21 <-- editieren / zitieren --> Unities abgeben: Nur für Schattenbacke
Hallo @Lu05 Code lesen würde helfen. Zitat: ' Set the printer name ' comment this line to use default printer or assign another one oDrgPrintMgr.Printer = "PDFCreator"
@Schattenbacke Kannst du mal versuchen, statt nur dem Druckernamen, mal den Namen der Druckerwarteschlange zu benutzen. Ich vermute euer Netzwerkdrucker hängt nicht direkt im Netz. Schau mal in den Druckereigenschaften unter Anschluß, ob dort sowas wie "\\printserver\druckername" steht und teste das mal. ------------------ MfG RK Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lu05 Mitglied Technischer Zeichner
Beiträge: 12 Registriert: 12.12.2010
|
erstellt am: 24. Jan. 2011 10:56 <-- editieren / zitieren --> Unities abgeben: Nur für Schattenbacke
Gut vielleicht hab ich mein Problem nicht ganz so ausführlich erklärt. Sorry. In meinem Betrieb gibts mehrere Netzwerkdrucker und in jeder Abteilung wird ein anderer Verwendet somit braucht jeder das auf sich angepasse Druck-Makro. Und es wäre einfach schon wenn man eins für alle nehmen könnte in dem ich nicht jeden Netzwerkdrucker extra auswähle sondern es selbst den in Windows verwendeten Standartdrucker des jeweiligen PC´s nimmt. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2580 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 24. Jan. 2011 18:12 <-- editieren / zitieren --> Unities abgeben: Nur für Schattenbacke
|
Schattenbacke Mitglied Dipl.-Ing (FH)
Beiträge: 114 Registriert: 28.01.2009 Dell Precision T3500 Productstream Professional Easy 2011 Autodesk Inventor 2016
|
erstellt am: 24. Jan. 2011 18:46 <-- editieren / zitieren --> Unities abgeben:
|
Lu05 Mitglied Technischer Zeichner
Beiträge: 12 Registriert: 12.12.2010
|
erstellt am: 24. Jan. 2011 19:57 <-- editieren / zitieren --> Unities abgeben: Nur für Schattenbacke
|
Bluejay Mitglied Ingenieur
Beiträge: 203 Registriert: 14.05.2007 Inventor 2011 for Simulation<P>Microsoft Windows XP Professional<P>Dell Precision T3400 Intel(R) Core(TM)2 Duo CPU E6750 @2,66 GHz 3,00 GB RAM
|
erstellt am: 04. Jan. 2012 10:37 <-- editieren / zitieren --> Unities abgeben: Nur für Schattenbacke
Hallo zusammen, ich weiß dieser Beitrag ist schon sehr alt aber ich habe zu diesem noch eine Frage. Und zwar schaffe ich es nicht dem Printmanager zu sagen das er das Blatt um 90 grad drehen soll Vielen Dank für alle Hilfe MFG
------------------ MFG BlueJay Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2580 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 04. Jan. 2012 12:45 <-- editieren / zitieren --> Unities abgeben: Nur für Schattenbacke
|
Bluejay Mitglied Ingenieur
Beiträge: 203 Registriert: 14.05.2007 Inventor 2011 for Simulation<P>Microsoft Windows XP Professional<P>Dell Precision T3400 Intel(R) Core(TM)2 Duo CPU E6750 @2,66 GHz 3,00 GB RAM
|
erstellt am: 04. Jan. 2012 13:06 <-- editieren / zitieren --> Unities abgeben: Nur für Schattenbacke
ACHTUNG! Sie antworten auf einen Beitrag der älter als 1 Jahr ist! Danke hat geklappt - nur erkennt er noch die Übergröße A2 meines Printers nicht - auch nicht mit der Funktion oDrgPrintMgr.PaperSize = kPaperSizeA2Oversize und auch nicht mit der custom papier größe?? Danke noch mal
------------------ MFG BlueJay Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bluejay Mitglied Ingenieur
Beiträge: 203 Registriert: 14.05.2007 Inventor 2011 for Simulation<P>Microsoft Windows XP Professional<P>Dell Precision T3400 Intel(R) Core(TM)2 Duo CPU E6750 @2,66 GHz 3,00 GB RAM
|
erstellt am: 05. Jan. 2012 08:13 <-- editieren / zitieren --> Unities abgeben: Nur für Schattenbacke
Guten Morgen zusammen, ich wollte noch einmal kurz das Problem erläutern was ich nicht gelöst bekomme. Wir haben einen Drucker der mit dem Formaten A2 und A1 in Übergröße druckt. Starte ich das Druckmakro scheint er dieses Format nicht zuerkennen denn er zentriert die Zeichnung nicht auf dem Papier? Ich habe es schon versucht mit der Eingabe von spezifischen Blattformaten oDrgPrintMgr.PaperSize = kPaperSizeCustom oDrgPrintMgr.PaperHeight = 45 oDrgPrintMgr.PaperWidth = 64.9 und mit der funktion oDrgPrintMgr.PaperSize = kPaperSizeA2Oversize beides scheint nicht zu funktionieren - was mache ich falsch oder gibt es noch andere Befehle mit dem ich die Zeichnung auf dem Papier ausrichten bzw. Zentrieren kann? Ich Danke für alle Hilfen MFG ------------------ MFG BlueJay [Diese Nachricht wurde von Bluejay am 05. Jan. 2012 editiert.] [Diese Nachricht wurde von Bluejay am 06. Jan. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cad-vr Mitglied
Beiträge: 3 Registriert: 26.08.2011
|
erstellt am: 29. Sep. 2014 11:31 <-- editieren / zitieren --> Unities abgeben: Nur für Schattenbacke
Hallo zusammen, ich wollte dieses Plugin auch als erleichterung beim Drucken nutzen, habe aber das Problem, dass immer der zuletzt verwendete Drucker genommen wird. Ich habe auch einen direkten Drucker angegeben aber es funktioniert nicht. Schön wäre, wenn er einfach den in Windows definierten Standarddrucker nehmen würde. Hat vielleicht jemand eine Idee.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
muellc Ehrenmitglied V.I.P. h.c. ICT Specialist
Beiträge: 3501 Registriert: 30.11.2006 Inventor 2017.4.12 64 bit Windows 10 Enterprise 64 bit 3DEXPERIENCE R2016x -------------------- HP Z-Book 15 G4 32 Gig Ram NVIDIA Quadro M2200 2x HP E243i
|
erstellt am: 29. Sep. 2014 11:41 <-- editieren / zitieren --> Unities abgeben: Nur für Schattenbacke
ACHTUNG! Sie antworten auf einen Beitrag der älter als 1 Jahr ist! Zitat:
' Set the printer name ' comment this line to use default printer or assign another one oDrgPrintMgr.Printer = "PDFCreator"
die dritte Zeile einfach auskommentieren, dann sollte es gehen: 'oDrgPrintMgr.Printer = "PDFCreator" ------------------ Gruß, Gandhi "Dem guten Frager ist schon halb geantwortet" - Friedrich Nietzsche Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cad-vr Mitglied
Beiträge: 3 Registriert: 26.08.2011
|
erstellt am: 29. Sep. 2014 12:06 <-- editieren / zitieren --> Unities abgeben: Nur für Schattenbacke
Danke für die schnelle Antwort, aber genau das habe ich probiert, es funktioniert nicht. Es funktioniert solange der genante Drucker im Printmanager im Inventor aktiv ist. Wenn ich aber noch eine andere Rutine für einen Plotter habe, wird der im Printmanager auf Aktiv gesetzt und schon druckt der immer darauf. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Schattenbacke Mitglied Dipl.-Ing (FH)
Beiträge: 114 Registriert: 28.01.2009 Dell Precision T3500 Productstream Professional Easy 2011 Autodesk Inventor 2016
|
erstellt am: 04. Jan. 2017 08:56 <-- editieren / zitieren --> Unities abgeben:
|
Schattenbacke Mitglied Dipl.-Ing (FH)
Beiträge: 114 Registriert: 28.01.2009 Dell Precision T3500 Productstream Professional Easy 2011 Autodesk Inventor 2016
|
erstellt am: 04. Jan. 2017 14:22 <-- editieren / zitieren --> Unities abgeben:
|