| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Ansys |
Autor
|
Thema: Überprüfung ob Komponent vorhanden ist (1244 mal gelesen)
|
ojedaenrique Mitglied Student
Beiträge: 38 Registriert: 01.05.2016 Ansys 16.1 Studentische Version
|
erstellt am: 12. Aug. 2016 17:40 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, Ich bastele mir gerade ein Modell für meine Semesterarbeit in APDL, bei dem ich je nachdem ob eine bestimmte Komponente vorhanden ist,ich die Temperatur ändere. Die zu analysierenden Körper sind nicht von mir erstellt worden. Wenn z.B eine Komponente mit dem Name "Koerper1" vorhanden ist musste ich die Flaechen auf 350°C setzen. Nun habe ich leider keinen passenden Befehl gefunden, mit dem ich überprüfen kann ob z.B "Korper1" bereits existiert. Im Forum habe ich das gefunden: *get,numcomp,comp,,ncomp !Anzahl definierter Komponenten *do,i,1,numcomp !Loop ueber alle Komponenten *get,ncomp,comp,i,name !Name der i-ten Komponente !strpos is case - sensitiv *if,strpos(ncomp,'gesucht'),eq,1,then !what to do *endif *enddo Aber der Code funktioniert nicht bei mir, kennt jemand einen anderen Ansatz ? oder kann mir einen Hinweis geben, warum der obere Code bei mir nichts tut. vielen Dank im Voraus. ------------------ Student Technische Universität München Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
solve1 Mitglied Berechnungsingenieur
Beiträge: 624 Registriert: 27.05.2008 Ansys APDL Ansys WorkBench
|
erstellt am: 13. Aug. 2016 11:41 <-- editieren / zitieren --> Unities abgeben: Nur für ojedaenrique
hi, was funktioniert denn nicht ? Must nur 'gesucht' durch deinen Komponentennamen ersetzen. und bei 'what to do' deine Aktionen durchführen ------------------ Maschinenbau- / Berechnungsingenieur (M.Eng) mit >10 Jahren Berufserfahrung sucht Gelegenheit für berufliche Veränderung in Berlin. Projekterfahrung in der Anwendung von Ansys (APDL und Workbench) im Bereich Strukturmechanik / Dynamik (Nichtlinearitäten, Kontakt, Festigkeit u.d.g.). Gern auch im Rahmen administrativer Tätigkeiten. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ojedaenrique Mitglied Student
Beiträge: 38 Registriert: 01.05.2016 Ansys 16.1 Studentische Version
|
erstellt am: 15. Aug. 2016 10:42 <-- editieren / zitieren --> Unities abgeben:
Hallo Solve1, Er sagt: "Material number must be greater than zero." und hört dann auf. Hier ist der Codeabschnitt, der nicht funktioniert *GET,numcomp,COMP,,NCOMP !Anzahl definierter Komponenten *DO,i,1,numcomp !Loop ueber alle Komponenten *GET,NCOMP,COMP,i,NAME !Name der i-ten Komponente !strpos is case - sensitiv *IF,STRPOS(NCOMP,SSXY%ZahlWuerfel%),EQ,1,THEN !1.Ueberprufung ESEL,S,TYPE,,SSXY%ZahlWuerfel% ESEL,A,TYPE,,TTXY%ZahlWuerfel% EKILL,ALL *ENDIF *ENDDO ------------------ Student Technische Universität München Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wosch Ehrenmitglied V.I.P. h.c. Elektrotechniker im Ruhestand
Beiträge: 2607 Registriert: 16.12.2004 Rechne zuerst ein Problem nach, für das Du eine analytische Lösung kennst.
|
erstellt am: 15. Aug. 2016 13:04 <-- editieren / zitieren --> Unities abgeben: Nur für ojedaenrique
Diese Meldung wird nicht aus dem Codeabschnitt kommen. Um das zu überprüfen, bitte die Anweisungen zeilenweise in die Befehlszeile eingeben. ------------------ Viel Erfolg wünscht Wolfgang Schätzing Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ojedaenrique Mitglied Student
Beiträge: 38 Registriert: 01.05.2016 Ansys 16.1 Studentische Version
|
erstellt am: 15. Aug. 2016 15:33 <-- editieren / zitieren --> Unities abgeben:
Hallo Wosch1, Komischerweise wenn ich den Befehl manuell durchführe funktioniert er ohne Probleme, wenn ich aber die Do-schleife einbringen dann zeigt er mir die Fehlermeldung ------------------ Student Technische Universität München Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
solve1 Mitglied Berechnungsingenieur
Beiträge: 624 Registriert: 27.05.2008 Ansys APDL Ansys WorkBench
|
erstellt am: 15. Aug. 2016 16:31 <-- editieren / zitieren --> Unities abgeben: Nur für ojedaenrique
hi, ich denk auch das diese Fehlermeldung nichts mit dem code in der Schleife zu tun hat, denn dort verwendest du keine Material Nummern. Aber mit der Schleife stimmt auch was nicht. In der *if abfrage muss ein Character Parameter rein. Denn strpos() mach einen String vergleich. Du verwendest hier: SSXY%ZahlWuerfel% Den selben Ausdruck verwendest du bei: ESEL,S,TYPE,,SSXY%ZahlWuerfel% dort muss aber ein integer number (die element type number) rein. Eines von beiden muss in die Hose gehen. Je nachdem was im Parameter "SSXY%ZahlWuerfel%" gespeichert ist. ------------------ Maschinenbau- / Berechnungsingenieur (M.Eng) mit >10 Jahren Berufserfahrung sucht Gelegenheit für berufliche Veränderung in Berlin. Projekterfahrung in der Anwendung von Ansys (APDL und Workbench) im Bereich Strukturmechanik / Dynamik (Nichtlinearitäten, Kontakt, Festigkeit u.d.g.). Gern auch im Rahmen administrativer Tätigkeiten. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ojedaenrique Mitglied Student
Beiträge: 38 Registriert: 01.05.2016 Ansys 16.1 Studentische Version
|
erstellt am: 18. Aug. 2016 15:39 <-- editieren / zitieren --> Unities abgeben:
Hallo Solve1, Ja ich brauche den Ausdruck zwischen dem Prozenten da ZahlWuerfel eine laufende Variable ist. Es kann wirklich sein dass es deswegen auch nicht funktioniert. ------------------ Student Technische Universität München Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
roncaratil Mitglied Ingenieur
Beiträge: 138 Registriert: 14.02.2013 Intel Xeon E5-1620 3.6GHz 48GB RAM ANSYS WB 15.0.7 Mechanical ANSYS SpaceClaim
|
erstellt am: 18. Aug. 2016 16:42 <-- editieren / zitieren --> Unities abgeben: Nur für ojedaenrique
|
solve1 Mitglied Berechnungsingenieur
Beiträge: 624 Registriert: 27.05.2008 Ansys APDL Ansys WorkBench
|
erstellt am: 19. Aug. 2016 08:53 <-- editieren / zitieren --> Unities abgeben: Nur für ojedaenrique
hi, na was steht denn im Parameter "SSXY%ZahlWuerfel%" ist das ne Zahl oder ein Character ? Du sagtest du willst prüfen ob eine Komponente vorhanden ist. Wie heißt die denn, bzw wo hohlst du deren Namen her ? in: *if,strpos(ncomp,hier muss der Name der Komponente rein),eq,1,then muss ein character / string mit dem NAmen drin stehen ------------------ Maschinenbau- / Berechnungsingenieur (M.Eng) mit >10 Jahren Berufserfahrung sucht Gelegenheit für berufliche Veränderung in Berlin. Projekterfahrung in der Anwendung von Ansys (APDL und Workbench) im Bereich Strukturmechanik / Dynamik (Nichtlinearitäten, Kontakt, Festigkeit u.d.g.). Gern auch im Rahmen administrativer Tätigkeiten. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ojedaenrique Mitglied Student
Beiträge: 38 Registriert: 01.05.2016 Ansys 16.1 Studentische Version
|
erstellt am: 23. Aug. 2016 20:46 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, @Rocarantil: ich habe es versuch mit %Zahl% aber es tut sich trotzdem nicht. @Solve1: Also "SSXY" ist ein String und "%Zahlwuerfel%"soll eine laufende Variable sein. Sie wird durch eine Do-Schleife immer um eins erhöt. Das ganze ist so aufgebaut *DO,ZahlWuerfel,1,XYZELE,1 *DO,i,1,numcomp !Loop ueber alle Komponenten *GET,NCOMP,COMP,i,NAME !Name der i-ten Komponente !strpos is case - sensitiv Zahl = CHRVAL(Zahlwuerfel) SSXY%Zahlwuerfel% = 0 *IF,STRPOS(NCOMP,SSXY%Zahl%),EQ,1,THEN !1.Ueberprufung ESEL,S,TYPE,,SSXY%ZahlWuerfel% ESEL,A,TYPE,,TTXY%ZahlWuerfel% EKILL,ALL *ENDIF *ENDDO *ENDDO Je nachdem wie das Modell ausschaut, ist eine Komponente SSXY vorhanden. Wenn diese existiert dann soll diese Komponente deaktivieren und später auf 350°C. Leider brauche ich aber diese laufende Variable da jedes Wuerfelement überprüft werden muss. ------------------ Student Technische Universität München Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ojedaenrique Mitglied Student
Beiträge: 38 Registriert: 01.05.2016 Ansys 16.1 Studentische Version
|
erstellt am: 26. Aug. 2016 17:08 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, Ich habe das Problem jetzt mit einer Do-Schleife gelöst. Die andere Methode fürhte iwie zu ständigen Warnungen oder Fehler. Trotzdem dank für die Hilfe ------------------ Student Technische Universität München Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|