| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| 3DEXPERIENCE Conference, Veranstaltung am 16.10.2024 |
Autor
|
Thema: Noch ein Print-Makro? Ja! (12244 mal gelesen)
|
pavlodar Mitglied Konstrukteur
Beiträge: 46 Registriert: 06.06.2005 SolidWorks 2011 SP1.0
|
erstellt am: 14. Jul. 2005 00:52 <-- editieren / zitieren --> Unities abgeben:
Hallo alle zusammen! Ich weiß, daß ich mit diesem Makro versuche schon wieder Rad zu erfinden... Aber ich denke einiges spricht dafür. Das Grundprinzip von diesem Makro ist in dem, das man beliebige Zeichnung in einem belibigen DIN-Format mit einem Klick ausdrucken kann. Das Bild von dem Makro sagt eigentlich alles über die Funktionen. Das Makro muß aber angepaßt werden. Und zwar an zwei Stellen: 1. Im Makrokörper selbst müssen druckerabhängige Konstanten angepaßt werden. Ich weiß, daß die Werte für A4 und A3 sind bei den meisten Druckern 9 und 8. Die Werte für A2 bis A0 für Ihren Plotter müßt Ihr selbst rausfinden. ' Druckerabhängige Werte Const cPaperSizeA4Q = 9 ' A4 Querformat Const cPaperSizeA3Q = 8 ' A3 Querformat Const cPaperSizeA2Q = 55 ' A2 Querformat Const cPaperSizeA1Q = 54 ' A1 Querformat Const cPaperSizeA0Q = 53 ' A0 Querformat 2. Die mitgelieferte INI-Datei muss angepaßt werden [A3_A4_Printers] Hier stehen die Namen von A3 und A4 Drucker [A0_A1_A2_Plotters] Hier stehen die Namen von A2 bis A0 Plotter [DefaultPrinter] Dieser Drucker erscheint dann im Makro-Fenster als Voreinstellung Das war's. Noch was - das Makro druckt immer in schwarz/weiß und immer in Querformat. Um die Katastrophe zu verhindern, habe ich die Option "Alle" bei den A0 bis A2 Formaten deaktiviert. Gruß Alexander Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Rigobert Mitglied Konstrukteur
Beiträge: 239 Registriert: 21.11.2001 SWX 2017x64-Edition SP 4.1
|
erstellt am: 14. Jul. 2005 12:31 <-- editieren / zitieren --> Unities abgeben: Nur für pavlodar
Hallo Alexander, sieht wirklich gut aus Dein Programm. .. und funktioniert sogar. werde ich mir ein bisschen zurecht stricken und benutzen. Danke, U´s sind unterwegs. Gruß Andreas ------------------ [Diese Nachricht wurde von Rigobert am 14. Jul. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
supereise Mitglied
Beiträge: 54 Registriert: 26.01.2004 SW 20004 SP3 WIN2000
|
erstellt am: 14. Jul. 2005 13:01 <-- editieren / zitieren --> Unities abgeben: Nur für pavlodar
Hi, ich habe gerade dein Programm runter geladen. Vom Prinzip her super. Ich versuche gerade unsere Drucker rein zu basteln. Habe von dem Zeug keine Ahnung. Du hast noch einen button welcher pdf erzeugt. diese wird im gleichen ordner abgelegt wie die originaldatei. kann ich irgendwie einstellen das er mir immer den gleichen zielordner nimmt? Gruss Patrick ------------------ SW 20005 SP3 WIN2000 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
gismo Mitglied SWX Support
Beiträge: 1047 Registriert: 05.03.2001
|
erstellt am: 14. Jul. 2005 13:27 <-- editieren / zitieren --> Unities abgeben: Nur für pavlodar
HI Alexander, gefällt mir sehr gut, Dein Makro. Ich hab mit aber erlaubt, ein paar kleine Änderungen vorzunehmen: Bei A4 Auswahl von Hoch/Querformat (A4 Hoch brauch ich öfter mal) Info unf Exit Button (Da steh ich drauf ) Es gab einen Fehler, wenn der Haken "Alle" gesetzt war, und eine offene Zeichnung noch nicht gespeichert war. Das hab ich behoben! Schau es Dir einfach mal an. CU Thomas ------------------ Viele Grüße aus dem Schwarzwald gismo Meine bescheidene Website Klamm? Was ist Klamm? [Diese Nachricht wurde von gismo am 14. Jul. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
T. Steffen Mitglied Konstrukteur
Beiträge: 339 Registriert: 27.03.2002 Windows 10 x64 SOLIDWORKS 2021 SP4.1 HP Z4 G4 Workstation 32GB RAM NVIDIA Quadro P2200
|
erstellt am: 15. Jul. 2005 15:30 <-- editieren / zitieren --> Unities abgeben: Nur für pavlodar
|
pavlodar Mitglied Konstrukteur
Beiträge: 46 Registriert: 06.06.2005 SolidWorks 2011 SP1.0
|
erstellt am: 15. Jul. 2005 22:19 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von supereise: Hi, ich habe gerade dein Programm runter geladen. Vom Prinzip her super. Ich versuche gerade unsere Drucker rein zu basteln. Habe von dem Zeug keine Ahnung. Du hast noch einen button welcher pdf erzeugt. diese wird im gleichen ordner abgelegt wie die originaldatei. kann ich irgendwie einstellen das er mir immer den gleichen zielordner nimmt?Gruss Patrick
Hallo Patrick, um die PDF-Dateien in einem Zielordner zu speichern muss Du die folgende Zeilen im Makrokörper
Code:
Debug.Print "------------------------------------" sPartOldName = swDrawing.GetPathName() sPartNewName = Left(sPartOldName, Len(sPartOldName) - 6) sPartNewName = sPartNewName + "pdf"
mit diesen Zeilen ersetzen Code:
Debug.Print "------------------------------------" ' Pfadnamen von hinten her durchsuchen For i = 1 To Len(sPartOldName) ' Wenn "\" gefunden, dann raus If Left(sPartNewName, 1) = "\" Then sPartNewName = Right(sPartOldName, i - 2) Exit For End If ' Dateiname speichern sPartNewName = Right(sPartOldName, i) Next i' Zeichnungsdateiendung abschneiden (slddrw) sPartNewName = Left(sPartNewName, Len(sPartNewName) - 6) ' Den neuen Pfad bilden und die pdf-Erweiterung (pdf) anhängen sPartNewName="X:\YZ\"+sPartNewName+"pdf"
wobei "X:\YZ\" Dein Zielverzeichnis ist. Gruß Alexander Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pavlodar Mitglied Konstrukteur
Beiträge: 46 Registriert: 06.06.2005 SolidWorks 2011 SP1.0
|
erstellt am: 15. Jul. 2005 23:45 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von gismo: HI Alexander, gefällt mir sehr gut, Dein Makro. Ich hab mit aber erlaubt, ein paar kleine Änderungen vorzunehmen: Bei A4 Auswahl von Hoch/Querformat (A4 Hoch brauch ich öfter mal) Info unf Exit Button (Da steh ich drauf ) Es gab einen Fehler, wenn der Haken "Alle" gesetzt war, und eine offene Zeichnung noch nicht gespeichert war. Das hab ich behoben! Schau es Dir einfach mal an. CU Thomas
Hi Thomas, vielen Dank für wirklich wertvolle Ergänzung! Der Fehler mit der ungespeicherten Zeichnung habe ich tatsächlich übersehen. Ab sofort wird bei uns Deine Version eingesetzt. P.S. Dein Info-Button ist wirklich ein Volltreffer - inzwischen haben mich so viele Leute gefragt, wofür eigentlich "Alle"-Checkbox steht (was ich immer noch nicht verstehen kann), dass ich schon selbst einen Info-Button einfügen wollte. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BauerF Mitglied Ingenieur Kunststofftechnik
Beiträge: 9 Registriert: 05.07.2005 SWX 2005 SP2 Win XP Pro SP2
|
erstellt am: 18. Jul. 2005 13:39 <-- editieren / zitieren --> Unities abgeben: Nur für pavlodar
vielen Dank für das Makro eine Anregung noch: es kommt eine Fehlermeldung, wenn unter einem Abschnitt (bei mir wars bei [A0_A1_A2_Plotters]) kein Drucker eingetragen ist - vielleicht für eine spätere Version Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
T. Steffen Mitglied Konstrukteur
Beiträge: 339 Registriert: 27.03.2002
|
erstellt am: 18. Jul. 2005 13:45 <-- editieren / zitieren --> Unities abgeben: Nur für pavlodar
Zitat: Original erstellt von pavlodar: P.S. Dein Info-Button ist wirklich ein Volltreffer - inzwischen haben mich so viele Leute gefragt, wofür eigentlich "Alle"-Checkbox steht (was ich immer noch nicht verstehen kann), dass ich schon selbst einen Info-Button einfügen wollte.
Habe bei uns die Info's direkt in das Hauptdialogfeld eingebaut. Jetzt ist der Info Button eigentlich unnnötig, lasse ihn aber denoch stehen. Gruss Tom [Diese Nachricht wurde von T. Steffen am 18. Jul. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Uwe Didio Mitglied Techn.Zeichner + CAD-Administrator
Beiträge: 374 Registriert: 05.10.2000 SolidWorks 2014 SP5.0 CoCreate Drafting 17.0 Windows 7 64 bit
|
erstellt am: 19. Jul. 2005 11:31 <-- editieren / zitieren --> Unities abgeben: Nur für pavlodar
Hallo Tom wie baut man so ein Makro um wie Du es gemacht hast?? die Knöpfe alle Zeichnungen Drucken, alle ... Schließen wie schafft man so was ????? Danke an Alexander + Thomas für das Makro Grüßle Uwe Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Uwe Didio Mitglied Techn.Zeichner + CAD-Administrator
Beiträge: 374 Registriert: 05.10.2000
|
erstellt am: 19. Jul. 2005 11:52 <-- editieren / zitieren --> Unities abgeben: Nur für pavlodar
Hallo Alexander bekoome diese Fehlermeldung wenn ich versuche den Pfad zu Ändern bei PDF weißt Du was ich Ändern muß` Bei For i gehts nicht weiter Gruß Uwe [Diese Nachricht wurde von Uwe Didio am 19. Jul. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pavlodar Mitglied Konstrukteur
Beiträge: 46 Registriert: 06.06.2005 SolidWorks 2011 SP1.0
|
erstellt am: 19. Jul. 2005 15:37 <-- editieren / zitieren --> Unities abgeben:
|
Uwe Didio Mitglied Techn.Zeichner + CAD-Administrator
Beiträge: 374 Registriert: 05.10.2000
|
erstellt am: 19. Jul. 2005 16:31 <-- editieren / zitieren --> Unities abgeben: Nur für pavlodar
Hallo Alexander, da ich von der Makro-Programmierung keine Ahnung habe, schreibe ich was ich gemacht habe: Bei Save als pdf habe ich den Eintrag abgeändert so wie Du es schreibst. Jetzt habe ich den nächsten Fehler siehe Bild. Gruß Uwe Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pavlodar Mitglied Konstrukteur
Beiträge: 46 Registriert: 06.06.2005 SolidWorks 2011 SP1.0
|
erstellt am: 19. Jul. 2005 20:30 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von Uwe Didio: Hallo Alexander, da ich von der Makro-Programmierung keine Ahnung habe, schreibe ich was ich gemacht habe: Bei Save als pdf habe ich den Eintrag abgeändert so wie Du es schreibst. Jetzt habe ich den nächsten Fehler siehe Bild.Gruß Uwe
Hallo Uwe, das war schon wieder mein Fehler. Damit diesmal alles klappt habe ich das komplette Makro mit den Änderungen eingefügt. Gruß Alexander Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Uwe Didio Mitglied Techn.Zeichner + CAD-Administrator
Beiträge: 374 Registriert: 05.10.2000
|
erstellt am: 20. Jul. 2005 09:22 <-- editieren / zitieren --> Unities abgeben: Nur für pavlodar
|
Uwe Didio Mitglied Techn.Zeichner + CAD-Administrator
Beiträge: 374 Registriert: 05.10.2000 SolidWorks 2014 SP5.0 CoCreate Drafting 17.0 Windows 7 64 bit
|
erstellt am: 20. Jul. 2005 11:28 <-- editieren / zitieren --> Unities abgeben: Nur für pavlodar
Hallo Alexander zu früh gefreut. Bei 2 Kollegen geht es (SP4.0) bei 2 nicht (SP2.0) siehe die 2 Fehler-Bilder ich meine das Drücken des Menü-Knopfes dann kommen diese Fehlermeldungen. Gestern ging es noch, Nachdem Alexander das Menü neu überarbeitet hast geht das pdf und das andere Drucken, aber bei den 2 Kollegen halt geht nichts. liegt es am Service-Pack?? mfg Uwe [Diese Nachricht wurde von Uwe Didio am 20. Jul. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
hico Mitglied Konstrukteur
Beiträge: 259 Registriert: 03.03.2005
|
erstellt am: 20. Jul. 2005 13:17 <-- editieren / zitieren --> Unities abgeben: Nur für pavlodar
|
T. Steffen Mitglied Konstrukteur
Beiträge: 339 Registriert: 27.03.2002 Windows 10 x64 SOLIDWORKS 2021 SP4.1 HP Z4 G4 Workstation 32GB RAM NVIDIA Quadro P2200
|
erstellt am: 20. Jul. 2005 13:39 <-- editieren / zitieren --> Unities abgeben: Nur für pavlodar
@pavlodar Hi Alexander Was müsste man an dem Makro ändern, damit nur das aktuelle Blatt ausgedruckt wird? Unsere Zeichnungen bestehen immer aus 4 Blätter und meistens möchten wir nur eines davon ausdrucken. Gruss Tom Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pavlodar Mitglied Konstrukteur
Beiträge: 46 Registriert: 06.06.2005 SolidWorks 2011 SP1.0
|
erstellt am: 20. Jul. 2005 21:52 <-- editieren / zitieren --> Unities abgeben:
Hallo Tom, mit diesem Code bekommst Du die Nummer von dem aktuellen Zeichnungsblatt:
Code:
Dim swApp As SldWorks.SldWorks Dim swModel As SldWorks.ModelDoc2 Dim swDraw As SldWorks.DrawingDoc Dim swSheet As SldWorks.Sheet Dim vSheetNames As Variant Dim bRet As Boolean Dim i As Long Set swApp = Application.SldWorks Set swModel = swApp.ActiveDoc Set swDraw = swModel Set swSheet = swDraw.GetCurrentSheet vSheetNames = swDraw.GetSheetNames For i = 0 To UBound(vSheetNames) If swSheet.GetName = vSheetNames(i) Then MsgBox ("Current sheet name = " & swSheet.GetName & Chr$(10) & _ "Current sheet number = " & i + 1) End If Next i
und dann musst Du nur den Bereich zu druckender Bl¬Õtter einschr¬Õnken. In deinem Fall w¬Õre es (in dem Unterprogramm "PrintOut"):
Code:
pageArray(1) = i+1 'Aktuelles Blatt
N¬Õheres dazu findest Du in der API-Hilfe zu PrintOut2-Funktion. ¬¥hnlich funktioniert es mit dem Speichern als PDF. Viel Spa©¬! Gru©¬ Alexander Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pavlodar Mitglied Konstrukteur
Beiträge: 46 Registriert: 06.06.2005 SolidWorks 2011 SP1.0
|
erstellt am: 20. Jul. 2005 22:09 <-- editieren / zitieren --> Unities abgeben:
Hallo Uwe und Hilmar, leider ist es sehr schwer für mich allein anhand der Bilder den Fehler zu finden. Versuchen Sie folgendes - im Visual Basic Editor unter Menüpunkt Extras/Verweise setzen Sie den Hacken bei den folgenden Punkten - SolidWorks 2004 Type library - SolidWorks 2004 Constant type library - SolidWorks 2004 exposed libraries for add-in use Im Moment fällt mir nichts anderes ein... Gruß Alexander
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Uwe Didio Mitglied Techn.Zeichner + CAD-Administrator
Beiträge: 374 Registriert: 05.10.2000
|
erstellt am: 21. Jul. 2005 09:31 <-- editieren / zitieren --> Unities abgeben: Nur für pavlodar
|
Piet Mitglied Konstruktionsleiter & Konstrukteur
Beiträge: 661 Registriert: 20.11.2001 SWx 2021
|
erstellt am: 03. Aug. 2005 11:18 <-- editieren / zitieren --> Unities abgeben: Nur für pavlodar
Wenn ich das Makro starte, passiert überhaupt nichts, die Form wird nicht angezeigt. Ich arbeite mit SWx2005 SP4.0. Kann es daran liegen, dass ich in der Ini die Drucker falsch eingetragen habe? Das sind Netzwerkdrucker, meine Ini sieht so aus: [A3_A4_Printers] \\LBKMD01 \\LBKMD02
[A0_A1_A2_Plotters] [DefaultPrinter] \\LBKMD02
Vielleicht hat jemand eine Idee? Piet Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pavlodar Mitglied Konstrukteur
Beiträge: 46 Registriert: 06.06.2005 SolidWorks 2011 SP1.0
|
erstellt am: 03. Aug. 2005 20:12 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von Piet: Wenn ich das Makro starte, passiert überhaupt nichts, die Form wird nicht angezeigt. Ich arbeite mit SWx2005 SP4.0. Kann es daran liegen, dass ich in der Ini die Drucker falsch eingetragen habe? Das sind Netzwerkdrucker, meine Ini sieht so aus: [A3_A4_Printers] \\LBKMD01 \\LBKMD02
[A0_A1_A2_Plotters] [DefaultPrinter] \\LBKMD02
Vielleicht hat jemand eine Idee? Piet
Hallo Piet, die richtigen Namen für die Drucker findest im ganz normalen SolidWorks-Dialogfenster "Drucken". Und noch etwas die Zeile nach [A0_A1_A2_Plotters] soll nicht leer sein - trage irgenwas ein, z.B. \\Testserver\Testplotter Gruß Alexander Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Piet Mitglied Konstruktionsleiter & Konstrukteur
Beiträge: 661 Registriert: 20.11.2001 SWx 2021
|
erstellt am: 04. Aug. 2005 09:20 <-- editieren / zitieren --> Unities abgeben: Nur für pavlodar
Das hat schon mal ein Stück weitergeholfen, vielen Dank. Das Makro startet und ich kann ein Druckformat auswählen. Allerdings stoppt es dann in der Zeile Call PrintOut(swDrawing, sPrinter, PaperSize, True, bRet) mit der Fehlermeldung "Typen unverträglich". bRet wird als "false" angezeigt. Ich werd noch ein wenig probieren. Piet Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Rookie_99 Mitglied Konstrukteur
Beiträge: 1 Registriert: 05.08.2005
|
erstellt am: 05. Aug. 2005 11:13 <-- editieren / zitieren --> Unities abgeben: Nur für pavlodar
|
gismo Mitglied SWX Support
Beiträge: 1047 Registriert: 05.03.2001 HP Z Book17 G5; 32GB Ram; Quadro P4200 WIN10 Pro; Alle SWX ;)
|
erstellt am: 05. Aug. 2005 12:03 <-- editieren / zitieren --> Unities abgeben: Nur für pavlodar
|
T. Steffen Mitglied Konstrukteur
Beiträge: 339 Registriert: 27.03.2002
|
erstellt am: 05. Aug. 2005 12:51 <-- editieren / zitieren --> Unities abgeben: Nur für pavlodar
Zitat: Original erstellt von gismo: ... welches ich bei mir leider nicht so richtig zum Laufen bekommen habe! CU und schönes WE
Wir bei uns auch nicht. Wir sind mit dem Makro von pavlodar mehr als zufrieden... Gruss Tom
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lothar Herrl Mitglied
Beiträge: 602 Registriert: 06.07.2001 Win7/64 SWX 2011
|
erstellt am: 08. Aug. 2005 09:01 <-- editieren / zitieren --> Unities abgeben: Nur für pavlodar
Zitat: Original erstellt von gismo: ... welches ich bei mir leider nicht so richtig zum Laufen bekommen habe! CU und schönes WE
Uwe Thieme hat mir geholfen das Tool zum Laufen zu bringen. Ist eben One-Button. Das hier beschriebene Tool kann mehr - muß halt auch bedient werden. Gruß Lothar Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
am Mitglied Ingenieur FH / Manager Development Tools
Beiträge: 245 Registriert: 01.02.2003
|
erstellt am: 13. Dez. 2005 17:14 <-- editieren / zitieren --> Unities abgeben: Nur für pavlodar
Hallo Pavlodar Dein Makro ist einfach und brauchbar. Habe auch so ein Ding geschrieben. Suche noch einen Weg um im 'Querformat_gedreht' auszuplotten. Kennst Due eine solche Variable? Weiter möchte ich die PDF's mit etwas dickeren Liniendifferenzen erstellen. Aber bei Speichern als pdf kann ich leider keine Optionen für die Linienstärken mitgeben. Hast Du da ein paar Tipps? Gruss am ------------------ am Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pavlodar Mitglied Konstrukteur
Beiträge: 46 Registriert: 06.06.2005 SolidWorks 2011 SP1.0
|
erstellt am: 13. Dez. 2005 20:11 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von am: Hallo Pavlodar Dein Makro ist einfach und brauchbar. Habe auch so ein Ding geschrieben. Suche noch einen Weg um im 'Querformat_gedreht' auszuplotten. Kennst Due eine solche Variable? Weiter möchte ich die PDF's mit etwas dickeren Liniendifferenzen erstellen. Aber bei Speichern als pdf kann ich leider keine Optionen für die Linienstärken mitgeben. Hast Du da ein paar Tipps? Gruss am
Hallo am, ich habe vor kurzem den Arbeitgeber und CAD-System gewechselt (back to the basics - ME10 forever! ) - also, sorry, aber im Moment habe ich weder Zeit, noch die Möglichkeit zum Testen. Gruß pavlodar Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
A.Bumbacher Mitglied Konstrukteur
Beiträge: 120 Registriert: 16.12.2002 SWX2019 SP4.0 HP Z440
|
erstellt am: 14. Dez. 2005 10:22 <-- editieren / zitieren --> Unities abgeben: Nur für pavlodar
Zitat: Original erstellt von pavlodar: [QUOTE]Original erstellt von am: Hallo Pavlodar Dein Makro ist einfach und brauchbar. Habe auch so ein Ding geschrieben. Suche noch einen Weg um im 'Querformat_gedreht' auszuplotten. Kennst Due eine solche Variable? Weiter möchte ich die PDF's mit etwas dickeren Liniendifferenzen erstellen. Aber bei Speichern als pdf kann ich leider keine Optionen für die Linienstärken mitgeben. Hast Du da ein paar Tipps? Gruss am
Hallo am, ich habe vor kurzem den Arbeitgeber und CAD-System gewechselt (back to the basics - ME10 forever! ) - also, sorry, aber im Moment habe ich weder Zeit, noch die Möglichkeit zum Testen. Gruß pavlodar [/QUOTE] mein herzliches Beileid!
------------------ Mit freundlichen Grüssen Andi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Piet Mitglied Konstruktionsleiter & Konstrukteur
Beiträge: 661 Registriert: 20.11.2001 SWx 2021
|
erstellt am: 15. Feb. 2006 09:00 <-- editieren / zitieren --> Unities abgeben: Nur für pavlodar
Ich hab das Makro übernommen und an meine Bedürfnisse angepasst, das ist wirklich eine Arbeitserleichterung. Nur ein Problem hab ich noch: Unserem HP DesignJetColorPro CAD krieg ich nicht beigebogen, wie er auf A4 druckt. Hat zufällig jemand denselben Drucker und kennt den passenden Code für Const cPaperSizeA4Q = ? ' A4 Querformat Die Zahlen von 1 bis 10 hab ich erfolglos durchprobiert. Sind höhere Zahlen bei sowas üblich? Piet
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Uwe Didio Mitglied Techn.Zeichner + CAD-Administrator
Beiträge: 374 Registriert: 05.10.2000
|
erstellt am: 15. Feb. 2006 11:10 <-- editieren / zitieren --> Unities abgeben: Nur für pavlodar
Hallo Piet bei uns ist beim Drucker HP_lj5500 Laser Jet A4 ist die Zahl "009" es gibt auf www.umct.de bei Downloads ein Programm PrintMan 1.6.04 das hat mit dem Druckprogramm hier nichts zu tun, aber wenn Du das Programm installierst dann gibt es darin eine PrinterInfo.exe wenn Du das laufen läßt dann bekommst Du eine Auflistung, über alle Deine installierten Drucker, Ergebnis ist eine Drucker-Format-Analyse und da stehen die Zahlen drinnen elche Du dann im diesem Programm hier verwenden kannst. Gruß Uwe Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
sembaden Mitglied Konstruktion Engineering
Beiträge: 21 Registriert: 07.08.2004 P4,2.8Ghz,2Gb,XP Prof.,nVidiaQuadro 4 750XGL,MDT6,SWX 2004 SP4.2
|
erstellt am: 13. Feb. 2007 17:07 <-- editieren / zitieren --> Unities abgeben: Nur für pavlodar
Hallo, habe Euer Makro ausprobiert und würde gerne beim .pdf speichern ebenfalls nur ein Sheet plotten/speichern. Allerdings scheint der oben genannte Befehl nur bei PrintOut2 zu funktionieren! Hat da jemand eine Lösung parat?????? Wäre wie immer sehr dankbar Grüße sembaden ------------------ Gruß sembaden Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tbd Mitglied Teamleiter
Beiträge: 825 Registriert: 26.01.2006 Dell Percision T5400 Intel(R) Xeon(R) CPU X5460 @ 3.16GHz 3,25 GB RAM Nvidia Quadro FX 4600 ----- Win XP Prof SP 3 SW 2008 SP 5.0 PARTsolutions 8.1.08 Cideon SAP PLM 5.103.5.17 Visual Studio 2008
|
erstellt am: 14. Feb. 2007 07:31 <-- editieren / zitieren --> Unities abgeben: Nur für pavlodar
|
am Mitglied Ingenieur FH / Manager Development Tools
Beiträge: 245 Registriert: 01.02.2003
|
erstellt am: 14. Feb. 2007 10:19 <-- editieren / zitieren --> Unities abgeben: Nur für pavlodar
Guten Tag Pavlodar besten Dank für Dein gutes und einfaches Plotmakro. Dies wird manchem SolidWorks Benutzer das Leben erleichtern. Wir setzen einen Falter ein und müssen daher einige Formate als Querformat gedreht schicken. (hoch/quer/quer gedreht) Kennst Du eine Möglichkeit um dies in deinem Makro einzubauen? Besten Dank für deine Hilfe. Gruss am ------------------ am Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tbd Mitglied Teamleiter
Beiträge: 825 Registriert: 26.01.2006 Dell Percision T5400 Intel(R) Xeon(R) CPU X5460 @ 3.16GHz 3,25 GB RAM Nvidia Quadro FX 4600 ----- Win XP Prof SP 3 SW 2008 SP 5.0 PARTsolutions 8.1.08 Cideon SAP PLM 5.103.5.17 Visual Studio 2008
|
erstellt am: 14. Feb. 2007 10:30 <-- editieren / zitieren --> Unities abgeben: Nur für pavlodar
Hallo am, das Quer- oder Hochformat stellt man in der Orientation Property des SldWorks.PageSetup Objekts fest. Code:
Private Enum Format_e Hoch = 1 Quer = 2 End EnumDim oSwDrucker As SldWorks.PageSetup Dim eFormat As Format_e 'Druckerinformationen übergeben oSwDrucker.Orientation = CInt(eFormat) oSwDrucker.PrinterPaperSize = vbPaperSize_e.vbPRPSA3
------------------ Mfg Daniel SolidWorks macht schnell abhängig, fangen Sie gar nicht erst an! ---------------------------------------------- Wir machen Sie fit für die Zukunft, damit Sie Kosten sparen und SolidWorks optimieren!
SolidWorks API Programmierung; Schuler Design Automation GmbH | kontakt@schuler-da.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
am Mitglied Ingenieur FH / Manager Development Tools
Beiträge: 245 Registriert: 01.02.2003
|
erstellt am: 14. Feb. 2007 10:51 <-- editieren / zitieren --> Unities abgeben: Nur für pavlodar
Hallo tbd hoch und quer ist klar. Suche jedoch quer_gedreht. Damit der Zeichnungskopf zuerst gegen die Faltmaschine kommt und nicht erst am Schluss. Gleichwohl danke für Deine Bemühungen. Gruss am ------------------ am Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Marc S. Mitglied Konstrukteur
Beiträge: 33 Registriert: 14.10.2005 WIN7 64bit; CPU i7 960@3,2GHz; RAM 24GB; Graphik Nvidia Quadro 4000; SSD OCZ 128GB SWX 2010 X64 mit SP5.0
|
erstellt am: 12. Apr. 2007 15:29 <-- editieren / zitieren --> Unities abgeben: Nur für pavlodar
Zitat:
Das hat schon mal ein Stück weitergeholfen, vielen Dank. Das Makro startet und ich kann ein Druckformat auswählen. Allerdings stoppt es dann in der Zeile Call PrintOut(swDrawing, sPrinter, PaperSize, True, bRet)mit der Fehlermeldung "Typen unverträglich". bRet wird als "false" angezeigt. Ich werd noch ein wenig probieren. Piet
Erst einmal vielen Dank für das tolle Makro! Leider habe ich den selben Fehler wie Piet. Hat jemand einen Tip worann das liegen kann?! System: • WIN XP mit SP2 • SWX 2005 mit SP5.0 CU Marc Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
riesi Mitglied CAD-Admin
Beiträge: 1078 Registriert: 06.05.2002 SWX Premium 2023-Sp5
|
erstellt am: 13. Apr. 2007 09:50 <-- editieren / zitieren --> Unities abgeben: Nur für pavlodar
Hallo zusammen! Vielen Dank für die Anregungen. Ich habe hier noch einen völlig anderen Ansatz zu bieten: Da wir PDF als Sekundär-Format aus unseren Zeichnungen ableiten und die Stücklisten und Auftragsstücklisten im PPS verwaltet werden, suchte ich nach einer Lösung für automatisiertes Plotten ohne SolidWorks, bzw. ME10, welches wir auch verwenden. Die Lösung besteht aus einem UNIX-Server, auf dem GhostScript und div. Tools, sowie Samba installiert ist. Mein Makro erzeugt von SolidWorks eine PDF-Datei und kopiert diesen auf den Samba-Drucker. Von da an erledigt mein Shell-Skript den Rest. Unsere Laserdrucker können alle PostScript, die älteren tun sich allerdings mit Level2 etwas schwer, deswegen die Umwandlung nach Level1. Unser Rollenplotter kommt sehr gut um TIF im G4-Format zurecht. Um mal schnell ein Blatt mit SolidWorks zu drucken, ist mein Makro im Anhang drin. Angepaßt werden muss natürlich der Drucker, was aber kein Problem dar stellen sollte. Anregungen sind erwünscht. Gruß, Klaus. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Marc S. Mitglied Konstrukteur
Beiträge: 33 Registriert: 14.10.2005 WIN7 64bit; CPU i7 960@3,2GHz; RAM 24GB; Graphik Nvidia Quadro 4000; SSD OCZ 128GB SWX 2010 X64 mit SP5.0
|
erstellt am: 13. Apr. 2007 10:40 <-- editieren / zitieren --> Unities abgeben: Nur für pavlodar
@ riesi: Danke und ich werd es gleich einmal testen! @ all: mein obiges Problem besteht immernoch allerding kann ich jetzt sagen das dieses nur bei der zweiten Version von pavlodar (Print_PDFInDestDir.zip) auftritt. Bei der Version von gismo (Print.zip) geht alles einwandfrei. Ich hätte jetzt allerdings noch eine bitte Frage. Wir drucken für unsere Akten sehr viele A3 und manche A2 Zeichnungen um Papier und vor allem Platz zu sparen in A4. Kann mann das Makro so umarbeiten, das wenn ich eine A3 (A2) Zeichnung auf A4 drucke, diese eingepasst wird zu auf A4 quer? Desweiteren wäre es super wenn mann über eine Eingabe angeben könnte wieviel Ausdrucke ich haben möchte. Vielen Dank für Eure Unterstützung! CU Marc Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Piet Mitglied Konstruktionsleiter & Konstrukteur
Beiträge: 661 Registriert: 20.11.2001 SWx 2021
|
erstellt am: 13. Apr. 2007 11:02 <-- editieren / zitieren --> Unities abgeben: Nur für pavlodar
Ich hab in der Zwischenzeit mein eigenes Printmakro weitergetrieben. Wir drucken A3 auf einem Tintenstrahler und A4 auf einem Laserdrucker, einen Plotter haben wir nicht. Zwei Fehler kriegte ich nicht ausgebügelt: Wenn ich schwarz/weiß-Druck anwähle, druckt es trotzdem farbig Wenn ich "Nur diese Seite drucken" anwähle, wird die falsche Seite, bzw. mehrere gedruckt. Ich hab mein Makro schließlich an den API-Support geschickt. Der Support hat es auch nicht hingekriegt und beides als Bugs gemeldet. SPR 370774 und SPR 371339 laufen daher, der Support war so nett, die SPRs gleich in meinem Namen anzulegen. Dies nur zur Info, nicht das jemand an diesem Problem unnütz aufreibt. Piet Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Uwe Didio Mitglied Techn.Zeichner + CAD-Administrator
Beiträge: 374 Registriert: 05.10.2000
|
erstellt am: 12. Jun. 2007 15:14 <-- editieren / zitieren --> Unities abgeben: Nur für pavlodar
Hallo zusammen Habe SW 2007 mit SP4.0 Installiert, jetzt funktioniert das Druck-Menü nicht mehr. siehe die 2 JPG-Bilder. wer kann mir dazu helfen ????? Gruß Uwe [Diese Nachricht wurde von Uwe Didio am 12. Jun. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
G. Dawg Ehrenmitglied V.I.P. h.c. Teamleiter FEM Simulation
Beiträge: 2622 Registriert: 12.07.2004 SolidWorks_2o2o SP3.o Win10_x64, Quadro_P2ooo. VisualStudio_2o19_Pro. FEM: Forge_NxT_HPC, ANSYS_WB. 3D-Printer: Ultimaker_2, Tinker_Gnome.
|
erstellt am: 12. Jun. 2007 15:28 <-- editieren / zitieren --> Unities abgeben: Nur für pavlodar
Ändere folgende Zeilen: So ähnlich muss es stehen:
Code:
Public swApp As Object sub main() Set swApp = Application.SldWorks Set swModel = swApp.ActiveDoc
SldWorks muss nur einmal als Objekt deklariert werden. Hatte ich auch bei einem meiner Makros - Danke HenryV!------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
grisu486 Mitglied Senior Technical Consultant MCAD
Beiträge: 575 Registriert: 14.11.2005
|
erstellt am: 19. Sep. 2007 12:02 <-- editieren / zitieren --> Unities abgeben: Nur für pavlodar
Hallo in die Runde! Das Printmakro macht einen sehr guten Eindruck und ich würde es auch sehr gerne verwenden, jedoch sieht es so aus, als ob das Makro den Systemdrucker nicht ersetzen kann. Es kann ja nicht sein, das ich jedesmal den Systemdrucker im Druckdialog umstellen muss. Dann könnte ich ja auch gleich von Hand drucken, oder???
Code: swDrawing.Printer = PrinterIf swDrawing.Printer <> Printer Then 'Überprüfung MsgBox ("Fehler!" & " Ausgewählter Drucker: " & Printer & Chr$(10) & " Systemdrucker " & swDrawing.Printer) bRet = False Exit Sub Else bRet = True End If
Eigentlich soll doch hier der 'swDrwaing' durch 'Printer' definiert werden. Das klappt aber nicht, es kommt wie erwartet die Fehlermeldung.Hat jemand eine Idee???? *uwe* Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
VBSpawn Mitglied Programmierer
Beiträge: 514 Registriert: 23.08.2005 Sorgfältige Planung ersetzt niemals pures Glück.
|
erstellt am: 20. Sep. 2007 08:29 <-- editieren / zitieren --> Unities abgeben: Nur für pavlodar
Hi zusammen, Kopiere das hier in eine neue Klasse und nenne diese cSystemPrinter
Code:
Option Explicit ' Standarddrucker systemweit festlegen Private m_sPrevPrinterDevName As String Private Declare Function GetProfileString Lib "kernel32" _ Alias "GetProfileStringA" (ByVal lpAppName As String, _ ByVal lpKeyName As String, ByVal lpDefault As String, _ ByVal lpReturnedString As String, ByVal nSize As Long) _ As Long Public Function SetDefaultPrinter(ByVal sPrinterName As String) As Boolean ' Fehlerbehandlung aktivieren On Error GoTo ErrHandler CurrentPrinter If LCase(m_sPrevPrinterDevName) = LCase(sPrinterName) Then SetDefaultPrinter = True Exit Function End If ' Verweis auf das Windows-Scripting-Objekt Dim oWScript As Object Set oWScript = CreateObject("WScript.Network") ' Standarddrucker neu festlegen oWScript.SetDefaultPrinter sPrinterName ' Objekt wieder zerstören Set oWScript = Nothing ' Druckerwechsel erfolgreich! On Error GoTo 0 SetDefaultPrinter = True Exit Function ErrHandler: ' Druckerwechsel konnte nicht durchgeführt werden ' Entweder konnte das WScript-Objekt nicht instanziert werden ' oder es wurde ein ungültiger Druckername angegeben On Error GoTo 0 SetDefaultPrinter = False End Function Private Sub CurrentPrinter() Dim Buffer$, r&, x&, y& Buffer = Space(8192) r = GetProfileString("windows", "Device", "", Buffer, Len(Buffer)) If r Then Buffer = Mid(Buffer, 1, r) x = InStr(Buffer, ",") m_sPrevPrinterDevName = Mid(Buffer, 1, x - 1) y = InStr(x + 1, Buffer, ",") Else m_sPrevPrinterDevName = "" End If End Sub Private Sub Class_Terminate() If Me.SetDefaultPrinter(m_sPrevPrinterDevName) = False Then Err.Raise -1 + vbObjectError, "SetPrinter", "Konnte den Drucker nicht wieder zurückstellen." End If End Sub
dann kann man diese wie folgt aufrufen ..
Code:
Sub Test() Dim oSetPrinter As cSystemPrinter Dim ret As Boolean Set oSetPrinter = New cSystemPrinter ret = oSetPrinter.SetDefaultPrinter("FreePDF XPA") If ret = True Then 'Druck ma was Else End If Set oSetPrinter = Nothing 'und wieder zurück (im Terminate) auf dem bei Set x = New cSystemPrinter eingestellten Drucker.. End Sub
hab nur leider kein SWX hier aber damit kannst du den Default Drucker aufjedenfall umstellen... (Systemweit) und beim Terminate wird dieser wieder auf dem Ursprünglichen Drucker zurückgesetzt.. Gruß Micha ------------------ Stell dir vor, es geht, und keiner kriegts hin. Zitat: Interpunktion und Orthographie des Postings sind frei erfunden. Eine Übereinstimmung mit aktuellen oder ehemaligen Regeln wäre rein zufällig und ist nicht beabsichtigt.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
grisu486 Mitglied Senior Technical Consultant MCAD
Beiträge: 575 Registriert: 14.11.2005
|
erstellt am: 08. Okt. 2007 11:08 <-- editieren / zitieren --> Unities abgeben: Nur für pavlodar
Zitat: Original erstellt von VBSpawn: Kopiere das hier in eine neue Klasse und nenne diese cSystemPrinter ...
Es hat eine ganze Weile gedauert, bis ich mich wieder mit diesem Thema beschäftigen konnte. Es scheint zu funktionieren, vielen Dank!! 10 U's sind unterwegs Viele Grüße aus dem wilden Süden *uwe* Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Press play on tape Ehrenmitglied Konstrukteur und sonst nix!
Beiträge: 1945 Registriert: 30.04.2007 Creo Elements Direct Modeling 17
|
erstellt am: 15. Feb. 2011 17:18 <-- editieren / zitieren --> Unities abgeben: Nur für pavlodar
ACHTUNG! Sie antworten auf einen Beitrag der älter als 1 Jahr ist! Sicher ist der Alt na und Ich lese mich nun verzweifelt den ganzen halben Tag in diese Druckthematik ein. Was ich möchte ist mir ein vereinfachtes Makro von diesem hier zu erstellen. Genauer gesagt soll es die aktive Zeichnung auf die aktuelle Blattgröße untersuchen, die Seiteneinstellungen vornehmen und Drucken, mehr nicht. Hintergund: Ich kann in meinem PDM Skripte erstellen und unter anderem kann ich mit diesen Skripten auch Makros ablaufen lassen, das ganze gibt also einen Stapelplott bei dem ich die Dokumente über das PDM (verschiedene Ordner) festlege. Soweit so gut die Seiteneinstellungen ergeben das kleiner Problem, mir macht der Drucker bzw. die Druckerauswahl Kopfzerbrechen. Meine ganz konkrete Frage: Bei diesem Makro gibt es die ini Datei in der die Drucker festgelegt werden. Ich verstehe einfach nicht woher das Makro bzw. wie das Makro den Drucker im Druckdialog definiert. Beim Makroaufzeichen setzt mir SolidWorks leider nicht den Drucker sondern nimmt lediglich den Voreingestellten (vermutl. kommt das von Windows). Wäre jemand so nett mir das zu erklären? Damit meine ich wirklich erklären kein vollständiges Makro, ich möchte es versuchen alleine hinzubekommen mit all den Schnipseln und Beispielen die man in der Makromania und im Netz findet. Vielen Dank im vorraus Heiko
------------------ Umstieg auf 64bit OS, was meint ihr? Plauderthread Umfrage Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |