Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  ANSYS
  mit Ansys Classics aus Matrix einen 2D Körper generieren

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
  
Entwicklungsingenieurin trifft KI-Experten, eine Pressemitteilung
Autor Thema:  mit Ansys Classics aus Matrix einen 2D Körper generieren (2558 mal gelesen)
hanor
Mitglied
Student


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

Beiträge: 20
Registriert: 11.02.2009

erstellt am: 06. Mrz. 2009 11:58    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

Hi Leute,

Hab mal wieder eine Frage. Ich hab eine 100x100 Matrix in Matlab. Sie besteht aus lauter 1'en und 0'en (1=Material, 0=Luft).
Nun möchte ich mit Ansys diesen Körper rekonstruieren. Meine Idee ist, für jeden Punkt ein Quadrat zu generieren. Wo ich mir nicht sicher bin ist, wie ich diese Quadrat zu dimensionieren habe. Ist der Abstand zwischen den Punkten immer automatisch eins? Dann müsste ich also lauter 0.5*0.5 Quadrate generieren?

Bin dankbar für jede Hilfe.

Gruss
Hanor

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

Tortsen222
Mitglied



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

Beiträge: 499
Registriert: 01.12.2004

erstellt am: 06. Mrz. 2009 13:02    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 hanor 10 Unities + Antwort hilfreich

Du könntest den Spalten/Reihenindex nutzen um Dir Punkte zu erstellen.

Ungefähr so:

IF Wert in (N=1,m=1) = 1  THEN punkt erzeugen

Damit hättest Du dann die Mittelpunkte in ANSYS und könntest die Quadrate generieren. Es müsste sogar gehen anstatt der Erzeugung der Mittelpunkte, die WP an die gewünschte Position zu Verschieben und das Quadrat in Bezug zur WP zu erstellen.


------------------
Grüsse, Torsten

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

hanor
Mitglied
Student


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

Beiträge: 20
Registriert: 11.02.2009

erstellt am: 09. Mrz. 2009 16:40    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

Hi Torsten,

Erstmals danke für deine Antwort. Hab mal gegooglet und hier im Forum bisschen nachgeschaut und bin auch ein bisschen schlauer als vorher, hab jedoch immer noch Probleme mit der Programmiersprache.
Da ich völliger Anfänger in Sachen Ansys bin hab ich da noch ein paar Fragen.


Zuerst einmal möchte ich eine 100x100 Matrix einlesen. Hab die einfach in einem Textfile abgespeichert. Hier schon das erste Problem. Wie lese ich die Daten ein? Bin mit dem Hilfemenu nicht zurecht gekommen. So wie ich das sehe kann ich das mit *VREAD machen.
Hab mir das so vogestellt. Ich möchte das ganze aus einem Textfile in ANSYS einlesen. Bin folgendermassen vorgegangen:
-Neues Textfile erstellt
-Kommandos zum einlesen:   
*DIM,A,,100,100
*VREAD,A(1,1),matrix,,,IJK,100,100           !matrix.txt beinhaltet die Matrix. Im gleichen Ordner wie die Einlesedatei abgespeichert. Muss ich hier den ganzen Pfad angeben, weil kommt
                                                                ne Fehlermeldung: *VREAD cannot open file matrix.

Falls ich nun diese Matrix einlesen KÖNNTE   , möchte ich jeden Eintrag der Matrix abfragen, und falls er einen bestimmten Wert hat, sollte mir dort ein Punkt generiert werden. Ich verstehe aber nicht genau wie ich das hinkriegen kann.

Also Eintrag überprüfen sollte doch so möglich sein: IF, "VAL1", EQ, 1, THEN ....
Hier hab ich 2 Probleme:
-"VAL1" sind ja die Einträge die er zu überprüfen hat. Hier einfach meine oben definierte Matrix "A" reinschreiben? Begreift dann ANSYS dass es jeden Eintrag dieser Matrix überprüfen muss?
-was kommt nach THEN? Soll mir ja nun einen Punkt für Einträge =1 generieren. Hab ja hier 2 Laufvariablen in der Schlaufe (einmal für x und einmal für y). Also dann müsste der Befehl irgendwie so aussehen (für z nehme ich einfach 0): k,,i,j,0
Wie oder wo muss ich die Laufvariablen definieren?

Falls ich nun auch diese Punkte generiert hätte. Könnte ich dann mit dem Befehl: BLC5, XCENTER, YCENTER, WIDTH, HEIGHT, DEPTH   die Blöcke generieren. Für das XCENTER und YCENTER möchte ich ja dann die jeweiligen Koordinaten der Punkte die ich habe. Wie müsste ich denn das schreiben?


Freu mich über jede Hilfe.
Gruss
Hanor

                                                                         

[Diese Nachricht wurde von hanor am 09. Mrz. 2009 editiert.]

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

wosch
Ehrenmitglied V.I.P. h.c.
Elektrotechniker im Ruhestand


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

Beiträge: 2607
Registriert: 16.12.2004

Rechne zuerst ein Problem nach, für das Du eine analytische Lösung kennst.

erstellt am: 09. Mrz. 2009 19:48    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 hanor 10 Unities + Antwort hilfreich

Wenn man mit MATLAB besser als mit ANSYS umgehen kann, wäre es doch sinnvoller, die Datei ansys-gerecht in MATLAB aufzubereiten.
Dabei ergeben sich die Fragen:
- eine 100*100-Matrix ergibt doch keinen Körper, sondern eine Fläche?
- was soll das für eine Fläche werden, wenn die Werte nur 0 oder 1 sind?
- was soll dann in ANSYS damit gemacht werden?
Ein Punkt (sowohl Keypoint als auch Knoten) wird durch drei Koordinaten beschrieben. Woher kommen die?

------------------
Viel Erfolg wünscht
Wolfgang Schätzing

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

hanor
Mitglied
Student


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

Beiträge: 20
Registriert: 11.02.2009

erstellt am: 09. Mrz. 2009 23:16    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 Wolfgang.

Ich muss schlussendlich einen Gasfluss durch ein poröses Medium simulieren. Bei dem porösen Medium handelt es sich um die Anode einer Brennstoffzelle. Mittels Tomografie wurden 100 Querschnittbilder dieses Mediums erstellt und mit Hilfe von Matlab weiterverarbeitet. Dabei wurde jeder Querschnitt in 100x100 Pixel aufgeteilt und jedem Pixel der das Material (schwarz) repräsentiert den Wert 1 und für Luft (weiss) den Wert 0 zugeschrieben.
Zuletzt möchte ich das 3D Modell (ganzer Würfel) und das 2D Modell (nur eine Querschnittsfläche) simulieren.
Nun suche ich eine Möglichkeit mein oben genanntes Problem lösen oder besser gesagt meine oben genannte Idee, welche ich denke das sie machbar ist, verwirklichen kann.


Gruss
Hanor

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

Tortsen222
Mitglied



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

Beiträge: 499
Registriert: 01.12.2004

erstellt am: 10. Mrz. 2009 10:40    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 hanor 10 Unities + Antwort hilfreich


DateiauslesenundinarrayschreibenANSYS.rar

 
Hallo:

1. Einlesen der Matrix --> siehe Anhang (Matrix ist 3x3)

2. Die Abfrage  IF, "VAL1", EQ, 1, THEN

Das musst Du in einer geschachtelten Schleife machen. Ungefähr so:

*do,i,1,100
*do,j,1,100
param=array(i,j)           !* param ist eine Hilfsvariable
if, param,eq,1,then
k,0,i,j,0                  !* Keypoints, Koordinaten: i,j,0
else
*enddo
*enddo

3. Die Laufvariablen muss man nicht definieren, dass wird automatisch am Schleifenbeginn gemacht.

4. Ich würde Dir empfehlen anstatt deer Keypoint Erzeugung die Arbeitsfläche an die gewünschten Positionen zu verschieben (wenn eine 1 in Deiner Matrix vorliegt). Das machst Di mit dem Befehl: WPLANE
Danach kannst Du dann einfach eine Fläche im Ursprung der Arbeitsfläche erstellen mit BLC5

Ungefähr so:

*do,i,1,100
*do,j,1,100
param=array(i,j)           !* param ist eine Hilfsvariable
if, param,eq,1,then
WPLANE,,i,j,0,1,0,0,0,1,0 
!* Verschiebt WP an die Koordinaten i,j,Z=0, die Vektoren 1,0,0 und 0,1,0 definieren die Ebene
BLC5,0,0,1,1
!* Erzuegt fläche (1x1)
else
*enddo
*enddo


------------------
Grüsse, Torsten

[Diese Nachricht wurde von Tortsen222 am 10. Mrz. 2009 editiert.]

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

hanor
Mitglied
Student


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

Beiträge: 20
Registriert: 11.02.2009

erstellt am: 10. Mrz. 2009 11:29    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

Hi Torsten,

Danke für deine ausführliche Erklärung. Ich kann anhand deinem Beispiel nachvollziehen, wie die Programmiersprache aufgebaut ist, hab aber immer noch ein Problem.

Wenn ich meine Matrix einlesen will mit:
! Array bilden, 100x100 Werte
  *DIM,tt,ARRAY,100,100
! Datei "matrix_test.txt" auslesen und in Array schreiben
  *VREAD,tt,matrix_test,txt,,JIK,100,100,,
  (E15.8,E15.8,E15.8)

Kommt die Fehlermeldung: *VREAD cannot open file matrix_test.txt
Keine Ahnung an was das liegt. Ich muss ja den Pfad nicht angeben, wenn ich matrix_test.txt im gleichen Ordner habe wie mein Einlesetextfile, oder?
Was sollen eigentlich die Zahlen (E15.8,E15.8,E15.8)?

Muss dann nicht noch irgendwo in der *DO schleife vor der Knotenbildung oder in deinem 2.Bsp vor der Flächenbildung ein /prep7 stehen?

Danke nochmals für deine tatkräftige Unterstützung.
Gruss
Hanor

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

arnd13
Mitglied
Dipl. Ing.


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

Beiträge: 735
Registriert: 05.11.2008

erstellt am: 10. Mrz. 2009 13:04    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 hanor 10 Unities + Antwort hilfreich

Dein Einlesetextfile muss entweder in Deinem Arbeitsverzeichnis liegen, oder Du mußt einen Pfad mitangeben. Mit

/inqu,ist_,exist,matrix_test,txt      !Fragt, ob es das file matrix_test.txt gibt
*if,ist_,eq,1,then     
  *msg,ui          !Gibt eine Nachricht auf dem Bildschirma aus
  File matrix_test.txt vorhanden 
*else
  *msg,ui
  Achtung: File matrix_test.txt nicht vorhanden!
*endif

kannst Du feststellen, ob Dein Einlesefile überhaupt gefunden wird.


(E15.8,E15.8,E15.8) gibt die Formate der Spalten in dem Einlesefile an. In diesem Fall 3 Spalten (...,...,...), in jeder Spalte eine Zahl im wissenschaftlichem Format (e, möglich wären z.B. auch i - integer, f - floating usw) mit insgesamt 15 Stellen, wovon 8 Stellen nach dem Komma sind.

Kleine Hilfe:
!#####!Formatangaben der Spalten!########
!##############################################
!Formate: (n_f_s_.k_)
!n_:Anzahl gleicher Spalten wie dieser
!f_:f für float, i für integer usw.
!s_:Anzahl der Stellen insgesamt
!k_:Zahl der Nachkommastellen
!Beispiel:  |    305.23      45.12345      76.12351
!Formatangabe: (f11.3,2f14.5)
!####################################################################

An den Formatangaben verzweifelt (fast) jeder. Am besten ausprobieren, wenn Du sicher bist, dass Deine Datei gefunden wird.

Gruß,
A.       
 

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

Tortsen222
Mitglied



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

Beiträge: 499
Registriert: 01.12.2004

erstellt am: 10. Mrz. 2009 13:45    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 hanor 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von hanor:
Hi Torsten,

Danke für deine ausführliche Erklärung. Ich kann anhand deinem Beispiel nachvollziehen, wie die Programmiersprache aufgebaut ist, hab aber immer noch ein Problem.

Wenn ich meine Matrix einlesen will mit:
! Array bilden, 100x100 Werte
  *DIM,tt,ARRAY,100,100
! Datei "matrix_test.txt" auslesen und in Array schreiben
  *VREAD,tt,matrix_test,txt,,JIK,100,100,,
  (E15.8,E15.8,E15.8)

Kommt die Fehlermeldung: *VREAD cannot open file matrix_test.txt
Keine Ahnung an was das liegt. Ich muss ja den Pfad nicht angeben, wenn ich matrix_test.txt im gleichen Ordner habe wie mein Einlesetextfile, oder?
Was sollen eigentlich die Zahlen (E15.8,E15.8,E15.8)?

Muss dann nicht noch irgendwo in der *DO schleife vor der Knotenbildung oder in deinem 2.Bsp vor der Flächenbildung ein /prep7 stehen?

Danke nochmals für deine tatkräftige Unterstützung.
Gruss
Hanor


Das einfachste ist, alle Dateien (Einlesefile, die Matrix usw.) im Arbeitsverzeichiss zu hinterlegen, dann brauchst Du keinen Verzeichnisspfad an zu geben.

Natürlich muss irgendwo im Programmcode /prep7 stehen (vor der Schleife), dieses Grundwissen habe ich allerdings vorausgesetzt.

Die ANSYS Hilfe ist eine der Besten mit der ich je zu tun hatte, werf mal einen Blick rein! (APDL Programmer's Guide)


------------------
Grüsse, Torsten

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

hanor
Mitglied
Student


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

Beiträge: 20
Registriert: 11.02.2009

erstellt am: 10. Mrz. 2009 14:44    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 eure Antworten. Hab nun noch ein Problem. Und zwar macht es mir auch für Einträge ungleich 1 ein Quadrat, was bedeutet ,dass wohl die else Schlaufe nicht funktionert oder dass dort noch ein Befehl fehlt. Zudem wird das WB verdreht und die Quadrate dementsprechend auch verdreht zueinander. Keine Ahnung warum.
Mit dem Abspeichern gings.

Hab nun folgenden Code:

! Array bilden, 4x4 Werte
  *DIM,tt,ARRAY,4,4
 
! Datei "Datei.txt" auslesen und in Array schreiben. Wobei meine Matrix in Datei.txt nur aus 1'en und 0'en besteht.
  *VREAD,tt,Datei,txt,,JIK,4,4,,
  (E15.8,E15.8,E15.8,E15.8)
 

/prep7

*do,i,1,4
*do,j,1,4
param=tt(i,j)                  !* param ist eine Hilfsvariable
if, param,eq,1,then
WPLANE,1,i,j,0,1,0,0,0,1,0     !* Verschiebt WP an die Koordinaten i,j,Z=0, die Vektoren 1,0,0 und 0,1,0 definieren die Ebene
BLC5,0,0,1,1                   !* Erzuegt fläche (1x1)
else
*enddo
*enddo

Wenn ichs übrigens mit meiner 100x100Matrix versuche kommt mir ne Fehlermeldung, dass mein Format too long ist. Liegt wahrscheinlich daran, dass ich unter *VREAD dann 100mal E15.8 geschrieben habe. Wie kann ich denn das umgehen?

Gruss Hanor

[Diese Nachricht wurde von hanor am 10. Mrz. 2009 editiert.]

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

Tortsen222
Mitglied



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

Beiträge: 499
Registriert: 01.12.2004

erstellt am: 10. Mrz. 2009 15:15    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 hanor 10 Unities + Antwort hilfreich

Hanor,

das wird meine letzte Antwort zu diesem Thema sein, Du solltest wirklich mal ein bisschen selbst überlegen.

Den Programmcode, den ich Dir gegeben habe, sollte nur als Beispiel dienen, die Befehle habe ich nicht mehr genau im Kopf aber prinzipiell muss das so funktionieren.

Das mit den Formaten ist so ne Sache in ANSYS, allerdings sollte es klar sein, dass eine "1" ohne Kommastellen als "Integer" formatiert werden muss, oder?

------------------
Grüsse, Torsten

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

arnd13
Mitglied
Dipl. Ing.


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

Beiträge: 735
Registriert: 05.11.2008

erstellt am: 10. Mrz. 2009 16:23    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 hanor 10 Unities + Antwort hilfreich

Bitte unsere Antworten genau lesen. Aus meiner Antwort vorhin wird klar, dass Du nicht 100mal e15.8 eingeben musst, sondern dass es auch 100e15.8 heißen kann.

In Deinem code fehlt for dem if ein *, ebenso vor dem else. Es muss also lauten

*if,param,eq,1,then
WPLANE,1,i,j,0,1,0,0,0,1,0   
BLC5,0,0,1,1                 
*else

Bitte keine Leerzeichen in Deinem code verwenden. ANSYS ist da empfindlich.

Und: ALLE BEFEHLE IN DER HILFE NACHSCHLAGEN! DANN WÄRE DIR DAS MIT DEM * SOFORT AUFGEFALLEN!

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

ChristophN
Mitglied
Berechnungsingenieur


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

Beiträge: 773
Registriert: 13.12.2008

erstellt am: 10. Mrz. 2009 17:31    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 hanor 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von hanor:
Ich muss schlussendlich einen Gasfluss durch ein poröses Medium simulieren.

Also nochmal zum mitschreiben: du willst eine Strömung durch ein poröses Material simulieren, indem du die "Porösität" mithilfe von Quadraten abbildest? Die haben doch scharfe Kanten, ohne Radius... Meinst du, dass das dann noch etwas mit der Realität zu tun hat? Das ist ja immerhin eine Strömung und die Navier-Stokes-Gleichungen sind doch "sehr" nichtlinear. Da sollte man schon so genau wie möglich versuchen die Realität abzubilden, meinst du nicht? Ich dachte aus einem vorhergehendem Post etwas von einem 3D CAD-Modell gelesen zu haben, funktioniert das denn nicht?
Und was soll das 2D-Modell aussagen? Die Strömung und die Geometrie sind doch nunmal sicher dreidimensional, in welcher Weise willst du denn da etwas vereinfachen?

Zitat:
Original erstellt von Tortsen222:
Die ANSYS Hilfe ist eine der Besten mit der ich je zu tun hatte, werf mal einen Blick rein! (APDL Programmer's Guide)

Jawohl, ganz meine Meinung! Dieser Satz sollte vielleicht auch bei beinahe jedem Thema mit dabei stehen!

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

hanor
Mitglied
Student


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

Beiträge: 20
Registriert: 11.02.2009

erstellt am: 10. Mrz. 2009 17:34    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 eure Hilfe, jedoch hab ich immer noch die 2 Probleme.
- Verdrehung der Quadrate
- kein Unterschied ob 0 oder 1, es gibt immer ein Quadrat.

@arnd13: Glaube nicht dass das vom * abhängt. Wenn ich das nämlich schreib, geschieht gar nichts mehr.

Gruss
Hanor

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

arnd13
Mitglied
Dipl. Ing.


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

Beiträge: 735
Registriert: 05.11.2008

erstellt am: 10. Mrz. 2009 17:55    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 hanor 10 Unities + Antwort hilfreich

Der * gehört auf jeden Fall zum if. Wenn nichts mehr geschieht hast Du vielleicht keine Einsen in Deinem array. Einfach mal angucken mit *vedit,...

Zur Verdrehung: Untersuche noch mal Dein WPLAN-command! Deine x-Achse zeigt immer auf den Punkt 1,0,0 im globalen KS. Wenn die WP weiterrückt, ist der Zeiger meiner Meinung nach doch nicht mehr parallel zur globalen x-Achse. -> Ausprobieren, Hilfe studieren!

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

Tortsen222
Mitglied



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

Beiträge: 499
Registriert: 01.12.2004

erstellt am: 10. Mrz. 2009 18:04    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 hanor 10 Unities + Antwort hilfreich


CADDE.rar

 
Da hat mich doch der Ehrgeiz gepackt.

Definitiv mein letzter Beitrag hier.

------------------
Grüsse, Torsten

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

hanor
Mitglied
Student


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

Beiträge: 20
Registriert: 11.02.2009

erstellt am: 10. Mrz. 2009 18:33    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 an alle die mir hier weitergeholfen haben.

Hätte nur noch eine Frage bzgl. dem Einlesen. Das klappt bei mir noch nicht ganz.

Mein Code lautet nun:
! Datei "Datei.txt" auslesen und in Array schreiben
*VREAD,tt,Datei,txt,,IJK,4,4,,
(4D1.0)

In meiner Datei.txt ist folgende Matrix:
1 1 1 0
1 1 1 1
0 1 0 0
1 0 1 0

Wenn ich aber über *Vedit,tt die Matrix betrachte kommt da:
1 0 1 0
1 0 1 0
0 0 1 0
1 0 0 0

An was könnte das liegen? Den Eintrag IJK beim *VREAD begreif ich nicht so ganz (auch nachdem ich die HELP Funktion genutzt habe  )
Kann ich mit diesem Eintrag sagen, ob zuerst die Zeile oder zuerst die Spalte eingelesen werden soll? Ist dann I=Zeile und J=Spalte oder wie?

Gruss
Hanor

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

arnd13
Mitglied
Dipl. Ing.


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

Beiträge: 735
Registriert: 05.11.2008

erstellt am: 10. Mrz. 2009 18:36    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 hanor 10 Unities + Antwort hilfreich

Beim Format mußt Du die Leerzeichen mitzählen. Das könnte ein Fehler sein. Und versuchs mal mit JIK.
Gruß, A.

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

hanor
Mitglied
Student


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

Beiträge: 20
Registriert: 11.02.2009

erstellt am: 10. Mrz. 2009 18:49    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

Jop, hab die Leerzeichen nicht mitgezählt.

Hab aber immer noch ein Problem. Sitze jetzt sicher schon 2Stunden dran (ja der Beitrag wurde zwar um 18.49 erstellt, aber ich hab ihn um 23.25 editiert  ) und kriegs einfach nicht hin  

Mit dem unten aufgeführten Code erscheint mir einfach nur ein einziges Quadrat, obwohl meine Matrix tt sicher mehr als nur eine 1 hat. Hab ich über *vedit,tt auch überprüft.
Falls ich die * vor dem if und dem else wegnehme, werden alle 16 Quadrate aufgezeichnet und zwar verdreht. Das heisst, das * wird sicher richtig sein.
Nun zur Verdrehung: WPLANE, WN, XORIG, YORIG, ZORIG, XXAX, YXAX, ZXAX, XPLAN, YPLAN, ZPLAN
Also stimmt das schon was ich geschrieben habe:  XYZorig setzte ich den neuen Nullpunkt meiner Arbeitsfläche, mit XYZxax definiere ich wo meine X-Achse verläuft (glaub die Richtung noch nicht) und mit XYZplan steht in HELP: Global Cartesian coordinates of the third point defining the working plane. This point will also define the location of the positive XY-sector of the working plane coordinate system.
XYZplan begreif ich nicht ganz. Ein dritter Punkt der mir meine Arbeitsfläche definiert? Gleichzeitig auch noch die pos. XY-Fläche?


! Array bilden, 4x4 Werte
*DIM,tt,ARRAY,4,4
 
! Datei "Datei.txt" auslesen und in Array schreiben
*VREAD,tt,Datei,txt,,IJK,4,4,,
(4D2.0)
 

/prep7

*do,i,1,4
*do,j,1,4
param=tt(i,j)                  !* param ist eine Hilfsvariable
*if, param,eq,1,then
WPLANE,1,i,j,0,1,0,0,0,1,0     !* Verschiebt WP an die Koordinaten i,j,Z=0, die Vektoren 1,0,0 und 0,1,0 definieren die Ebene
BLC5,0,0,1,1                   !* Erzuegt fläche (1x1)
*else
*enddo
*enddo

Hast du hier ne Ahnung an was das liegt?

Gruss
Hanor

[Diese Nachricht wurde von hanor am 10. Mrz. 2009 editiert.]

[Diese Nachricht wurde von hanor am 10. Mrz. 2009 editiert.]

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

hanor
Mitglied
Student


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

Beiträge: 20
Registriert: 11.02.2009

erstellt am: 10. Mrz. 2009 23:28    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


Datei.txt


Einlesen.txt

 
hier nur noch der Beweis für Leute die denken ich frag einfach immer nur nach und kümmere mich um nichts 

übrigens, hab noch meine files in den Anhang getan.

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

wosch
Ehrenmitglied V.I.P. h.c.
Elektrotechniker im Ruhestand


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

Beiträge: 2607
Registriert: 16.12.2004

Rechne zuerst ein Problem nach, für das Du eine analytische Lösung kennst.

erstellt am: 11. Mrz. 2009 07:18    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 hanor 10 Unities + Antwort hilfreich

Was gleich auffällt:
- das Einlesen funktioniert erst im /prep7
- die *if-Anweisung wird mit *endif abgeschlossen
- das Einlesen wird nicht im Direktmodus funktionieren

------------------
Viel Erfolg wünscht
Wolfgang Schätzing

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

wosch
Ehrenmitglied V.I.P. h.c.
Elektrotechniker im Ruhestand


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

Beiträge: 2607
Registriert: 16.12.2004

Rechne zuerst ein Problem nach, für das Du eine analytische Lösung kennst.

erstellt am: 11. Mrz. 2009 07:52    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 hanor 10 Unities + Antwort hilfreich

So funktioniert es:
Code:
!Datei von hanor

finish  $/clear
*abbr,hanor,/inp,Einlesen,txt  !Generiert Startbutton

! Array bilden, 4x4 Werte
*DIM,tt,ARRAY,4,4
 
/prep7

! Datei "Datei.txt" auslesen und in Array schreiben
*VREAD,tt,Datei,txt,,IJK,4,4,,
(4D2.0)
 
!/eof

kante=0.02      !Kantenlänge des Quadrats

*do,i,1,4
  *do,j,1,4
    param=tt(i,j)    !* param ist eine Hilfsvariable
    *if,param,eq,1,then
      rectng,(i-1)*kante,i*kante,(j-1)*kante,j*kante
    *endif
  *enddo !j
*enddo !i



allerdings nur, wenn in die Eingabezeile von ANSYS die Zeichenkette /inp,Einlesen,txt eingegeben und gestartet wird.

------------------
Viel Erfolg wünscht
Wolfgang Schätzing

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

hanor
Mitglied
Student


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

Beiträge: 20
Registriert: 11.02.2009

erstellt am: 11. Mrz. 2009 10:39    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

Hi Wolfgang,

Danke dir vielmals für dein Hilfe. Denke habs soweit begriffen. Raffinierter Trick mit deinem rectng-Befehl  
So kannst du die ganze WPverschiebung umgehen.

Gruss Hanor


[Diese Nachricht wurde von hanor am 11. Mrz. 2009 editiert.]

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

hanor
Mitglied
Student


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

Beiträge: 20
Registriert: 11.02.2009

erstellt am: 11. Mrz. 2009 10:58    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

Noch kurz. Falls ich nun mehrere solche Matrizen habe. Sagen wir 100 100x100Matrizen (3D Körper)
Bin mir nicht sicher wie ich das beim Einlesen machen soll:

Wie lese ich das ein? Bin ja nun im 3dimenstionalen. Wie kann ich die Matrizen abspeichern? Hab jetzt 100 100x100 Matrizen in Textformat

! Datei "matrix.txt" auslesen und in Array schreiben
*VREAD,tt,matrix,txt,,JKI,100,100,100,
(100D2.0)  ---> was muss ich hier schreiben?

Danke schon mal für die Antworten.

Gruss
Hanor

[Diese Nachricht wurde von hanor am 11. Mrz. 2009 editiert.]

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

hanor
Mitglied
Student


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

Beiträge: 20
Registriert: 11.02.2009

erstellt am: 11. Mrz. 2009 17: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

Hey Leute,

konnte mein Problem selber lösen. Hab n bisschen gemogelt. Hab einfach alle Matrizen nebeneinander gereit. Dazu hab ich einfach in Matlab ein m.File geschrieben. Danach hab ich mit folgendem Code mein 3D Körper generiert:
Nur ein Bsp.Code für 3x3x3 Matrix:

finish  $/clear
*abbr,enzo,/inp,Einlesen,txt  !Generiert Startbutton

! Array bilden, 100x100x100 Werte
*DIM,tt,ARRAY,3,9,

/prep7

! Datei "matrix.txt" auslesen und in Array schreiben
*VREAD,tt,matrix,txt,,IJK,3,9,,
(9D2.0)

!/eof

*do,k,1,3
  *do,i,1,3
    *do,j,1,3
      param=tt(i,j+(k-1)*3)                          !* param ist eine Hilfsvariable
      *if,param,eq,1,then
        WPLANE,,0,0,k-1,1,0,k-1,0,1,k-1   
        BLC5,i-0.5,j-0.5,1,1,1 
      *endif
    *enddo    !j
  *enddo      !i
*enddo        !k


Gruss
Hanor

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