Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Makro - Speichern als PNG oder JPEG

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
  
FACTORY OF THE FUTURE - Von der traditionellen Fertigung zur vernetzten Fabrik
Autor Thema:  Makro - Speichern als PNG oder JPEG (1735 mal gelesen)
azrenner
Mitglied
CAD-Admin/IT-Systembetreuer


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

Beiträge: 20
Registriert: 13.11.2019

Dell Precision 7540
Intel Core i7-9850H @2.6GHz 6-Cores
Nvidia Quadro RTX 3000 6GB
32GB RAM 2666MHz
------------
Windows 10 Pro (Version 2004)
SolidWorks 2017 SP5
Enterprise PDM 2017 SP5
------------
VB.Net
VB
VBA
C++
C#

erstellt am: 19. Dez. 2019 08:51    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

Hi miteinander,

ich komme gerade mit meinem SW Makro nicht weiter. Ich möchte in ein bereits bestehendes Makro um eine Funktionalität erweitern. Es soll am Ende des Prgrammablaufs ein kleines Bild vom Modell (nur SLDPRT und SLDASM) abgespeichert werden. Diese sollen später mit auf die Stückliste gedruckt werden. Das ist ja erstmal relativ unkompliziert mit:

Call swModel.SaveAs(strImageSavePath)

wobei strImagePath natürlich der Pfad + Dateiname + Endung (.jpg oder .png) ist.

Für den Druck sind die Bilder allerdings suboptimal wegen des Hintergrunds in der Szene. Ein PNG mit transparentem Hintergrund wäre perfekt, aber auch einfach ein rein weißer Hintergrund würde ausreichen.

Was ich also brauche ist folgendes:

Entweder, das per API das Häkchen "Hintergrund entfernen" ansprechen, welches auswählbar ist wenn man als .png speichert --> ist mir bisher nicht gelungen. Nichteinmal über das Setzen der Registry-Einträge:

Set wshShell = CreateObject("WScript.Shell")
        'Damit das Bild nicht nach dem Speichern aufploppt
        wshShell.RegWrite "HKCU\Software\Solidworks\SOLIDWORKS 2015\Export Settings\View JPEG After Saving", "0", "REG_DWORD"
        'Eintrag für "Hintergrund entfernen"
        wshShell.RegWrite "HKCU\Software\Solidworks\SOLIDWORKS 2015\Export Settings\TIF Remove background", "1", "REG_DWORD"
        Set wshShell = Nothing

Wenn das gar nicht möglich ist, wäre die andere Variante, den Hintergrund auf reines Weiß zu setzen. Ich möchte dem User aber nicht seine Einstellung nehmen, also müsste die vorher ausgelesen werden, um sie nach der Bildausgabe zurückzuschreiben.

Hat da jemand eine Idee, wie ich die eine oder andere Variante hinbekommen könnte?

Vielen Dank!

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

nahe
Ehrenmitglied



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

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: 19. Dez. 2019 09: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 azrenner 10 Unities + Antwort hilfreich

Hallo azrenner,

hast Du schon mal den Makrorekorder bemüht?

Der liefert bei mir für einen weißen Hintergrund in etwa folgendes

Set swApp = Application.SldWorks
swApp.SetUserPreferenceIntegerValue(swUserPreferenceIntegerValue_e.swSystemColorsViewportBackground, 12632256)
swApp.SetUserPreferenceIntegerValue(swUserPreferenceIntegerValue_e.swColorsBackgroundAppearance, 3)


------------------
Grüße
Heinz

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

Andi Beck
Ehrenmitglied V.I.P. h.c.
Konstrukteur



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

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. Dez. 2019 10:08    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 azrenner 10 Unities + Antwort hilfreich


Systemoptionen-TIF-PNG.png

 
Hallo,
schaust du dir mein Makro an.

http://ww3.cad.de/foren/ubb/Forum2/HTML/023775.shtml

Außerdem solltest du die Einstellungen laut Bild vornehmen.
Die Option "Hintergrund entfernen" ist per API meines Wissens nicht zu erreichen.
Um transparenten Hintergrund zu erhalten, benötigst du eine CAD-Grafikkarte, ansonsten wird das schwarz.

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

azrenner
Mitglied
CAD-Admin/IT-Systembetreuer


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

Beiträge: 20
Registriert: 13.11.2019

Dell Precision 7540
Intel Core i7-9850H @2.6GHz 6-Cores
Nvidia Quadro RTX 3000 6GB
32GB RAM 2666MHz
------------
Windows 10 Pro (Version 2004)
SolidWorks 2017 SP5
Enterprise PDM 2017 SP5
------------
VB.Net
VB
VBA
C++
C#

erstellt am: 20. Dez. 2019 09: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

Vielen Dank für die Antworten!

@nahe:
Der Hinweis ist gut. Das werde ich mal versuchen

@Andi
Danke, dein Makro hol ich mir auch mal. Vielleicht kann ich da was rausziehen. Vorher die Einstellungen machen haut aber leider nicht hin. Also zumindest nicht zuverlässig. Es sollen später 70 Konstrukteure nutzen und wenn einer davon irgendwann mal an dem Haken rumfummelt, kommen auf der Stüli "schlechte" Bilder an. Das ist mir etwas zu heikel.

Ich komme jetzt vor Weihnachten sowieso nicht mehr dazu. Ich mache da im Januar weiter und lasse es euch wissen, wenn ich eine Lösung habe. Die Teile ich dann gerne hier. Bis dahin ist jeder weiter Denkanstoß herzlich willkommen 

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