| | |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
|
Autor
|
Thema: API: installierte Drucker (3772 mal gelesen)
|
Stefan Ansgar Böttcher Mitglied Stundent und Hilfskraft in Konstr.Büro

 Beiträge: 62 Registriert: 15.07.2003
|
erstellt am: 14. Jan. 2005 17:36 <-- editieren / zitieren --> Unities abgeben:         
Hiho! Es gibt ja die Möglichkeit, mit printer = ModelDoc2.Printer herauszubekommen welcher Drucker grad standardmäßig eingestellt ist. Kann man auch irgendwie an alle Drucker kommen, die auf dem System verfügbar sind? Bin für jeden Tipp dankbar! tööö Ansgar
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
StefanBerlitz Guter-Geist-Moderator IT Admin (CAx)

 Beiträge: 8756 Registriert: 02.03.2000 SunZu sagt: Analysiere die Vorteile, die du aus meinem Ratschlag ziehst. Dann gliedere deine Kräfte entsprechend und mache dir außergewöhnliche Taktiken zunutze.
|
erstellt am: 14. Jan. 2005 19:16 <-- editieren / zitieren --> Unities abgeben:          Nur für Stefan Ansgar Böttcher
|
Stefan Ansgar Böttcher Mitglied Stundent und Hilfskraft in Konstr.Büro

 Beiträge: 62 Registriert: 15.07.2003
|
erstellt am: 21. Jan. 2005 21:38 <-- editieren / zitieren --> Unities abgeben:         
Hiho! Vielen Dank! Hab's hinbekommen! Jetzt hab ich aber das nächste Problem: meine Druckroutine lautet: Set swApp = Application.SldWorks Set Part = swApp.ActiveDoc ' Drucker setzen: Part.Printer = frmLinienstaerke.cmbDrucker.Text ' Format: pClass.vbPrinter.PaperSize = 8 pClass.vbPrinter.Orientation = 1 ' Landscape = 1, Portrait = 2 ' retval = swApp.swPrintProperties(swPrintPaperSize, 8) DebugMsg ("Aktiver Drucker ist: " & Part.Printer) ' Druckauftrag senden: retval = Part.PrintDirect Auf dem richtigen Drucker wird gedruckt, allerdings funktionieren meine Einstellungen für PaperSize und Orientation nicht...  pClass.vbPrinter kommt hierher: http://www.vbarchiv.net/archiv/tipp_782.html Hat irgendjemand ne Idee? töö Ansgar.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
StefanBerlitz Guter-Geist-Moderator IT Admin (CAx)

 Beiträge: 8756 Registriert: 02.03.2000 SunZu sagt: Analysiere die Vorteile, die du aus meinem Ratschlag ziehst. Dann gliedere deine Kräfte entsprechend und mache dir außergewöhnliche Taktiken zunutze.
|
erstellt am: 22. Jan. 2005 13:12 <-- editieren / zitieren --> Unities abgeben:          Nur für Stefan Ansgar Böttcher
Hallo Ansgar, ich vermute, dass mit PrintDirect die aktuellen Einstellungen von SolidWorks genutzt werden (also entweder Systemeinstellungen oder Dokumenteinstellungen). Die solltest du vorher auch noch von deinem Programm aus setzen, Stichworte hier sind: PageSetup.Orientation und PageSetup.PrinterPaperSize Ciao, Stefan ------------------ Inoffizielle deutsche SolidWorks Hilfeseite http://solidworks.cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stefan Ansgar Böttcher Mitglied Stundent und Hilfskraft in Konstr.Büro

 Beiträge: 62 Registriert: 15.07.2003
|
erstellt am: 28. Jan. 2005 17:17 <-- editieren / zitieren --> Unities abgeben:         
|
Stefan Ansgar Böttcher Mitglied Stundent und Hilfskraft in Konstr.Büro

 Beiträge: 62 Registriert: 15.07.2003
|
erstellt am: 18. Feb. 2005 17:25 <-- editieren / zitieren --> Unities abgeben:         
Hiho! Ich hab an dem Makro ein wenig weitergearbeitet und prinzipiell funktioniert nun. Genau gesagt funzt es auf 3 Rechner einwandfrei, auf dem 4ten ignoriert er aber die Einstellung für Seitenformat un druckt immer auf A4 und außerdem skaliert er nicht auf Blattgröße. Bei allen Rechnern sind definitiv die Makro-Versionen gleich, ebenso die Version der Druckertreiber und DLLs und auch die Stanard-Einstellungen des Druckers (die aber sowieso egal sein sollten, da ich ja alles im Makro setze). Ich vermute, daß es nicht wirklich ein Problem des Makros ist, sondern eher der Kniff irgendwo in Windows oder SWX selbst liegt... Hat jemand ne Idee, woran's liegen könnte? MfG Ansgar
Hier noch der Code der Druckroutine: ' eigentliche druckroutine: ' ######################### Set swApp = Application.SldWorks Dim Model2 As ModelDoc2 Set Model2 = swApp.ActiveDoc ' Drucker setzen: Part.Printer = frmLinienstaerke.cmbDrucker.Text ' Format: Dim Seiteneinstellung As PageSetup Set Seiteneinstellung = Model2.PageSetup Select Case frmLinienstaerke.cmbOrientation Case Is = "Landscape" Seiteneinstellung.Orientation = swPageSetupOrient_Landscape Case Is = "Portrait" Seiteneinstellung.Orientation = swPageSetupOrient_Portrait Case Else Seiteneinstellung.Orientation = swPageSetupOrient_Landscape End Select Select Case frmLinienstaerke.cmbFormat.Text Case Is = "A3" Seiteneinstellung.PrinterPaperSize = Format_A3 Case Is = "A4" Seiteneinstellung.PrinterPaperSize = Format_A4 Case Is = "Oversize ISO A3" Seiteneinstellung.PrinterPaperSize = Format_OversizeA3 Case Is = "Oversize ISO A2" Seiteneinstellung.PrinterPaperSize = Format_OversizeA2 Case Is = "Oversize ISO A1" Seiteneinstellung.PrinterPaperSize = Format_OversizeA1 Case Is = "Oversize ISO A0" Seiteneinstellung.PrinterPaperSize = Format_OversizeA0 Case Else Seiteneinstellung.PrinterPaperSize = Format_A3 End Select Select Case frmLinienstaerke.opt_Scale2Fit.Value Case Is = "True", "False" Seiteneinstellung.ScaleToFit = frmLinienstaerke.opt_Scale2Fit.Value Case Else Seiteneinstellung.ScaleToFit = True End Select Dim i As Integer For i = 1 To frmLinienstaerke.cmbAnzahl retval = Part.PrintDirect Next i
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stefan Ansgar Böttcher Mitglied Stundent und Hilfskraft in Konstr.Büro

 Beiträge: 62 Registriert: 15.07.2003
|
erstellt am: 18. Feb. 2005 17:35 <-- editieren / zitieren --> Unities abgeben:         
Hiho! Noch vergessen: der einzige möglicherweise wichtige Unterschied zwischen den Installationen auf den verschiedenen Rechner ist, daß auf denen, wo das Makro läuft, ist irgendwann mal SWX2004 installiert worden und dann nach und nach die Service-Packs. Bei dem Rechner, wo's nicht läuft wurde dirket von 0 auf SP5.0 geupdated... töö Ansgar. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ralf Blokscha Mitglied Konstrukteur
 
 Beiträge: 175 Registriert: 10.07.2000 XEON 2x3.33GHz, 8.0GB Ram, nVidia Quadro FX 570 256 MB, WIN XP64 SP 2, SWX 2007_x64 SP 5.0
|
erstellt am: 21. Feb. 2005 06:32 <-- editieren / zitieren --> Unities abgeben:          Nur für Stefan Ansgar Böttcher
Hallo Stefan, sind den die Namen der Drucker identisch benannt. Ich hatte mal den Fall das z.B. die A4 bzw. A3 Formate immer auf dem Plotter A2 gedruckt wurde weil eben die Namen nicht gleich waren. Gruß Ralf
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |