Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  ANSYS
  Multipro Macro Problem

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 Ansys
Autor Thema:  Multipro Macro Problem (1423 mal gelesen)
jochen-dittrich
Mitglied
Student

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

Beiträge: 5
Registriert: 23.11.2015

ANSYS 16.1

erstellt am: 23. Nov. 2015 23:22    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,

ich versuche via multipro mehrere Werte in einem Macro einlesen zu lassen, aber dabei unterbricht ANSYS den ja Programmfortschritt nicht. In der Hilfe wird ein Auswerten des _BUTTON Wertes vorgeschlagen, wozu ich eine *DOWHILE Endlosschleife mit *If,_BUTTON,EQ,1,EXIT als Ausbrechkriterium nehmen wollte. Allerdings verfängt das Programm sich im Rechennirvana sobald TRUE für die IF zurückkommt. Laut Hilfe ein Problem des fehlenden ENDIFs, aber den hab ich doch?! Weiß jemand wo mein Fehler ist, bzw. wie man es eleganter lösen kann?

Hier der Code:

*CREATE,Abfrage,mac
multipro,'start',1
    *cset,1,3,DWI,'Innendurchmesser Welle in [m]',0.0
multipro,'end'

_BUTTON=0.5
I=1
*DOWHILE,I
*IF,_BUTTON,EQ,0,OR,_BUTTON,EQ,1,EXIT
*ELSE
*ENDIF
*ENDDO
*ENDIF

*END

Danke schonmal im Voraus!
Gruß, Jochen

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

farahnaz
Ehrenmitglied V.I.P. h.c.
Ing.


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

Beiträge: 2467
Registriert: 24.04.2007

CAE, FEM, Test, NPD

erstellt am: 24. Nov. 2015 01:54    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 jochen-dittrich 10 Unities + Antwort hilfreich

bin zwar kein Experte,  aber ich frage mich was macht das letzte *ENDIF (vor dem *END)

kann sein dass das program springt zu dieser *ENDIF im Falle "True" und had problem? 

------------------
Grüße, Moe

[Diese Nachricht wurde von farahnaz am 24. Nov. 2015 editiert.]

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

jochen-dittrich
Mitglied
Student

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

Beiträge: 5
Registriert: 23.11.2015

ANSYS 16.1

erstellt am: 25. Nov. 2015 22: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

Danke für deine Antwort.

Ich dachte halt das ich jede IF-Funktion schließen muss mit einem ENDIF, so steht es ja in der Hilfe. Das erste ENDIF ist für die ELSEIF-Funktion um diese zu beenden und eine neue DO-loop anfangen zu können. Sobald dann irgendwann TRUE zurückkommt springt es dank EXIT zu ENDDO und dann ist der nächste Befehl eben ein ENDIF um die IF-Funktion zu schließen und das Makro hört auf.
Aber wo ist dann der Fehler? Habs jetzt ohne das zweite *ENDIF probiert und auch ganz ohne und einmal auch das ENDIF nach dem Macro ausgeführt, aber das geht alles nicht. Entweder hängt er sich auf, oder es erscheint bei jedem Schleifendurchlauf (selbst wenn die IF-bedingung schon längst erfüllt ist, läuft die Schleife scheinbar noch?!) die Meldung: "No *IF active, *ENDIF is being ignored"

Was bedeutet das?

Grüße, Jochen

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

jochen-dittrich
Mitglied
Student

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

Beiträge: 5
Registriert: 23.11.2015

ANSYS 16.1

erstellt am: 11. Dez. 2015 12:00    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

Kann mir wirklich keiner helfen?


Grüße, Jochen

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

farahnaz
Ehrenmitglied V.I.P. h.c.
Ing.


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

Beiträge: 2467
Registriert: 24.04.2007

CAE, FEM, Test, NPD

erstellt am: 12. Dez. 2015 23: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 Nur für jochen-dittrich 10 Unities + Antwort hilfreich

das IF innerhalb und das zweite ENDIF ist außerhalb der Schleife, das funktioniert nicht.

------------------
Grüße, Moe

[Diese Nachricht wurde von farahnaz am 13. Dez. 2015 editiert.]

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



Masterarbeit im Bereich der Konstruktion ? Aufbau eines Versuchsträgers für die Validierung thermischer Verformung in Aluminiumstrukturen (w/m/x)

Als Studierende arbeiten Sie mit Ihren Kolleginnen und Kollegen auf Augenhöhe und schaffen sich ideale Voraussetzungen für Ihre spätere Karriere.

In einem offenen und modernen Umfeld mit zahlreichen Entwicklungs- und Weiterbildungsmöglichkeiten, arbeiten die Mitarbeitenden bei ZEISS in einer Kultur, die von Expertenwissen und Teamgeist geprägt ist. All das wird getragen von der ...

Anzeige ansehenKonstruktion, Visualisierung
jochen-dittrich
Mitglied
Student

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

Beiträge: 5
Registriert: 23.11.2015

ANSYS 16.1

erstellt am: 01. Feb. 2016 11:37    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

Wie geschrieben, ich hab das mit und ohne und an allen Stellen probiert weil ich den Ablauf bei ANSYS da nicht verstehe.

Update:
Eine Möglichkeit den Programmablauf zu stoppen hab ich zwar nicht finden können, aber immerhin wie ich mehrere Multipro's hintereinander durchlaufen lassen kann und auch in einer Art Do-Schleife. Dazu meine Lösung:


*CREATE,Werte_einlesen,mac ! Macro zum Parametereinlesen erstellen (muss als Macro sein)
/UIS,MSGPOP,3 ! Warn Pop-Ups unterbinden
_BUTTON=10 ! OK/Cancel-Button zurücksetzen
multipro,'start',1
    *cset,1,3,XYZ,'XXXXXXX',
multipro,'end'
*IF,_BUTTON,EQ,0,OR,_BUTTON,EQ,1,THEN ! Prüfen ob OK/Cancel-Button gedrückt wurde, wenn ja starten des nächsten UI
_BUTTON=10
multipro,'start',1
    *cset,1,3,XYZ,'XXXXXXX',
multipro,'end'
*IF,_BUTTON,EQ,0,OR,_BUTTON,EQ,1,THEN
! Eigene Schleife nötig, da Multipro in DO-Loop verboten ist
I=1 ! Schleifenzähler initialisieren
Anzahl=3 ! Schleifenanzahl auf festlegen
:SPRUNG ! Sprunglabel
I=I+1 ! Schleifenzähler erhöhen
multipro,'start',1
    *cset,1,3,EX_%I%,'XXXXXXX',
multipro,'end'
*IF,I,LT,Anzahl,THEN ! Prüfen ob Schleifenzähler kleiner als Schleifenanzahl
*GO,:SPRUNG ! Springe zu Schleifenlabel
*ENDIF
*END

Vielleicht hilft es ja jemanden.
Grüße

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)2023 CAD.de | Impressum | Datenschutz