| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS | | | | 16. mav Innovationsforum 2024 |
Autor
|
Thema: Makro, drucken mit definiertem Drucker (8772 mal gelesen)
|
Press play on tape Ehrenmitglied Konstrukteur und sonst nix!
Beiträge: 1945 Registriert: 30.04.2007 Creo Elements Direct Modeling 17
|
erstellt am: 16. Feb. 2011 19:10 <-- editieren / zitieren --> Unities abgeben:
Hallo, da ich hier auf der Seite und im WWW nichts gefunden habe, habe ich angefangen selbst ein Makro zu basteln. Meine Kenntnisse sind aber eher gering. Ziel des Makros ist es, auf dem im Makro definierten Drucker die Blattgröße zu ermitteln und entsprechend die Druckeinstellungen vorzunehmen und zu drucken. Einsetzbar soll es in Skripten als Makroaufruf (mein Anwendungsfall, Skript aus PDM = Stapelplott) und als "one klick" Drucklösung in Zeichnungen sein (damit man z.B. versehentlich nicht ein A2 auf dem A3 Drucker ohne "scaletofit" druckt). Kurz es soll sich der Druck selbständig einstellen. Aber aller Anfang ist schwer, deshalb geht es Stückweise vorwärts. Der erste Schritt ist abgeschlossen, der Drucker ist per Namen einstellbar, die Druckeigenschaften werden eingestellt wenn auch nur A4 100% im Moment. Was ich im kompletten Vorhabe: - Zeichnung neu aufbauen wenn notwendig
- Zeichnungsgröße ermitteln
- die im Makro für diese größe vorgegebenen Druckeinstellungen vornehmen
- auf dem im Makro festgelegten Drucker ausdrucken
Viele Dinge die ich dazu benötige finde ich hier im Forum in anderen Makro. Beispielsweise erhoffe ich mir beim ermitteln des Blattformats und einstellen Hilfe aus dem Makro Nr. 29(Blattformat tauschen) von Stefan. Aber da klemme ich mich jetzt nach und nach dahinter. Kein Fred ohne eigentliche Frage, hier kommt sie: Bei ModelDoc2.Pagesetup.Orientation, kann ich anstatt den String der da gerade jetzt steht auch einfach eine Zahl nämlich 1 oder zwei verwenden (in einem Beispielmakro gesehen), der String der jetzt gerade drinsteht kommt aus einer Makroaufzeichnung. Frage, woher bekomme ich diese information ich habe in der API Hilfe nichts gefunden, muß man die erraten? Code: Dim swApp As SldWorks.SldWorks Dim Model As SldWorks.ModelDoc2 Dim ps As PageSetup Dim swPrinter As String Sub main()
Set swApp = CreateObject("SldWorks.Application") Set Model = swApp.ActiveDoc Set ps = Model.PageSetup swPrinter = "OKI C5200n" '"OKI C5200n" '"\\server\Kyocera Mita KM-2030"
Dim pageArray(3) As Long pageArray(0) = 1 pageArray(1) = 1 pageArray(2) = 3 pageArray(3) = 3 Dim vPageArray As Variant vPageArray = pageArray Dim copies As Long copies = 1 Dim collate As Boolean collate = True ps.DrawingColor = swPageSetupDrawingColor_e.swPageSetup_BlackAndWhite ps.ScaleToFit = False ps.Scale2 = 100 ps.Orientation = swPageSetupOrientation_e.swPageSetupOrient_Portrait ps.PrinterPaperSize = 9 ps.PrinterPaperSource = 261 Model.Extension.PrintOut2 vPageArray, copies, collate, swPrinter, "" End Sub
Ich möchte das mit dem Makro selbst machen, also komplette Makros bitte mal noch nicht posten, andrerseits bin ich natürlich für jeden Tipp dankbar.
gruß Heiko ------------------ Umstieg auf 64bit OS, was meint ihr? Plauderthread Umfrage [Diese Nachricht wurde von Press play on tape am 16. Feb. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ralf Tide Moderator -
Beiträge: 4978 Registriert: 06.08.2001 Sehr seltsame Dinge passiern <Klaus Lage - Toy Story> .-)
|
erstellt am: 16. Feb. 2011 19:47 <-- editieren / zitieren --> Unities abgeben: Nur für Press play on tape
|
Press play on tape Ehrenmitglied Konstrukteur und sonst nix!
Beiträge: 1945 Registriert: 30.04.2007 Creo Elements Direct Modeling 17
|
erstellt am: 16. Feb. 2011 20:02 <-- editieren / zitieren --> Unities abgeben:
An alle ich habe den Eingangstext oben nun fertig editiert (wurde unterbrochen)
Zitat: Original erstellt von Ralf Tide: Hallo Heiko, ich bin mir nicht sicher aber im 3dcontentcentral gab es auch mal so was...Aber wenn Du Dir sowieso PAC4SWX anschaffst, ist das Makro überflüssig Bis demnäx, Ralf
Hallo Ralf,
dort gibts eines das alle geöffneten Zeichnungen druckt, allerdings auf dem aktuellen Drucker. Solche varianten gibts viele. Mein Problem ist daß der Drucker eingestellt werden muß und es eben nur diese eine Zeichnung drucken darf. Das mit dem PAC4SWX hat sich bei mir erledigt, Chef hatte es genehmigt aber es bringt mir nur bedingt etwas. Stattdessen bin ich in meinem PDM auf die Skripte gestoßen (Support konnte mir auf die Anfrage vor zwei Monaten aber nicht helfen, erst wenn mans selbst macht). Mir geht es dabei um die Liste die gedruckt werden muß, die Zeichnungen liegen in verschiedenen Unterordnern und ich filtere die im PDM. Diese Liste konnte ich leider nicht ins PAC4SWX übernehmen weshalb das jetzt wegfällt, da ich das mit den Skrpten im PDM (kann Makros ausführen) lösen konnte. Ich hoffe nur daß ich mich damit jetzt nicht übernehme und außerdem ist es interessant. Bei all den existierenden Makros hole ich mir auch die informationen die ich brauche, so ein Stück von dort und eines von dort gruß Heiko ------------------ Umstieg auf 64bit OS, was meint ihr? Plauderthread Umfrage
[Diese Nachricht wurde von Press play on tape am 16. Feb. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Volkmar Grube Mitglied Konstrukteur
Beiträge: 120 Registriert: 31.01.2009 WIN11 64Bit, SWX 2022, Delphi 10
|
erstellt am: 16. Feb. 2011 23:40 <-- editieren / zitieren --> Unities abgeben: Nur für Press play on tape
Hallo Heiko, ich habe vor einiger Zeit für uns sowas ähnliches geschrieben. Das Programm guckt in der Zeichnung nach den Zeichnungvorlagen der Zeichnung und dann in einer Datenbank nach dem Drucker, der dort der Vorlage der zu druckenden Seite zugeordnet ist und druckt dann alle für den automatischen Druck markierten Seiten. Außerdem sind in der Datenbank die Druckereinstellungen (Orientierung, Blattgröße, Schacht usw.) gespeichert. Es gibt da zwei Tabellen, eine zentrale und eine für die Arbeitsstation. Wenn einer Zeichnungsvorlage kein lokaler Drucker zugeordnet ist, wird die zentrale Zuordnung genommen. Das Programm ist in Delphi geschrieben und nutzt Extended ADS-Datenbanken (DBF auf ADS). Der lokale ADS-Datenbankserver ist frei und bedingt Netzwerkfähig und es können wohl maximal 10 Nutzer gleichzeitig auf die Tabellen zugreifen. Wenn Interesse da ist, könnte ich das am Wochenende mal aus der Umgebung lösen und senden. ------------------ Grüße aus Dresden Volkmar Grube Es gibt keine Probleme, es gibt nur Aufgaben. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HenryV Mitglied Konstrukteur, Engineering
Beiträge: 813 Registriert: 18.05.2005 SolidWorks 2022 x64 SP5.0 Dell Precision 5820 Intel Xeon W-2125 4x4GHz NVIDIA Quadro P2000 5GB 32GB RAM 2x Dell U2412M, 24" TFT Windows 10 Enterprise x64 22H2 Microsoft 365 E5 Microsoft Visual Studio Enterprise 2022
|
erstellt am: 17. Feb. 2011 08:02 <-- editieren / zitieren --> Unities abgeben: Nur für Press play on tape
Zitat: Original erstellt von Press play on tape: Kein Fred ohne eigentliche Frage, hier kommt sie:Bei ModelDoc2.Pagesetup.Orientation, kann ich anstatt den String der da gerade jetzt steht auch einfach eine Zahl nämlich 1 oder zwei verwenden (in einem Beispielmakro gesehen), der String der jetzt gerade drinsteht kommt aus einer Makroaufzeichnung. Frage, woher bekomme ich diese information ich habe in der API Hilfe nichts gefunden, muß man die erraten?
Hallo Heiko Jein, wenn du in der API-Hilfe zB. im "Orientation Property (IPageSetup)" bist, siehst du unten im Text "Return Value". Da steht "Page orientation as defined in swPageSetupOrientation_e", wenn du dann auf den Link klickst, kommst du zu "swPageSetupOrientation_e Enumeration". Hier sind unter "Members" die Einzelnen aufgelistet. Um an die Zahl zu kommen, kann man einfach durchzählen: 1 für swPageSetupOrient_Portrait 2 für swPageSetupOrient_Landscape Gruss Andreas
------------------ 21 ist nur die halbe Antwort. 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: 17. Feb. 2011 09:59 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe gerade den bisherigen code genaue hinterfragt und auskommentiert. Dabei habe ich ein Problem besser gesagt eine Stelle die mir nicht ganz klar ist. Code: Dim pageArray(3) As Long pageArray(0) = 1 pageArray(1) = 1 pageArray(2) = 3 pageArray(3) = 3Dim vPageArray As Variant vPageArray = pageArray . . . . Model.Extension.PrintOut2 vPageArray, copies, collate, swPrinter, ""
pageArray hat hier vier variablen zweimal die eins und zweimal die 3. In der Api Hilfe steht bei pageArray daß 1,1,3,3 die Seite 1 und die Seite 3 druckt. Habe ich das richtig verstanden? Oder bin ich da völlig auf dem Holzweg. Ich weis es ist etwas viel Hilfe von mir hier verlangt, wenns zuviel wird bitte PM an mich mit beschwerde und ich werde es reduzieren. An den restlichen Theman habe ich in der API schon weitergesucht und bei Isheet kann man die Blattgröße auslesen aber das dauert noch ein wenig. Erstmal alles richtig verstehen was man tut. gruß Heiko ------------------ Umstieg auf 64bit OS, was meint ihr? Plauderthread Umfrage Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
nahe Ehrenmitglied
Beiträge: 1747 Registriert: 18.01.2001 arbeite mit: Dell Precision 7750 i7 2,6 GHz 6 Kerne 32GB RAM 512GB SSD NVIDIA Quadro RTX 4000 ------------------------ SWX-2020 SP5.0 EPDM ---------------- Windows 10 ---------------- VB.net VB VBA ein wenig Swift am Mac
|
erstellt am: 17. Feb. 2011 10:24 <-- editieren / zitieren --> Unities abgeben: Nur für Press play on tape
Hallo Heiko eigentlich ist es in der Hilfe schön erklärt. PageArray contains any number of pairs of values, each pair indicating the start page and end page of a range of pages to print. For example, to print sheets 1, 2, 3, 6, and 7 of a drawing, the array should contain 4 elements; 1, 3, 6, 7. This means to print pages 1-3 and 6-7. A range can be 5, 5, which means to print just page 5. If the array contains only one value, only that page is printed. If that one element is 0, then all sheets are printed. Du brauchst immer ein Paar der Nummern. Ein Paar = 1. Nummer Startseite 2. Nummer Endseite die Seite(n) dazwischen inkl. Start- und Endseite werden gedruckt so wie ich es verstehe z.B.: die Zeichnung hat 5 Blätter willst Du Blatt 1 bis 5 drucken dann brauchst Du 2 Einträge 1,5 willst Du Blatt 2 und 4 bis 5 drucken brauchst Du 4 Einträge 2,2,4,5 willst Du Blatt 1, 3 und 5 drucken brauchst Du 6 Einträge 1,1,3,3,5,5 ------------------ Grüße Heinz 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: 17. Feb. 2011 14:42 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von nahe: Hallo Heikoeigentlich ist es in der Hilfe schön erklärt.
danke für die Antwort, das wurde schon erklärt und hab ich sogar gefunden , den code habe ich aber aus einem API Beispiel (und war mir unklar) und die Sequenz wird nicht erklärt deshalb meine Theorie ob durch den code da tasächlich 1,1,3,3 herauskommt. Hab jetzt einfach mal ein Dokument mit 4 Blättern gedruckt und siehe da es funktioniert nur Blatt 1 und 3 wird gedruckt also muß da jetzt ne 0 rein ich ändere das jetzt also ab in: Code: 'Dim pageArray(3) As Long 'nur die Seiten 1 und 3 werden gedruckt 'pageArray(0) = 1 'pageArray(1) = 1 'pageArray(2) = 3 'pageArray(3) = 3 'ergibt 1,1,3,3 für pageArray bei Printout2 'Dim vPageArray As Variant 'vPageArray = pageArrayDim pageArray As Long Dim vPageArray As Variant vPageArray = pageArray . . . . . Model.Extension.PrintOut2 vPageArray, copies, collate, swPrinter, "" 'Printfilname das letzte Argument muß leer = "" sein damit es auf dem Drucker gedruckt wird ansonsten wird in Datei gedruckt
------------------ Umstieg auf 64bit OS, was meint ihr? Plauderthread Umfrage [Diese Nachricht wurde von Press play on tape am 17. Feb. 2011 editiert.] 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: 21. Feb. 2011 23:06 <-- editieren / zitieren --> Unities abgeben:
Naja, mein Makro nimmt Gestalt an Code: ' ****************************************************************************** ' C:\Dokumente und Einstellungen\Ppot\Lokale Einstellungen\Temp\swx2196\Macro1.swb - macro recorded on 02/15/11 by Press play on tape' ****************************************************************************** Option Explicit'Dim swApp As SldWorks.SldWorks 'Dim Model As SldWorks.ModelDoc2 'Dim ps As PageSetup 'Dim swPrinter As String ' Drawing Paper Sizes Public Enum swDwgPaperSizes_e swDwgPaperAsize = 0 swDwgPaperAsizeVertical = 1 swDwgPaperBsize = 2 swDwgPaperCsize = 3 swDwgPaperDsize = 4 swDwgPaperEsize = 5 swDwgPaperA4size = 6 swDwgPaperA4sizeVertical = 7 swDwgPaperA3size = 8 swDwgPaperA2size = 9 swDwgPaperA1size = 10 swDwgPaperA0size = 11 swDwgPapersUserDefined = 12 End Enum Sub main()
Dim swApp As SldWorks.SldWorks Dim swModel As SldWorks.ModelDoc2 Dim swDraw As SldWorks.DrawingDoc Dim swSheet As SldWorks.Sheet Dim vSheetProps As Variant Dim swPs As PageSetup Dim swPrinter As String Set swApp = Application.SldWorks Set swDraw = swApp.ActiveDoc Set swModel = swApp.ActiveDoc Set swSheet = swDraw.GetCurrentSheet Set swPs = swModel.PageSetup swPrinter = "\\server\Kyocera Mita KM-2030" '"OKI C5200n" "\\server\Kyocera Mita KM-2030" "Samsung ML-2010 Series"
' Get current sheet properties vSheetProps = swSheet.GetProperties 'Dim pageArray(3) As Long 'nur die Seiten 1 und 3 werden gedruckt 'pageArray(0) = 1 'pageArray(1) = 1 'pageArray(2) = 3 'pageArray(3) = 3 'ergibt 1,1,3,3 für pageArray bei Printout2 'Dim vPageArray As Variant 'vPageArray = pageArray Dim pageArray As Long Dim vPageArray As Variant pageArray = 0 vPageArray = pageArray Dim copies As Long copies = 1 'Anzahl der Ausdrucke Dim collate As Boolean collate = True 'True = Seiten werden der Reihe nach ausgedruckt wenn copies >1 ist also 1,2,3... dann wieder 1,2,3... 'False = Seiten werden mehrfach gedruckt wenn copies >1 ist also 2x Seite 1 dann 2x Seite 2 ..... 'collate= kollationieren = seitenweises zusamentragen = sortiert ;-) swPs.DrawingColor = swPageSetupDrawingColor_e.swPageSetup_BlackAndWhite 'Druckfarbe hier s/w swPs.ScaleToFit = False 'Maßstab an Papier anpassen, False/True swPs.Scale2 = 100 'Maßstab in Prozent 100% = 1:1 swPs.Orientation = swPageSetupOrientation_e.swPageSetupOrient_Portrait 'Querformat oder Hochformat swPs.PrinterPaperSize = 9 'Drucker abhängiger Wert = von Drucker zu Drucker unterschiedlich hier 9 = A4 (Blattgröße des Druckers) swPs.PrinterPaperSource = 261 'Drucker abhängiger Wert = von Drucker zu Drucker unterschiedlich hier 261 = Auto (Papierschacht) Select Case vSheetProps(0) Case 7 Debug.Print "A4 hoch" Case 8 Debug.Print "A3" Case 9 To 11 Debug.Print "A2; A1 und A0" Case Else Debug.Print "etwas nicht definiertes" End Select swModel.Extension.PrintOut2 vPageArray, copies, collate, swPrinter, "" 'Printfilname das letzte Argument muß leer = "" sein damit es auf dem Drucker gedruckt wird ansonsten wird in Datei gedruckt ' Current sheet properties Debug.Print "Name = " + swSheet.GetName Debug.Print " TemplateName = " & swSheet.GetTemplateName Debug.Print " PaperSize = " & vSheetProps(0) Debug.Print " TemplateIn = " & vSheetProps(1) Debug.Print " Scale1 = " & vSheetProps(2) Debug.Print " scale2 = " & vSheetProps(3) Debug.Print " FirstAngle = " & vSheetProps(4) Debug.Print " Width = " & vSheetProps(5) Debug.Print " Height = " & vSheetProps(6) End Sub
Im Direktfenster sieht man schon daß es klappen sollte. Ich muß jetzt noch die Pagesetup in die Case Anweisungen stopfen dann sollte es gehen, hoff ich. Ich habe viel dazu gelernt und eigentlich wollte ich die Blattgröße nicht über die GetProperties sondern nur über GetSize von ISheet, aber das habe ich absolut nicht hinbekommen, da habe ich irgendetwas nicht verstanden, aber so geht es auch. Allerdings muß ich auch gestehen daß ich in der API das GetProperties Example nutzen konnte Es fehlt jetzt noch der ForceRebuild die Case Anweisungen fertig machen und aufräumen. Dann habe ich endlich einen integrierten Stapelplot und ein Druckmakro auf Knopfdruck. Für Kritik und Anregungen bin ich dankbar, wenngleich es auch sehr schwer ist sich dieses chaos durchzuwursteln. Das ganze zeigt aber auch wieviel mühe es macht so ein kleines Makro zu erstellen wenn auch Profis so etwas sicher recht zügig hinbekommen (ich darf nicht verraten wieviel Stunden ich da jetzt Bastle, ist aber mein Freizeitvergnügen, immer wieder ein bischen Zeit) gruß Heiko ------------------ Umstieg auf 64bit OS, was meint ihr? Plauderthread Umfrage Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
constructeur de machines Mitglied Konstrukteur
Beiträge: 13 Registriert: 14.11.2008 SolidWorks 2008 PDMWorks Enterprise
|
erstellt am: 22. Feb. 2011 12:00 <-- editieren / zitieren --> Unities abgeben: Nur für Press play on tape
Hallo Leute, zum Drucken mit ausgewähltem Drucker/Format gibt es was Fertiges. In einer IniDatei kann man definieren welches Format auf welchen Drucker soll. Es besteht auch die Möglichkeit das Programm in unterschiedliche Ordner zu speichern und jedem Ordner eine eigene IniDatei zu geben. Dann kann man z.B. 1:1 drucken und automatisch Laser oder Plotter auswählen, oder für die Werkstatt alles 1 Format kleiner auf den geeigneten Drucker/Plotter schicken oder als Übersicht jedes Format auf dem A3 Laser ausgeben. Nennt sich PrintMan und kann unter http://www.umct.de/ bei Download herunter geladen werden. Letztes Update ist vom 14.11.2010, es lebt also noch. Ist halt eine Exe und kein Makro und druckt nur die aktuell geöffnete Zeichnung, aber vieleicht hilft es weiter. Programm und Autor sind auch hier im Forum genannt. Der kann da sicher was beisteuern. Gruß cdm 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: 22. Feb. 2011 23:41 <-- editieren / zitieren --> Unities abgeben:
Hallo, mein Makro ist nun fertig. Wenn im Makro der Drucker eingetragen wird und einmalig die Seiteneinrichtung vorgenommen wird liest das Makro die Seitengröße aus und wählt passend die Druckeinstellungen. Man kann also ohne die Seiteneinstellungen zu prüfen drucken. Wie oebn schon erwähnt habe ich es in der Hauptsache gemacht um in einem Skript (PDM) zu nutzen und dadurch die Möglichkeit eines Stapelplotts aus einer Listeransicht heraus. Aber auch die ein klick Drucklösung ist sehr reizvoll muß man nämlich nicht immer schauen ob man gerade auf A3 oder A4 gestellt hat. Vorraussetzung ist daß eine Zeichnung gelöffnet ist. Ein Modellneuaufbau wird nicht gemacht, es wird nicht geprüft ob eine Zeichnung geöffnet ist oder sonst irgeneine Prüfung vorgenommen, alles reiner Ablauf. Zielgruppe sind Laserdrucker Drucker die ab und zu A3 ausdrucken und die Druckereinstellungen immer mal wieder ändern müssen. Ein wirklich übertriebn kommentiertes Makro ist im Anhang, es ist wirklich sehr viel kommentiert so daß es sich doch jeder anpassen können sollte. Es gibt noch einige andere Druckmakros im Netz Gratis zu finden z.B. den Printman auf der Makromania oder dieses hier. Aber eines in dieser Art habe ich nicht gefunden was mich veranlasst hat mich ausnahmsweise mal selbst daran zu versuchen. Hier das Makro, der Anhang ist ausführlich kommentiert und nebenbei bemerkt mit sehr schlechter englischer Grammatik. Code:
Option Explicit'Drawing Paper Sizes Public Enum swDwgPaperSizes_e swDwgPaperAsize = 0 swDwgPaperAsizeVertical = 1 swDwgPaperBsize = 2 swDwgPaperCsize = 3 swDwgPaperDsize = 4 swDwgPaperEsize = 5 swDwgPaperA4size = 6 swDwgPaperA4sizeVertical = 7 swDwgPaperA3size = 8 swDwgPaperA2size = 9 swDwgPaperA1size = 10 swDwgPaperA0size = 11 swDwgPapersUserDefined = 12 End Enum Sub main()
Dim swApp As SldWorks.SldWorks Dim swModel As SldWorks.ModelDoc2 Dim swDraw As SldWorks.DrawingDoc Dim swSheet As SldWorks.Sheet Dim swPs As PageSetup Dim vSheetProps As Variant Dim swPrinter As String Set swApp = Application.SldWorks Set swDraw = swApp.ActiveDoc Set swModel = swApp.ActiveDoc Set swSheet = swDraw.GetCurrentSheet Set swPs = swModel.PageSetup Dim pageArray As Long Dim vPageArray As Variant pageArray = 0 vPageArray = pageArray Dim copies As Long copies = 1 'Anzahl der Ausdrucke Dim collate As Boolean collate = True vSheetProps = swSheet.GetProperties Select Case vSheetProps(0) Case 7 swPs.DrawingColor = 3 'Farben in Zeichnungen, auto = 1 Farb/Grau = 2 s/w = 3 swPs.ScaleToFit = False 'Scale to Fit, False/True swPs.Scale2 = 100 'Scale value in percent swPs.Orientation = 1 'Orientation Portrait = 1 Landscape = 2 swPs.HighQuality = False 'High Quality, False/True swPs.PrinterPaperSize = 9 'von Drucker abhängig swPs.PrinterPaperSource = 261 'von Drucker abhängig swPrinter = "\\server\Kyocera Mita KM-2030" 'Drucker swModel.Extension.PrintOut2 vPageArray, copies, collate, swPrinter, "" Case 8 swPs.DrawingColor = 3 swPs.ScaleToFit = False swPs.Scale2 = 100 swPs.Orientation = 2 swPs.HighQuality = False swPs.PrinterPaperSize = 10 swPs.PrinterPaperSource = 261 swPrinter = "\\server\Kyocera Mita KM-2030" swModel.Extension.PrintOut2 vPageArray, copies, collate, swPrinter, "" Case 9 To 11 swPs.DrawingColor = 3 swPs.ScaleToFit = True 'swPs.Scale2 = 100 swPs.Orientation = 2 swPs.HighQuality = False swPs.PrinterPaperSize = 10 swPs.PrinterPaperSource = 261 swPrinter = "\\server\Kyocera Mita KM-2030" swModel.Extension.PrintOut2 vPageArray, copies, collate, swPrinter, "" Case Else MsgBox "Sheetsize not defined, print by menu or edit macro" End Select End Sub
gruß Heiko ------------------ Umstieg auf 64bit OS, was meint ihr? Plauderthread Umfrage [Diese Nachricht wurde von Press play on tape am 22. Feb. 2011 editiert.] [Diese Nachricht wurde von Press play on tape am 22. Feb. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Olls Lai Lolli Mitglied Konstrukteur
Beiträge: 366 Registriert: 07.05.2009 MS Windows 10 Prof. Intel Xeon E5-1630 v 3 3.7 GHz 32 GB Ram Nvidia Quadro M4000 SWX 2019 x64 SP 5 PDM Enterprise 2019 SP 3
|
erstellt am: 08. Mrz. 2011 19:05 <-- editieren / zitieren --> Unities abgeben: Nur für Press play on tape
Hallo Heiko, vielen Dank für dein ausführlich kommentiertes Makro. Ich hab gerade mit der Hilfe deiner Hinweise versucht, das Makro auf meine Umgebung anzupassen. Das ermitteln der Nummern für Papierquelle und Papiergröße beim Drucker hat auch gleich geklappt. Wo ich aber gewaltig hänge ist gleich am Anfang, dort wo die Größe der Zeichnung ermittelt wird. Ich hab mir die Stelle wie folgt angepasst: Code: Public Enum swDwgPaperSizes_e swDwgPaperA0size = 0 swDwgPaperA1size = 1 swDwgPaperA2size = 2 swDwgPaperA3size = 3 swDwgPaperA4size = 4 swDwgPaperA4sizeVertical = 5 swDwgPapersUserDefined = 6 End Enum
Die Papierformate A-E kommen bei mir nicht vor deswegen habe ich sie raus genommen. Wenn ich jetzt das Makro starte kommt immer die Meldung für nicht definiertes Blattformat. Kannst du mir bitte den Bereich in dem das Blattformat ermittelt wird, noch etwas ausführlicher erklären? Gruß OLL 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: 08. Mrz. 2011 22:06 <-- editieren / zitieren --> Unities abgeben:
Hallo Oll, zunächst mal freut es mich daß sich noch jemand für so ein Makro interessiert. Erstaunlicherweise hat sich das bei mir im Einsatz bisher bewährt. Dann hast Du einen Gewaltigen Fehler gemacht. Die Zahlen beim Enum darfst Du nicht verändern, vielmehr ist es in diesem Fall eher ein Nachschlagewerk zum nachschauen für Dich welche Zahl ein DIN A4 Format hat. die Werte kommen so aus SolidWorks (habs gerade extra nochmal getestet was passiert wenn ich es ändere) die sind dort so hinterlegt. Also auch wenn Du keine amerikanischen Formate verwendest bleiben die zahlen für A4 hoch z.B. die 7. Was mit diesen Zahlen passiert steht in den Case Anweisungen Code:
vSheetProps = swSheet.GetProperties Select Case vSheetProps(0)
die erste Zeile holt ein ganzes Bündel an Informationen über das Zeichnungsblatt unter anderem die Blattgröße und gibt sie der Variablen vSheetprops. Die zweite Zeile Select Case vSheetprops (0) sagt wähle einen Fall aus und zwar über den Wert der in vSheetprops bei (0) steht, hier stehen diese im Enum gezeigten Zahlen. Im folgenden Ausschnitt des Codes steht dann was in welchem Fall passiert. In meinem Beispiel sage ich in Case 7 (wenn die 7 wird aus vSheetprops (0)) ausgelesen wird, wird der Druckmaßstab auf 100% gesetzt (beachten daß dabei Scale to fit = fals stehen muß), auf s/w Druck umgestellt und Orientierung auf Hochformat gestellt. In Case 8 steht dasselbe fürs DIN A3 Format und im Bereich Case 9 To 11 werden die Formate A2 bis A0 mit auf Blattformat anpassen auf Din A3 gedruckt. Wenn Du also hier einen Plotter ansprechen willst müsstest Du hier die einzelnen Formate trennen und die Fälle (Case) 9,10 und 11 getrennt behandeln. Das Case else heißt einfach alles was nicht behandelt wird bekommt die Message Box daß es nicht definiert ist, deshalb kommt diese Meldung bei Dir.
Code: Case 7 'die 7 steht für den Wert im Enum also Fall 7 = A4 hoch swPs.DrawingColor = 3 'Farben in Zeichnungen, auto = 1 Farb/Grau = 2 s/w = 3 swPs.ScaleToFit = False 'Scale to Fit, False/True swPs.Scale2 = 100 'Scale value in percent swPs.Orientation = 1 'Orientation Portrait = 1 Landscape = 2 swPs.HighQuality = False 'High Quality, False/True swPs.PrinterPaperSize = 9 'von Drucker abhängig swPs.PrinterPaperSource = 261 'von Drucker abhängig swPrinter = "\\server\Kyocera Mita KM-2030" 'Drucker swModel.Extension.PrintOut2 vPageArray, copies, collate, swPrinter, "" Case 8 'Fall Nr. 8 = A3 swPs.DrawingColor = 3 swPs.ScaleToFit = False swPs.Scale2 = 100 swPs.Orientation = 2 swPs.HighQuality = False swPs.PrinterPaperSize = 10 swPs.PrinterPaperSource = 261 swPrinter = "\\server\Kyocera Mita KM-2030" swModel.Extension.PrintOut2 vPageArray, copies, collate, swPrinter, "" Case 9 To 11 'bedeutet die Fälle 9 bis 11 = A2, A1 und A0 swPs.DrawingColor = 3 swPs.ScaleToFit = True 'swPs.Scale2 = 100 swPs.Orientation = 2 swPs.HighQuality = False swPs.PrinterPaperSize = 10 swPs.PrinterPaperSource = 261 swPrinter = "\\server\Kyocera Mita KM-2030" swModel.Extension.PrintOut2 vPageArray, copies, collate, swPrinter, "" Case Else MsgBox "Sheetsize not defined, print by menu or edit macro" End Select
Ich hoffe meine Erklärungen helfen Dir etwas weiter. Theoretisch könnte man folglich das Public Enum am Anfang einfach weglassen da die deklarationen aus SolidWorks kommen. gruß Heiko ------------------ Umstieg auf 64bit OS, was meint ihr? Plauderthread Umfrage Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Olls Lai Lolli Mitglied Konstrukteur
Beiträge: 366 Registriert: 07.05.2009 MS Windows 10 Prof. Intel Xeon E5-1630 v 3 3.7 GHz 32 GB Ram Nvidia Quadro M4000 SWX 2019 x64 SP 5 PDM Enterprise 2019 SP 3
|
erstellt am: 09. Mrz. 2011 07:36 <-- editieren / zitieren --> Unities abgeben: Nur für Press play on tape
Hallo Heiko, sowas hab ich schon vermutet, mir ist nämlich aufgefallen, dass die Nummerierung genau identisch ist mit der Reihenfolge der Auflistung wie die Blattvorlagen aufgeführt werden. Jetzt hab ich den Salat. Die Zeichnungen die ich drucken will sind selbst definierte Blattformate :-( Und es wird nicht bei diesen bis jetzt existierenden Vorlagen bleiben, da kommen noch weitere von den Kunden dazu. Ich hatte mir so ein Makro schonmal für eine andere CAD Software programmiert, da bin ich einen anderen Weg gegangen. Zur Ermittlung der Blattgröße habe ich die Blattabmessungen ausgelesen, dann verglichen x und y um fest zu stellen ob quer oder hoch Format und dann anhand der Längen die Blattformate beim Drucker eingestellt. Komm ich bei SWX Balttformat unabhängig an die Abmessungen ran? Gruß OLL Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HenryV Mitglied Konstrukteur, Engineering
Beiträge: 813 Registriert: 18.05.2005 SolidWorks 2022 x64 SP5.0 Dell Precision 5820 Intel Xeon W-2125 4x4GHz NVIDIA Quadro P2000 5GB 32GB RAM 2x Dell U2412M, 24" TFT Windows 10 Enterprise x64 22H2 Microsoft 365 E5 Microsoft Visual Studio Enterprise 2022
|
erstellt am: 09. Mrz. 2011 08:00 <-- editieren / zitieren --> Unities abgeben: Nur für Press play on tape
Hallo OLL Ja kommst du. Mit der Zeile Code: ' Get current sheet properties vSheetProps = swSheet.GetProperties
,welche du schon hast, bekommst du einen Array zurück, welcher folgenen Inhalt hatpaperSize = Paper size. This value is a long packed into a double and is represented by the swDwgPaperSizes_e enumeration. templateIn = Template index. This value is a long packed into a double and is represented by the swDwgTemplates_e enumeration. scale1 = Scale numerator. scale2 = Scale denominator. firstAngle = Value is a boolean packed into a double and returns True if the sheet is using first angle projection and false if not. width = Paper width. height = Paper height. Also nur Code: Width = vSheetProps(5) Height = vSheetProps(6)
und du hast Länge und BreiteGruss Andreas ------------------ 21 ist nur die halbe Antwort. 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: 09. Mrz. 2011 08:05 <-- editieren / zitieren --> Unities abgeben:
Hallo, die Blattabmessungen werden bei diesem Makro tatsächlich schon geholt. Ich bin ja den Weg über getsheetprperties gegangen. Da stehen einige Informationen drin. Im ausführlichen Makro (Dateianhang) stehen ganz unten einige Debug Prints´von vSheetProps. vSheetProps ist ein variant und hat bei (0) die Blattgröße also DIN A4h oder A3. Alles was sich nicht in die amerikanischen oder deutschen größen einsortieren lässt gibt die Nr. 12 aus. Sollten Deine benutzerdefinierten Blattformate also immer quer sein würde es genügen ein Case 12 anzulegen oder den Case 9 To 11 erweitern auf 9 To 12. Bei vSheetProps wird auch die Blatthöhe ausgegeben und die Breite, die Breite wäre also vSheetProps (5) und die Höhe vSheetProps (6). Wenn Du das Makro im Makroeditor laufen lässt und das Direktfenster einschaltest kannst Du sehen was vSheetProps alles enthält müsstest eben damit weiterarbeiten. Wenn Du Anhaltspunkte brauchst wie man das mit den größen lösen könnte, könntest Du etwas beim Blattformat tauschen Makro von Stefan Berlitz abkupfern soweit mir in Erinnerung ist er den Weg über die Größen gegangen weis ich aber nicht mehr genau. Das Makro findest Du in der Makromania unter der Nummer 29 bei Stefans Makros. Aber wenn Deine selbstdefinierten größen eh alle quer sind kannst ja einfach mal den Fall 12 versuchen. Solange Du angepasst also auf A3 oder so drucken willst, alles andere geht dann natürlich nicht mehr weils ja dann Unterschiede gibt. gruß Heiko ------------------ Umstieg auf 64bit OS, was meint ihr? Plauderthread Umfrage 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: 09. Mrz. 2011 08:11 <-- editieren / zitieren --> Unities abgeben: Nur für Press play on tape
Hallo OLL, benutzerdefinierte Blattformate liefern dir als "Blattgröße" immer swDwgPapersUserDefined = 12 zurück (BTW, du darfst doch nicht einfach Konstanten verändern und dann hoffen, das der Rest noch funktioniert ) D.h. um das auf deine Blattformate anzupassen gehst du am besten nicht über die vSheetProps(0) von Sheet::GetProperties, das gibt dier ja die "Blattgröße" zurück, sondern gehst über die vSheetProps(5) und vSheetProps(6), in der die Blattabmessungen stehen und orientierst dich daran. Das mach ich im PAC4SWX auch so, ist sicherer, da es ja durchaus auch sein kann, dass jemand ein benutezrdefinertes Blattformat hat, was zufällig genau so groß ist wie ein A3 quer usw. Früher hing das z.B. damit zusammen, ob du die original Blattformatnamen wie temp_a3.slddrt benutzt hast oder einen eigenen Namen ... Also du unterscheidest dann am besten ungefähr in dem Stil:
Code: If vSheetProps(5) = 0.297 AND vSheetProps(6) = 0.210 then ' hier die Werte für A4 quer eintragen ... else If vSheetProps(5) = 1.500 AND vSheetProps(6) = 0.594 then ' hier das Spezielformat 1500 x 594 mm ...
Ich hoffe du verstehst, wie das gemeint istCiao, Stefan ------------------ Inoffizielle deutsche SolidWorks Hilfeseite http://solidworks.cad.de Stefans SolidWorks Blog 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: 09. Mrz. 2011 09:14 <-- editieren / zitieren --> Unities abgeben:
Hallo, nur nochmal daß wir uns richtig verstehen, die Blattformatgrößen Deiner Kunden weichen von den üblichen Formaten DIN A4, A3 usw. in der größe ab? Oder unterscheiden Sie sich deshalb nur vom Original weil sie anders aussehen? Ich frage deshalb weil GetProperties einmal die Vorlage ausliest und einmal die Blattgröße. Die Vorlage ist ja eigentlich bei jedem 12 also benutzerdefiniert während die Blattgröße meist die DIN Formate haben. Ich meine ich ja schon von Sonderformaten gehört bzw. welche gesehen aber das war wirklich mal exotisch und in der Regel verlängerte DIN Formate z.B. Höhe A1 aber 2 Meter lang. gruß Heiko ------------------ Umstieg auf 64bit OS, was meint ihr? Plauderthread Umfrage Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Olls Lai Lolli Mitglied Konstrukteur
Beiträge: 366 Registriert: 07.05.2009 MS Windows 10 Prof. Intel Xeon E5-1630 v 3 3.7 GHz 32 GB Ram Nvidia Quadro M4000 SWX 2019 x64 SP 5 PDM Enterprise 2019 SP 3
|
erstellt am: 09. Mrz. 2011 12:48 <-- editieren / zitieren --> Unities abgeben: Nur für Press play on tape
Mahlzeit, erst mal vielen Dank an alle für die gewaltige Unterstützung Zitat: Original erstellt von Press play on tape: ....die Blattformatgrößen Deiner Kunden weichen von den üblichen Formaten DIN A4, A3 usw. in der größe ab?
Nein, bisher noch nicht, auser ab und zu ein paar oversized Blätter wie du es unten beschrieben hast. Zitat: Oder unterscheiden Sie sich deshalb nur vom Original weil sie anders aussehen?
Genau, es sind halt abweichende Zeichnungsrahmen/Schriftfelder.
Zitat: Original erstellt von Stefan Berlitz: ....Also du unterscheidest dann am besten ungefähr in dem Stil:
Danke für den Ansatz, ich werde es so mal probieren. Zitat: ....Ich hoffe du verstehst, wie das gemeint ist
Ich hoff mal, dass ich es verstanden habe, ansonsten melde ich mich ganz schnell wieder
[Diese Nachricht wurde von Olls Lai Lolli am 09. Mrz. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Olls Lai Lolli Mitglied Konstrukteur
Beiträge: 366 Registriert: 07.05.2009 MS Windows 10 Prof. Intel Xeon E5-1630 v 3 3.7 GHz 32 GB Ram Nvidia Quadro M4000 SWX 2019 x64 SP 5 PDM Enterprise 2019 SP 3
|
erstellt am: 15. Mrz. 2011 21:18 <-- editieren / zitieren --> Unities abgeben: Nur für Press play on tape
|
Thisoft Mitglied Konstrukteur
Beiträge: 178 Registriert: 10.04.2010
|
erstellt am: 24. Mai. 2011 08:22 <-- editieren / zitieren --> Unities abgeben: Nur für Press play on tape
Hallo Heiko, ich bin auch gerade dabei, Dein Makro auf meine Bedürfnisse anzupassen. Dein Ansatz ist sehr gut und trifft im Wesentlichen auch genau meine Bedürfnisse. Eine Frage habe ich allerdings bei der mir auch die API-Hilfe nicht weitergeholfen hat. Und zwar ist das die Sache mit dem PageArray. Mir ist klar, wie ich bestimmte oder eben alle Blätter ansprechen kann - aber wie kann ich dort einstellen, dass das gerade aktive Blatt und nur das! gedruckt wird? Ich kann zwar den Blattnamen ermitteln, aber wie setze ich den in eine Nummer für das PageArray um? Danke und Gruß Thilo Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HenryV Mitglied Konstrukteur, Engineering
Beiträge: 813 Registriert: 18.05.2005 SolidWorks 2022 x64 SP5.0 Dell Precision 5820 Intel Xeon W-2125 4x4GHz NVIDIA Quadro P2000 5GB 32GB RAM 2x Dell U2412M, 24" TFT Windows 10 Enterprise x64 22H2 Microsoft 365 E5 Microsoft Visual Studio Enterprise 2022
|
erstellt am: 24. Mai. 2011 08:41 <-- editieren / zitieren --> Unities abgeben: Nur für Press play on tape
|
Thisoft Mitglied Konstrukteur
Beiträge: 178 Registriert: 10.04.2010
|
erstellt am: 24. Mai. 2011 09:24 <-- editieren / zitieren --> Unities abgeben: Nur für Press play on tape
|
Press play on tape Ehrenmitglied Konstrukteur und sonst nix!
Beiträge: 1945 Registriert: 30.04.2007 Creo Elements Direct Modeling 17
|
erstellt am: 19. Jan. 2012 09:08 <-- editieren / zitieren --> Unities abgeben:
Hallo, bei mir kam per Mail eine Frage auf warum manche Zeichnungen nicht gedruckt werden. Wenn da die Meldung kommt "sheet size not defined...." heißt das, dass es ein benutzerdefiniertes Blattformat ist. Dieses kann durchaus auch die üblichen DIN Abmessungen haben, wird aber mit diesem einfachen Makro nicht gedruckt, dazu müsste man die Blattgröße (nicht das Format) auslesen und vergleichen. Im Anhang ein Bild wo kein Haken stehen darf. gruß Heiko ------------------ CAD.de Treffen Stuttgart nicht nur Pro/E!!!! 64bit sind kein Thema mehr ;-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
GrünesTelefon Mitglied Konstrukteur
Beiträge: 156 Registriert: 14.06.2005 SW2016 SP5.0 auf W7 64bit
|
erstellt am: 19. Jan. 2012 12:03 <-- editieren / zitieren --> Unities abgeben: Nur für Press play on tape
... würde ja im Umkehrschluss bedeuten, dass alles was da kein Häkchen hat, eigentlich auch eines der vordefinierten Blattformate besitzen sollte. Habe aber immernoch das Problem dass bei einer ganz bestimmten Vorlage (vom Kunden) das Makro nichts zuordnen kann. Ich glaub ich befrage dazu mal den Support. Vielen Dank schonmal für deine Antwort! ------------------ MfG -GrünesTelefon- 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: 19. Jan. 2012 14:57 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von GrünesTelefon: ... würde ja im Umkehrschluss bedeuten, dass alles was da kein Häkchen hat, eigentlich auch eines der vordefinierten Blattformate besitzen sollte. Habe aber immernoch das Problem dass bei einer ganz bestimmten Vorlage (vom Kunden) das Makro nichts zuordnen kann. Ich glaub ich befrage dazu mal den Support.Vielen Dank schonmal für deine Antwort!
meiner Ansicht nach ja! Wenn ich auch nicht der Makro Guru bin Besteht die Möglichkeit die Vorlage mal zu bekommen? Wenn nicht über Anhang evtl. per Mail?(über PM ausmachen) gruß Heiko Edit: Sorry, es gibt noch den Fall, dass es sich um die Amerikanischen Formate A-E handelt, wenn es eines dieser Formate ist, müsste man es im Makro entsprechen bei den case Anweisungen hinzufügen in der Art: Code: Case 7 swPs.DrawingColor = 3 'Farben in Zeichnungen, auto = 1 Farb/Grau = 2 s/w = 3 swPs.ScaleToFit = False 'Scale to Fit, False/True swPs.Scale2 = 100 'Scale value in percent swPs.Orientation = 1 'Orientation Portrait = 1 Landscape = 2 swPs.HighQuality = False 'High Quality, False/True swPs.PrinterPaperSize = 9 'von Drucker abhängig swPs.PrinterPaperSource = 261 'von Drucker abhängig swPrinter = "\\server\Kyocera Mita KM-2030" 'Drucker swModel.Extension.PrintOut2 vPageArray, copies, collate, swPrinter, ""
entsprechend eingestellt hinzu fügen. gruß Heiko ------------------ CAD.de Treffen Stuttgart nicht nur Pro/E!!!! 64bit sind kein Thema mehr ;-) [Diese Nachricht wurde von Press play on tape am 19. Jan. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andi Beck Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 2572 Registriert: 02.10.2006 Firma: SW 2023-4.0 + PDM Prof. Windows 10 Pro 64bit, i9-11900 32 GbRAM, Quadro P2200 Home: SW 2022-5.0 Passungstabelle von Heinz Windows 11 Pro 64bit, i7-12700K, 32 GbRAM, GeForce GTX 1050Ti Samsung C34H892, 3440x1440 Pixel
|
erstellt am: 19. Jan. 2012 18:56 <-- editieren / zitieren --> Unities abgeben: Nur für Press play on tape
Hallo, wobei folgendes gilt: swDwgPaperAsize = Case 0 swDwgPaperAsizeVertical = Case 1 swDwgPaperBsize = Case 2 swDwgPaperCsize = Case 3 swDwgPaperDsize = Case 4 swDwgPaperEsize = Case 5 swDwgPapersUserDefined = Case 12 Nur der vollständigkeit halber, falls sich jemand nicht die Mühe macht, den kompletten Thread nachzulesen. Grüße, Andi ------------------ Hast du kein Problem? Such dir eins. ( Und löse es ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
GrünesTelefon Mitglied Konstrukteur
Beiträge: 156 Registriert: 14.06.2005 SW2016 SP5.0 auf W7 64bit
|
erstellt am: 20. Jan. 2012 14:42 <-- editieren / zitieren --> Unities abgeben: Nur für Press play on tape
Hallo zusammen! Habe nun mal um den Fehler einzugrenzen jedem Case einen anderen Text gegeben. Meine Standard-A1-Vorlage hat tatsächlich die 12. Wenn ich mal Zeit hab, werde ich diese Vorlage wohl mal neu machen (aus der Standard-SWX -Vorlage und dem Inhalt vom Kunden). ------------------ MfG -GrünesTelefon- Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Olls Lai Lolli Mitglied Konstrukteur
Beiträge: 366 Registriert: 07.05.2009 MS Windows 10 Prof. Intel Xeon E5-1630 v 3 3.7 GHz 32 GB Ram Nvidia Quadro M4000 SWX 2019 x64 SP 5 PDM Enterprise 2019 SP 3
|
erstellt am: 21. Jan. 2012 07:43 <-- editieren / zitieren --> Unities abgeben: Nur für Press play on tape
Zitat: Original erstellt von GrünesTelefon: ...Wenn ich mal Zeit hab, werde ich diese Vorlage wohl mal neu machen (aus der Standard-SWX-Vorlage und dem Inhalt vom Kunden)...
Braucht du nicht, probier mal die von mir modifizierte Variante dieses Makros. [Diese Nachricht wurde von Olls Lai Lolli am 21. Jan. 2012 editiert.] 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: 21. Jan. 2012 18:42 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von Olls Lai Lolli: Braucht du nicht, probier mal die von mir modifizierte Variante dieses Makros. [Diese Nachricht wurde von Olls Lai Lolli am 21. Jan. 2012 editiert.]
Ja ist nicht so schlecht, es wird aber nur die Länge und die Breite miteinander verglichen und entsprechend dem längen-breiten Verhältnis auf quer oder längs gestellt und schlußendlich auf Din A4 bzw. Din A3 gedruckt(vermutl. A4, da ein A4 Format auf A3 nicht so gut kommt). Vorteil die Blattgröße spielt keine Rolle es ist also egal ob eines auf benutzerdefiniert steht. Allerdings hilft mir selbst diese modifikation nicht viel weiter da ich gerne meine Formate von A3-A0 auch auf A3 gedruckt haben will. Jetzt könnte man natürlich sagen kein Problem, wir vergleichen die vsheetprops einfach mit entsprechenden größen und stellen entsprechend das Blattformat im Druckdialog um. In der Makromania ist das im Makro Blattformat tauschen von Stefan Berlitz auch als Beispiel vorhanden. gruß Heiko ------------------ CAD.de Treffen Stuttgart nicht nur Pro/E!!!! 64bit sind kein Thema mehr ;-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Olls Lai Lolli Mitglied Konstrukteur
Beiträge: 366 Registriert: 07.05.2009 MS Windows 10 Prof. Intel Xeon E5-1630 v 3 3.7 GHz 32 GB Ram Nvidia Quadro M4000 SWX 2019 x64 SP 5 PDM Enterprise 2019 SP 3
|
erstellt am: 21. Jan. 2012 21:10 <-- editieren / zitieren --> Unities abgeben: Nur für Press play on tape
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|