Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  API: installierte Drucker

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
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


Sehen Sie sich das Profil von Stefan Ansgar Böttcher an!   Senden Sie eine Private Message an Stefan Ansgar Böttcher  Schreiben Sie einen Gästebucheintrag für Stefan Ansgar Böttcher

Beiträge: 62
Registriert: 15.07.2003

erstellt am: 14. Jan. 2005 17:36    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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)



Sehen Sie sich das Profil von StefanBerlitz an!   Senden Sie eine Private Message an StefanBerlitz  Schreiben Sie einen Gästebucheintrag für StefanBerlitz

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Stefan Ansgar Böttcher 10 Unities + Antwort hilfreich

Hallo Ansgar,

in VB gibt es die Printer-Collection, die man einfach durchlaufen kann. In VBA steht die nicht zur Verfügung, da musst du dir das über eine externe DLL geben lassen.

Beispiel dazu findest du auf http://www.aboutvb.de/vba/artikel/vbaprinterlist.htm

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


Sehen Sie sich das Profil von Stefan Ansgar Böttcher an!   Senden Sie eine Private Message an Stefan Ansgar Böttcher  Schreiben Sie einen Gästebucheintrag für Stefan Ansgar Böttcher

Beiträge: 62
Registriert: 15.07.2003

erstellt am: 21. Jan. 2005 21:38    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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)



Sehen Sie sich das Profil von StefanBerlitz an!   Senden Sie eine Private Message an StefanBerlitz  Schreiben Sie einen Gästebucheintrag für StefanBerlitz

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Stefan Ansgar Böttcher 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von Stefan Ansgar Böttcher an!   Senden Sie eine Private Message an Stefan Ansgar Böttcher  Schreiben Sie einen Gästebucheintrag für Stefan Ansgar Böttcher

Beiträge: 62
Registriert: 15.07.2003

erstellt am: 28. Jan. 2005 17:17    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hiho Stefan!

Hast Recht - nun funktionierts!

Besten Dank!
  Ansgar.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Stefan Ansgar Böttcher
Mitglied
Stundent und Hilfskraft in Konstr.Büro


Sehen Sie sich das Profil von Stefan Ansgar Böttcher an!   Senden Sie eine Private Message an Stefan Ansgar Böttcher  Schreiben Sie einen Gästebucheintrag für Stefan Ansgar Böttcher

Beiträge: 62
Registriert: 15.07.2003

erstellt am: 18. Feb. 2005 17:25    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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 SWXSolidWorks 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


Sehen Sie sich das Profil von Stefan Ansgar Böttcher an!   Senden Sie eine Private Message an Stefan Ansgar Böttcher  Schreiben Sie einen Gästebucheintrag für Stefan Ansgar Böttcher

Beiträge: 62
Registriert: 15.07.2003

erstellt am: 18. Feb. 2005 17:35    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von Ralf Blokscha an!   Senden Sie eine Private Message an Ralf Blokscha  Schreiben Sie einen Gästebucheintrag für Ralf Blokscha

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Stefan Ansgar Böttcher 10 Unities + Antwort hilfreich

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

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2024 CAD.de | Impressum | Datenschutz