Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  SW API - Übergabe von Variablen an Exe Datei

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
  
7 Tipps für die Konstruktion von Kunststoffteilen und Spritzgussformen, ein Webinar am 27.06.2025
Autor Thema:  SW API - Übergabe von Variablen an Exe Datei (522 mal gelesen)
Domdom
Mitglied


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

Beiträge: 6
Registriert: 30.09.2005

erstellt am: 13. Nov. 2005 18:13    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, ich habe ein paar Fragen.

Und zwar habe ich mit VB in der Solidworks API ein paar Berechnungen geschrieben, und nun möchte ich diese über die Shellfunktion an die Exe-Datei meines C++ Programms übergeben, damit ich dort weiterarbeiten kann.


Die Struktur ist mir schon bekannt.

Ergebnis = Shell("D:\Projektarbeit\Projektarbeit.EXE D:\Projektarbeit\ctest.WRL", 1)

Zuerst wird die Exe datei genannt...

der 2. Wert ist der Name der Datei die verarbeitet werden soll...
Das ist kein Problem...
Aber, danach sollen 6 Werte folgen, die ich mit VB in Variablen speicher, und dann durch die Exe in Float Werte konvertiere und weiter verarbeite.

Nun meine Frage: wie kann ich in die Shell Syntax Variablen eintragen?

Denn wenn ich in die Anführungszeichen dann die Variablen Namen eintrage, wird doch nur deren Name übertragen, oder sehe ich das falsch?

Beispiel

Ergebnis = Shell("D:\Projektarbeit\Projektarbeit.EXE D:\Projektarbeit\ctest.WRL Abmaß_X Abmaß_Y Abmaß_Z", 1)


Kann mir jemand sagen, wie ich das anstelle?

Hoffe ich hab nicht zu viel Kraut und Rüben durcheinander geschrieben.


Gruß Domdom

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: 14. Nov. 2005 08:11    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 Domdom 10 Unities + Antwort hilfreich

Hallo Domdom,

hast du mal versucht den String vorher zusammen zu basteln?:

Code:

   Progpfad = "D:\Projektarbeit\Projektarbeit.EXE " & pfadWRL & " " & Abmass_X & " " & Abmass_Y & " " & Abmass_Z
   MyAppID = Shell(Progpfad, 1)

Wenn das mit dem Shell-Befehl nicht klappt kannst du es mal per ShellExecute versuchen, ist zwar etwas komplizierter, aber dafür kannst du deinem Programm explizit Parameter mitgeben. Erklärung und Beispiel findest du z.B. hier

Ciao,
Stefan

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

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

Domdom
Mitglied


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

Beiträge: 6
Registriert: 30.09.2005

erstellt am: 14. Nov. 2005 10:04    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

Super, dank Dir....

werd ich direkt mal testen

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

Domdom
Mitglied


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

Beiträge: 6
Registriert: 30.09.2005

erstellt am: 14. Nov. 2005 11:49    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

So, also funktionieren tut es...
allerdings habe ich ein Problem...

In der C++ Anwendung arbeite ich zur Übernahme der Pararmeter mit nem Cast Operator, der mit Char Feldern oder Strings arbeitet.

// Der Übergabeparameter (X-Ausdehnung) wird in ein String umgewandelt.
ausdehnung_s_X = static_cast<string>(argv[2]);

Problem ist nun, da ich ja mehrere Double Werte aus VB übergeben will, dass ich damit direkt im Debug Modus lande 

Ich muss wohl vorher noch die Doubles in Strings umwandeln...

Leider habe ich aber Doubles von dem Format:
5.05343E-02
Ok... das E-02 krieg ich noch weg, indem ich vorher mit ... keine Ahnung ... 100000 multipliziere und das dann in c++ wieder dividiere... (hoffe ich kriege keinen positiven E Exponenten)

aber ich habe mit CStr rumgebastelt...

es schluckt irgendwie das "," oder das "."

und lässt es nicht in den String einfließen...


hat noch wer ne Idee zu dem Problem?

Danke im Vorraus

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