| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Ansys | | |  | Ansys Discovery Update-Seminar für Strömungssimulation, ein Seminar am 09.10.2025
|
Autor
|
Thema: Wiederholter Aufruf von /tlabel (480 mal gelesen)
|
Blart Mitglied Biomechaniker

 Beiträge: 22 Registriert: 13.06.2002 ANSYS Classic 11.0, Laptop mit 2GB
|
erstellt am: 27. Nov. 2006 11:56 <-- editieren / zitieren --> Unities abgeben:         
Folgende Herausforderung: Ich habe mehrere Files die ich hintereinander einlesen lasse. An mehreren Computern und mehrere Versionen dieser Files (Vernetzungsdichten, Tests etc.) Wenn die Berechnung fertig ist müsste ich mir rausklamüsern, was ich vorher alles eingelesen hatte oder das besser dokumentieren. Dacht ich mir, das kann mir mein Ansys auch machen wenn ich mir schnell ein Macro stricke, das am Anfang jedes Files ausgeführt wird und den Versionsnamen jeder Datei übergibt und das auf den Bildschirm schreibt. Dann sieht man auf jeden geschossenen jpg etc. was man dafür eingelesen hat. So viel zur Theorie. In der Praxis scheiterte es dann erstmal daran, dass man das Macro schon mehrmals aufrufen kann, es aber nach einem /rep den übergebenen Parameter "arg1" suchte, nicht fand und Nuller produzierte auf dem Bildschirm. /PMACRO *if, Hoehe, eq, 0, then *dim, filnam, char, 5,20 Hoehe = -0.90 *endif !! Hoehe = Hoehe+0.065 /tlabel,-0.95,Hoehe,%arg1%
! Demzufolge war der zweite Versuch, alle neuen arg's in ein Array zu speichern weil sie da ja eben nicht verloren gehen. Verloren gehen sie auch tatsächlich nicht aber bei einem /rep zeigen ab dem zweiten Aufruf (nachdem der Parameter Macroaufruf inkrementiert und anscheinend der /tlabel bei /rep komplett neu zusammengestzt wird) alle labels den gleichen Text meiner letzten Eingabe. *if, Macroaufruf, eq, 0, then *dim, filnam, char, 5,20 Hoehe = -0.90 Macroaufruf = 0 ! liefert eine Warnung weniger wenns drin ist. *endif Macroaufruf = Macroaufruf+1 filnam(1,Macroaufruf) = arg1 Hoehe = Hoehe+0.065 /tlabel,-0.95,Hoehe,%filnam(1,Macroaufruf)%
Irgendwie auch nicht zufriedenstellend. Ich hatte das Gefühl, dass es aber irgendwann schon mal ging als ich irgendwas darin herumgeschnitzt habe. Bei weiterschnitzen ging diese lauffähige Version aber wieder verloren und ich habe keine Ahnung mehr, was der essentielle Unterschied zu der zweiten oben war. Blöd.
Kann mir einer sagen was ich sinnvollerweise modifizerien muss, dass das Macro läuft? Danke. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jens.Friedrich Moderator Dipl. -Ing.
   
 Beiträge: 1051 Registriert: 09.09.2005 ANSYS2021 R2
|
erstellt am: 27. Nov. 2006 13:27 <-- editieren / zitieren --> Unities abgeben:          Nur für Blart
|
Blart Mitglied Biomechaniker

 Beiträge: 22 Registriert: 13.06.2002 ANSYS Classic 11.0, Laptop mit 2GB
|
erstellt am: 27. Nov. 2006 16:34 <-- editieren / zitieren --> Unities abgeben:         
Im File 10a_Geometrie_Version_A.inp-File steht der Aufruf: filvers,'10a' Im danach aufgerufenen File 11b_Meshing_grob.inp steht dann entspr.: filvers,'11b' etc, etc. Wenn man das mit 10 Dateien hintereinander macht (unterschiedliche Kontaktsachen etc.) kommt man auf wahnsinnig viele Kombinationsmöglichkeiten. Und weil ich das gerne auch auf meinen Jpg's drauf hätte und nach einer Woche noch wüsste warum mir die Bilder nicht gefallen dacht ich eben, ich könnte am Anfang jedes Files dieses Macro drüberlaufen lassen, dass es mir das jeweils da hindruckt. Im Macrofile filvers.mac steht dann folgendes:
! Macrofilebeginn ! *if, Macroaufruf, eq, 0, then *dim, filnam, char, 5,20 Hoehe = -0.90 Macroaufruf = 0 ! liefert eine Warnung weniger wenns drin ist. *endif Macroaufruf = Macroaufruf+1 filnam(1,Macroaufruf) = arg1 ! uebergibt Argument an Array Hoehe = Hoehe+0.065 /tlabel,-0.95,Hoehe,%filnam(1,Macroaufruf)% ! ! Fileende
Problem ist halt, dass es nicht funktioniert wenn man das Macro mehr als einmal aufruft weil es die alten Werte bei einem /rep wieder überschreibt. Kann jetzt jeder gerne ausprobieren.
Der andere Tipp funktioniert schon mal. Danke.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Blart Mitglied Biomechaniker

 Beiträge: 22 Registriert: 13.06.2002 ANSYS Classic 11.0, Laptop mit 2GB
|
erstellt am: 27. Nov. 2006 18:27 <-- editieren / zitieren --> Unities abgeben:         
Habs geloest ueber drei Stringparameter die ich immer weiter verlaengere um die paar Kürzel und hab die dann in drei /TLAB-Zeilen geschmissen. Dann stehts halt nicht einzelnd übereinander sondern jeweils ein halbes Dutzend nebeneinander. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jens.Friedrich Moderator Dipl. -Ing.
   
 Beiträge: 1051 Registriert: 09.09.2005 ANSYS2021 R2
|
erstellt am: 28. Nov. 2006 09:32 <-- editieren / zitieren --> Unities abgeben:          Nur für Blart
und was spricht nun dagegen das als notiz zu machen? erscheint mir viel logischer. mit *GET, JOB, ACTIVE, 0,jobnam bekommst du den namen und dann einfach wie in tip3 plaotten /anno,dele /ANUM ,0, 1, 1.2303, -.74699 /TSPEC, 15, .600, 1, 0, 0 /TLAB, 1.010, -.747,%Job% ganauso kannst du jeden parameter plotten lassen siehe anhang Gruß Jens ------------------ Jens Friedrich Institut für Leichtbau und Kunststofftechnik TU-Dresden Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Blart Mitglied Biomechaniker

 Beiträge: 22 Registriert: 13.06.2002 ANSYS Classic 11.0, Laptop mit 2GB
|
erstellt am: 28. Nov. 2006 12:04 <-- editieren / zitieren --> Unities abgeben:         
Sind ja Notizen jetzt. Bloß keine einzelnen sondern quasi Pakete von Information die mir das Macro zusammenschreibt. Sobald ich versucht habe, das mit einem flexiblen Macro (mit Array etc.) zu loesen, funktionierte es halt nicht mehr. Das eine Bild zeigt wie ich mir dachte, dass ich es am Anfang machen könnte, das andere zeigt die jetzige langzeilige Lösung, mit der ich auch zufrieden bin. Das mit dem *GET für den Jobnamen ist gut, das hatte ich vorher beim suchen in der riesigen *GET-Hilfe übersehen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jens.Friedrich Moderator Dipl. -Ing.
   
 Beiträge: 1051 Registriert: 09.09.2005 ANSYS2021 R2
|
erstellt am: 29. Nov. 2006 16:26 <-- editieren / zitieren --> Unities abgeben:          Nur für Blart
Meines erachtens ist das immer noch ein titel und über /tlabel eingefügt! Da frage ich mich doch wozu ich hier antworte, wenn du eh nix davon umsetzt! Falls deine "Werte" als Parameter vorliegen ist es doch einfach möglich mehrere Notizen STATT des Titels einzufügen *GET, JOB, ACTIVE, 0,jobnam /anno,dele /ANUM ,0, 1, 1.2303, -.74699 /TSPEC, 15, .600, 1, 0, 0 /TLAB, 1.010, -.8,%Job% /TLAB, 1.010, -.9,schreib doch was du willst usw... aber du kannsts auch gern weiter über den titel machen
------------------ Jens Friedrich Institut für Leichtbau und Kunststofftechnik TU-Dresden Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |