| << Vorheriges Thema anzeigen :: Nächstes Thema anzeigen >> |
| Autor |
Nachricht |
Alexandru.Dadalau Junior-User

Anmeldungsdatum: 15.01.2010 Beiträge: 13
|
Verfasst am: 10.02.2010, 19:49:23 Titel: Exe für ANSYS |
|
|
Hallo wieder!
Dies ist meine zweite Frage in diesem Forum.
Ich möchte eine Exe-Datei aus einem Tcl-Skript erstellen und diese Exe-Datei in ANSYS verwenden. Ich habe nicht den Anspruch, dass die Exe-Datei völlig eigenständig läuft. Im Gegenteil, ich möchte es in ANSYS verwenden.
Die Exe-Datei habe ich schon dank den Beiträgen in diesem Forum mit Hilfe von tcl-Coach 3.1 erstellt.
Das Problem ist, dass in der Exe-Datei ein spezieller Befehl enthalten ist: ans_sendcommand. Diesen Befehl kennt nur die Tcl innerhalb der ANSYS-Umgebung. Der Befehl ist dafür gedacht, ANSYS-Befehle über Tcl-Programme an den ANSYS-Interpreter zu schicken.
Sobald ich das Progrämmchen in eine Exe umwandle, kennt Tcl den Befehl ans_sendcommand nicht mehr. Auch wenn ich das exe aus Ansys ausführe, bekomme ich den Fehler, dass der Befehl unbekannt ist.
Die Frage ist also, wie schaffe ich das Exe in ANSYS so auszuführen, dass die ganzen ANSYS-typischen Befehle bekannt sind.
Vielen, vielen Dank im Voraus für eure Hilfe!
Gruß
Alexandru |
|
| Nach oben |
|
 |
hank Top-User


Anmeldungsdatum: 10.03.2006 Beiträge: 876 Wohnort: Leipzig
|
Verfasst am: 10.02.2010, 21:00:23 Titel: |
|
|
Gar nicht, die Exe ist ein separater Prozess und weiss nichts von ANSYS. Kommunikation zwischen Prozessen geschieht mit Interprozesskommunikation...
Viele Grüße
Gö*dejavu*ran |
|
| Nach oben |
|
 |
Alexandru.Dadalau Junior-User

Anmeldungsdatum: 15.01.2010 Beiträge: 13
|
Verfasst am: 10.02.2010, 21:28:08 Titel: |
|
|
Hm, das habe ich befürchtet...
Was ich eigentlich erreichen möchte, ist mein Tcl-Programm vor fremden Blickken zu schützen. Ein Exe schien mir die einfachste Methode. Ich brauche aber nicht zwingend ein Exe-Wenn es sowieso in ANSYS nicht verwendet werden kann.
Gibt es da ein andere Möglichkeit ein Tcl-Programm unverständlich aber voll funktionsfähig zu machen?
Gruß
Alexandru |
|
| Nach oben |
|
 |
Alexandru.Dadalau Junior-User

Anmeldungsdatum: 15.01.2010 Beiträge: 13
|
Verfasst am: 11.02.2010, 17:07:54 Titel: |
|
|
Habe ein bisschen weiter recherchiert und gesehen, dass es Tcl-Packages zur Verschlüsselung von Text gibt (twofish, aes, des). Damit könnte man auch die Tcl-Programme verschlüsseln.
Wenn ich das Ganze aber richtig verstanden habe, ist das keine Lösung, wenn man sein Programm einer anderen Person verschlüsselt weitergeben möchte. Zum Benutzen des Programms müsste man auch den Schlüssel weitergeben, was die Verschlüsselung umsonst macht.
Irgenwelche Ideen???
Vielen Dank im Voraus!
Alexandru |
|
| Nach oben |
|
 |
hank Top-User


Anmeldungsdatum: 10.03.2006 Beiträge: 876 Wohnort: Leipzig
|
Verfasst am: 16.02.2010, 09:20:16 Titel: |
|
|
Hallo,
möglicherweise ist obfuscating oder tbcload etwas für dich
Viele Grüße
Göran |
|
| Nach oben |
|
 |
Alexandru.Dadalau Junior-User

Anmeldungsdatum: 15.01.2010 Beiträge: 13
|
Verfasst am: 18.02.2010, 23:29:04 Titel: |
|
|
Hallo Göran,
danke für den Tipp! Ich bin schon seit einigen Tagen am Recherchieren, ist alles nicht so einfach... Ich fasse mal zusammen:
1. tbcload scheint das Richtige zu sein.
2. Ich habe TclDevKit zuerst als Testversion installiert und ein tbc-File aus einem tcl-File generiert. Gibt es auch eine Freeware zum Erstellen von tbc-Files?
3. Ansys verwendet tcl 8.4. Aus dem Grund habe ich die tclcompiler84.exe zum Erstellen des tbc-Files verwendet.
4. Wenn ich aus Ansys versuche das tbc-File zu starten (source filename.tbc) bekomme ich die Fehlermeldung:
The TclPro ByteCode Loader is not available or does not support the correct version version conflict for package "tbcload": have 1.3, need 1.6
Da habe ich schon versucht, das tbcload 1.7 aus der TCL-Library in die ANSYS-Library reinzukopieren aber die wird nicht angenommen, vermutlich, weil tbcload 1.7 für Tcl 8.5 programmiert wurde. Ansys verwendet leider immer noch Tcl 8.4...
Gibt es ein tbcload 1.6 für Tcl 8.4 ???
Ich habe ein Thread von Dominic Ernst gefunden ( http://www.self-tcl.de/forum/viewtopic.php?t=1595&highlight=tbcload ). Er scheint das Problem gelöst zu haben. Und er benutzt dabei kein TDK. Vielleicht kann Dominic mehr Details über seine Lösung angeben.
Viele Grüße
Alexandru |
|
| Nach oben |
|
 |
hank Top-User


Anmeldungsdatum: 10.03.2006 Beiträge: 876 Wohnort: Leipzig
|
Verfasst am: 21.02.2010, 17:46:18 Titel: |
|
|
HAllo,
tclpro ist der Vorgänger vom TDK. Da aber TclPro die Version 1.4 hat, wirst du vermutlich die Fehlermeldung lediglich in leicht abgewandelter Form erhalten :-( Wenn nun aber ANSYS tbcload 1.3 bereits hat, wäre es auch möglich, dass auch der passende Compiler dabeisein könnte.
Viele Grüße
Göran |
|
| Nach oben |
|
 |
Alexandru.Dadalau Junior-User

Anmeldungsdatum: 15.01.2010 Beiträge: 13
|
Verfasst am: 22.02.2010, 12:41:53 Titel: |
|
|
Hallo,
jetzt habe ich es auch hingekriegt!
Für diejenigen, die so etwas auch brauchen, hier die notwendigen Schritte:
1. TclPro herunterladen (http://ignum.dl.sourceforge.net/project/tclpro/TclPro-1.4.1/1.4.1/tclpro141.exe)
2. Die Licence-Key holen (http://www.tcl.tk/software/tclpro/eval/1.4.html)
3. TclPro installieren, key eingeben und starten. Den gewünschten tcl-Code mit dem Befehl "procomp filename.tcl" compilieren. Es entsteht das file filename.tbc
4. ANSYS stürzt leider ab, wenn ich "source filename.tbc" eingebe. Habe die Ursachen herausgefunden und behoben:
4.1 Das \...\TclPro1.4\win32-ix86\bin\tbcload13.dll muss einmal mit "load" in ANSYS geladen werden.
4.2 Es dürfen keine gesamte namespaces kompiliert werden. Aus diesem Grund muss ich den Sourcecode zerstückeln und separat compilieren. Ich lasse also "namespace eval SpaceName" im source code drin. Ich lasse auch alle "proc SpaceName::ProcName {arg} {" drin. Nur den body von den Proceduren compiliere ich separat.
Vielen Dank noch einmal für die guten Tipps, Göran!
Viele Grüße
Alexandru |
|
| Nach oben |
|
 |
|