Autor
|
Thema: Rückgabe aus externem Programm (1318 mal gelesen)
|
DonYouAn Mitglied Dipl.-Ing. Feinwerk- und Mikrotechnik
Beiträge: 39 Registriert: 19.04.2005 Catia V5 1605, 1803, 1903
|
erstellt am: 08. Mrz. 2010 15:37 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich versuche gerade über ein externes Programm (Visual Basic 2008) ein Array mit Werten an das aufrufende Makro zurückzugeben. Leider habe ich bisher keine Möglichkeit gefunden dies zu bewerkstelligen. Hat vielleicht jemand eine Idee wie das funktioniert oder ist dies tatschlich nur über temp. Files möglich? Hier mal der Code des CATScript-Makros
Code:
Sub CATMain() Dim InputValues() as Variant Dim FileSelector as String FileSelector = "\\pfad\Catia_FilePicker.exe" CATIA.SystemService.ExecuteProcessus(FileSelector) End Sub
und das Gegenstück in Catia_FilePicker.exe Code:
Private Sub Button_OK_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button_OK.Click Dim ElementValue As Integer = Func_Check_Element() Dim FormatValue As Integer = Func_Check_Format() Dim StructureValue As Integer = Func_Check_Structure() Dim NameValue As String = Func_Format_Name(TextBox_Name.Text) Dim NumberValue As String = Func_Format_Number(TextBox_Number_02.Text, TextBox_Number_03.Text) Dim CreatedByValue As String = TextBox_CreatedBy.Text Dim DateValue As String = DateTimePicker_Date.Text Dim RevisionValue As Integer = NumericUpDown_Revision.Value Dim FilenameValue As String = TextBox_Filename.Text Dim PathValue As String = TextBox_Path.Text Dim ReturnValues() As Object = {ElementValue, FormatValue, StructureValue, NameValue, NumberValue, CreatedByValue, DateValue, RevisionValue, FilenameValue, PathValue} End Sub
Das Ziel ist das Array ReturnValues() an das aufrufende CATScript-Makro, in ein dort definiertes Array InputValues() zu übergeben und die EXE-Datei zu beenden. VBA ist übrigens keine Alternative, da VBA nicht auf allen Rechnern lauffähig ist, wegen einer seltsamen konzernweiten Installation. Außerdem lassen sich mit VB2008 die Oberflächen schöner programmieren. Danke für die Hilfe im voraus. Gruß DonYouan ------------------ -- Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jens Hansen Mitglied Senior Consult
Beiträge: 1055 Registriert: 05.08.2000 Win7 CATIA V5 R19 VB.Net C#
|
erstellt am: 08. Mrz. 2010 16:50 <-- editieren / zitieren --> Unities abgeben: Nur für DonYouAn
|
DonYouAn Mitglied Dipl.-Ing. Feinwerk- und Mikrotechnik
Beiträge: 39 Registriert: 19.04.2005 Catia V5 1605, 1803, 1903
|
erstellt am: 08. Mrz. 2010 18:32 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von Jens Hansen: Hallo, eine Möglichkeit wäre, die Daten in eine temp. Textdatei bzw. XML-Datei zu schreiben und diese dann auszulesen. Dann hast du keine Probleme mit der Übergabeparameter usw.
Hallo, das mit den Files wäre auch mein "einfacher" Ansatz gewesen. Ich hätte nur gehofft, dass eine Übergabe von Werten funktioniert, so ähnlich wie ein Return in einer Funktion in VB, also in etwa so: in CATSkript -> InputValues()=CATIA_FilePicker.exe in EXE -> Return ReturnValues() Gibt es nichts ähnliches? Danke DonYouAn
------------------ -- Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
V5Playaz Mitglied Dipl.-Ing (BA)
Beiträge: 447 Registriert: 12.07.2005 DELL PRECISION 390 3,25 GB RAM WIN XP PRO SP2 CATIA V5 R16-19 Delmia V5 R19 VB6, VB2008 Adobe Acrobat 9 Pro Extended
|
erstellt am: 08. Mrz. 2010 20:06 <-- editieren / zitieren --> Unities abgeben: Nur für DonYouAn
Hallo, ich sehe da keine Möglichkeit der direkten Kommunikation. Geht wohl nur wie du schon gesagt hast, über temporäre Dateien. Was willst du den genau an Informationen übergeben. Eine Alternative wäre auf dein Makro zu verzichten und den Makro-Code direkt in dein VB2008-Programm einzubauen. Dort kannst du nämlich auch direkt mit CATIA zu kommunizieren. Grüsse Dominik Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DonYouAn Mitglied Dipl.-Ing. Feinwerk- und Mikrotechnik
Beiträge: 39 Registriert: 19.04.2005 Catia V5 1605, 1803, 1903
|
erstellt am: 09. Mrz. 2010 07:27 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von V5Playaz: ... ich sehe da keine Möglichkeit der direkten Kommunikation. Geht wohl nur wie du schon gesagt hast, über temporäre Dateien.Was willst du den genau an Informationen übergeben. ...
Danke für die Antwort. Das hatte ich fast befürchtet. Eigentlich will ich nur ein paar Strings und Zahlen übergeben. Dann werde ich mich mal daran machen diese Infos in ein Textfile rauszuschreiben und im CATScript einzulesen. Später werde ich mich dann wohl mal an den direkten CATIA-Zugriff machen aus der EXE heraus. Danke und Gruzz DonYouAn ------------------ -- Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|