| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS | | |  | 7 Tipps für die Konstruktion von Kunststoffteilen und Spritzgussformen, ein Webinar am 27.06.2025
|
Autor
|
Thema: Vorschaubild speichern (2203 mal gelesen)
|
manoc Mitglied Konstrukteur, CAD-Admin, Berechnungsingenieur
 
 Beiträge: 104 Registriert: 06.12.2004
|
erstellt am: 04. Dez. 2009 08:05 <-- editieren / zitieren --> Unities abgeben:         
Hallo zusammen, obwohl ich nicht viel Ahnung davon habe, versuche ich gerade ein Makro zu schreiben, das folgendes tun soll: 1) Die aktuelle Zeichnung als hochauflösendes tiff in das gleiche Verzeichnis wie die slddrw abspeichern. 2) Die Tiff-Datei mittels IrfanView auf eine bestimmte Pixelhöhe resampeln. Das Ganze sollen Vorschaubilder für unser ERP werden. Jetzt wird gleich die Frage kommen, warum ich das tiff-Bild nicht gleich beim Erzeugen verkleinere? Ganz einfach, auf diese Weise erhalte ich eine viel höhere Darstellungsqualität, da so die Strichstärkenverhältnisse erhalten bleiben. Mit absoluten Pfaden klappt das auch schon wunderbar, allerdings habe ich noch nicht herausgefunden, wie ich Pfad/Dateiname der aktuellen slddrw auslesen, und daraus den neuen Namen generieren kann. Hab die macromania schon durchgekämmt und glaubte, mit "savequalitybitmap" schon an der Lösung zu sein, hab es aber leider doch nicht hingekriegt. Hat jemand zufällig ein Makro "rumliegen", aus dem ich diese Dateinamenausleseroutine nehmen könnte? Oder gibt es hierfür vielleich sogar noch eine bessere, ganz andere Lösung? Wäre toll, wenn mir jemand helfen könnte freundliche Grüße aus dem Schwarzwald Martin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
GWS Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau

 Beiträge: 2415 Registriert: 23.07.2001 SWX 24 SP3, PDM Prof. auf Dell Precision 3640 /32GB / NVDIA Quadro P2200 / Win 11
|
erstellt am: 04. Dez. 2009 08:50 <-- editieren / zitieren --> Unities abgeben:          Nur für manoc
So viel Arbeit würde ich mir nicht machen, das gibt es günstiger  Guck dir mal pac4SWX von Stefan an. Das kann dir aus allen Zeichnungsableitungen eines Verzeichnisses in einem Batch die TIFFs erstellen und Irfan hat auch einen Batchmodus, der auch über Unterverzeichnisse scannen kann. Ich denke nicht, dass du dazu ein extra Makro brauchst. Grüße Günter ------------------ Wie man Fragen richtig stellt 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: 04. Dez. 2009 08:52 <-- editieren / zitieren --> Unities abgeben:          Nur für manoc
Hallo Martin, Pfad zum gespeicherten Dokument mit vollem Dateinamen rauszufinden kannst du in http://solidworks.cad.de/mm_05.htm sehen, der entscheidende Teil ist
Code: temp = DrawingDoc.GetPathName ' da wir nur den Pfad brauchen alles andere abtrennen For i = Len(temp) To 1 Step -1 If Mid$(temp, i, 1) = "\" Then pfad = Left(temp, i) Exit For End If Next i
Der untere Teil trennt dabei von hinten aus alles bis zum letzten "\" ab, wenn du also denselben Namen und Pfad wie die Zeichnung für dein TIFF haben willst suchst du nicht nach "\" von hinten aus, sondern nach dem Punkjt "." und hängst wieder ein "tif" an.Eine Zeichnung kannst du natürlich auch direkt als TIFF abspeichern, wenn du immer mit festen Randparametern arbeiten willst (also Größe in Pixel, Schwarz/weiß oder farbig, Kompressionsschema usw.) kannst du diese Optionen auch vom Makro auch setzen und direkt das passende TIFF speichern. Das ist einfacher und besser als der Umweg über eine große Bitmap (die an Hardwaregrenzen wie Speicher der Grafikkarte "interessante" bis merkwürdige Effekte liefern kann), funktioniert allerdings nur bei Zeichnungen. Stichworte dazu sind SetUserPreferenceDoubleValue mit swTiffPrintDrawingPaperHeight und swTiffPrintDrawingPaperWidth, UserPreferenceIntegerValue mit swTiffPrintDPI, swTiffCompressionScheme usw.; das ist ein bisschen tricky, als Tipp: du kannst auch per API die Optionen nur so setzen, wie du es interaktiv machen kannst. Ciao, Stefan ------------------ Inoffizielle deutsche SolidWorks Hilfeseite http://solidworks.cad.de Stefans SolidWorks Blog Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
manoc Mitglied Konstrukteur, CAD-Admin, Berechnungsingenieur
 
 Beiträge: 104 Registriert: 06.12.2004
|
erstellt am: 04. Dez. 2009 11:09 <-- editieren / zitieren --> Unities abgeben:         
Hallo Stefan, vielen Dank für den Tipp, funktioniert prima. Eine Frage hätt ich noch: Gibt es eine elegante Methode, den Dateinamen an den Shell-Aufruf von Irfanview zu übergeben? (momentan setze ich einen "shellstring" zusammen und übergib den dann an den Shellbefehl, funktioniert zwar, wenn auch nicht sehr elegant) zum direkten Speichern der tiff aus SolidWorks: Ich habe KEINE Einstellung gefunden, die mir die gewünschte Darstellungsqualität geliefert hätte, daher der Umweg über IrfanView. nochmals Danke und viele Grüße aus dem Schwarzwald Martin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |