Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  PhotoWorks API, hier: CallBack Variablenübergabe

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:  PhotoWorks API, hier: CallBack Variablenübergabe (1027 mal gelesen)
Ralf Tide
Moderator
-




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

Beiträge: 4978
Registriert: 06.08.2001

Sehr seltsame Dinge passiern <Klaus Lage - Toy Story>
.-)

erstellt am: 06. Dez. 2004 09:01    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

Hallo zusammen,

ich weiß das es keine offiziell unterstütze API für Photoworks gibt  , mit dem Macro-Recorder lassen sich aber ein paar Befehle aufzeichnen 
So z.B. das Rendern in eine Datei:

Code:
Sub main()

Set swApp = Application.SldWorks

Set Part = swApp.ActiveDoc
result = swApp.CallBack("pworks@MiEval", 0, "RenderToFile Filename ""G:\EigeneDateien\Linse.bmp""")
result = swApp.CallBack("pworks@MiEval", 0, "RenderToFile Size 320 240")
result = swApp.CallBack("pworks@MiEval", 0, "RenderToFile Format bmp")
result = swApp.CallBack("pworks@MiEval", 0, "RenderToFile Render")
End Sub


Leider hab' ich's noch nicht geschafft den Dateinamen durch eine Variable zu ersetzen. Folgendes hab' ich schon erfolglos probiert:

Code:
PfadUndDateiName= "G:\Bilder\Linse.bmp"
result = swApp.CallBack("pworks@MiEval", 0, "RenderToFile Filename ""PfadUndDateiName""")
Ergebnis ist schon eine Bilddatei, aber im Rootverzeichnis  : G:\PfadUndDateiName ohne Dateiendung
Also weiter...
Das ersetzen der Hochkommas durch Chr$(34)
Code:
PfadUndDateiName= Chr$(34) & Chr$(34) & "G:\Bilder\Linse.bmp" Chr$(34) & Chr$(34)
result = swApp.CallBack("pworks@MiEval", 0, "RenderToFile Filename PfadUndDateiName")
Ergebnis ist wie oben eine Bilddatei, aber im Rootverzeichnis  : G:\PfadUndDateiName ohne Dateiendung (hat sich wohl was gemerkt  )
Noch ein Versuch ...
Den kompletten Ausdruck als Variable:
Code:
PfadUndDateiName= Chr$(34) & "RenderToFile Filename " & Chr$(34) & Chr$(34) & "G:\Bilder\Linse.bmp" & Chr$(34) Chr$(34) & Chr$(34)
result = swApp.CallBack("pworks@MiEval", 0, PfadUndDateiName)
Gibt eine Fehlermeldung:

Photoworks2: Error while evaluating macro:
"RenderToFile Filename ""G:\Bilder\Linse.bmp"""
Rendert dann aber wieder wie oben.

Hat jemand von Euch Erfahrung mit callback-Aufrufen?
Vielleicht noch irgendein anderer Tip den Dateinamen und Pfad innerhalb des Macros anzugeben?

Ich dank' Euch schon mal fürs lesen und freu' mich mal auf zahlreiche Antworten 

Bis demnäx,
Ralf

------------------

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

StefanBerlitz
Guter-Geist-Moderator
IT Admin (CAx)



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

Beiträge: 8756
Registriert: 02.03.2000

SunZu sagt:
Analysiere die Vorteile, die
du aus meinem Ratschlag ziehst.
Dann gliedere deine Kräfte
entsprechend und mache dir
außergewöhnliche Taktiken zunutze.

erstellt am: 06. Dez. 2004 09:24    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 Ralf Tide 10 Unities + Antwort hilfreich

Hallo Ralf,

ich würde diese Variante versuchen:

Code:

PfadUndDateiName= Chr$(34) & "G:\Bilder\Linse.bmp" & Chr$(34)
result = swApp.CallBack("pworks@MiEval", 0, "RenderToFile Filename " & PfadUndDateiName)

Dadurch bekommt der Dateiname seine Extra-Gänsefüsschen (wobei ich mir nicht sicher bin, dass es das überhaupt braucht, wenn kein Leerzeichen im Pfad ist) und im Callback-Aufruf wird als dritter Parameter eben der String erst zusammengesetzt.

Hab's allerdings nicht probiert, aber Theorie ist ja manchmal auch ganz schön 

Ciao,
Stefan

------------------
Inoffizielle deutsche SolidWorks Hilfeseite
http://solidworks.cad.de

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

Ralf Tide
Moderator
-




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

Beiträge: 4978
Registriert: 06.08.2001

Sehr seltsame Dinge passiern <Klaus Lage - Toy Story>
.-)

erstellt am: 06. Dez. 2004 09:57    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

Zitat:
Original erstellt von StefanBerlitz:
...Hab's allerdings nicht probiert, aber Theorie ist ja manchmal auch ganz schön   ...
Hallo Stefan,

Theorie gut und schön 
In der Praxis funktioniert es sogar 

Ganz herzlichen Dank,
Ralf

------------------

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

Ralf Tide
Moderator
-




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

Beiträge: 4978
Registriert: 06.08.2001

Sehr seltsame Dinge passiern <Klaus Lage - Toy Story>
.-)

erstellt am: 06. Dez. 2004 10:30    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

Will noch jemand spielen? 
Anbei mal ein Gerüst 
Code:
Dim swApp As Object
Dim Part As Object
Dim TeileName, TextAufMsgBox, MsgBoxTitel, Vorgabe, DateiName, A, Pfad, PfadUndDateiName As String
Dim Start, Dauer, Ende As Variant
Dim result As Boolean

Option Explicit

Sub main()
Set swApp = CreateObject("SldWorks.Application")
Set Part = swApp.ActiveDoc

TeileName = Part.GetTitle                                                                'Titel für Vorgabe holen
TextAufMsgBox = "Ausgabedateiname angeben"
A = "png"                                                                                'Ausgabeformat
MsgBoxTitel = "Ausgabe als 320x240 Pixel " & A & "-Datei .-)"
Vorgabe = TeileName
DateiName = InputBox(TextAufMsgBox, MsgBoxTitel, Vorgabe)


DateiName = DateiName & "." & A                                                          'Endung hinzufügen
Pfad = "C:\EigeneDateien\Eigene Bilder\"                                                'Existierendes Verzeichnis angeben ,-)
PfadUndDateiName = Chr$(34) & Pfad & DateiName & Chr$(34)                                'Dateiname und Pfad zusammensetzen

Start = Now                                                                              'Anfangszeitpunkt festhalten

result = swApp.CallBack("pworks@MiEval", 0, "RenderToFile Filename " & PfadUndDateiName) 'Pfad und Dateiname an Photoworks
result = swApp.CallBack("pworks@MiEval", 0, "RenderToFile Size 320 240")                'Auflösung
result = swApp.CallBack("pworks@MiEval", 0, "RenderToFile Format " & A)                  'Ausgabeformat
result = swApp.CallBack("pworks@MiEval", 0, "RenderToFile Render")                      'Startbefehl

Ende = Now                                                                              'Endzeitpunkt festhalten
Dauer = Ende - Start                                                                    'Dauer berechnen

MsgBox "Rendern dauerte " & FormatDateTime(Dauer, 0), vbDefaultButton1, ".-)"            'Ausgabe der Zeit
End Sub



BTW - Ich übernehm natürlich kein Haftung! (wenn z.B. die Festplatte ihre strukturelle Integrität verliert  )

------------------

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

KMassler
Ehrenmitglied V.I.P. h.c.
CAD Admin + Mädchen für Alles...



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

Beiträge: 2675
Registriert: 06.11.2000

SolidWorks Start 1999
** CSWP 01/2008 **
------------------
Zuletzt beruflich:
- SWX2020 SP5;
- SAP/PLM+ECTR;
- DriveWorks Pro;
- Programmierung:
VBA, aktuell Visual Studio 2022/VB.Net
------------------
ab 2024 (privat):
Onshape und anderes

erstellt am: 06. Dez. 2004 12:45    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 Ralf Tide 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Ralf Tide:
...BTW - Ich übernehm natürlich kein Haftung! (wenn z.B. die Festplatte ihre strukturelle Integrität verliert   )

kann so was passieren?
Ich dachte immer, das passiert nur mit Raumschiffhüllen!

------------------
Klaus

www.al-ko.de
privat...
ForumsChat: Schau doch mal hier rein, wenn ihr Zeit habt...

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