! Commands inserted into this file will be executed just prior to the ANSYS SOLVE command. ! These commands may supersede command settings set by Workbench. ! Active UNIT system in Workbench when this object was created: Metric (mm, kg, N, s, mV, mA) ! NOTE: Any data that requires units (such as mass) is assumed to be in the consistent solver unit system. ! See Solving Units in the help system for more information. !------------------------------------------------------------- !I) Definition von Bestimmten Nodegruppen (z.B. Alle Nodes, die zusammen die obere Kante der Einpressmatrize ausmachen.) !Setzen der Auswahltoleranz (Damit bei der Auswahl aller Nodes bei z.B. Y=10 auch nur die entsprechenden Nodes und nicht die in der Reihe daüber oder darunter Ausgewählt werden.) SELTOL,0.01 !Setzt die Auswahltoleranz auf 0,01mm !1) !Definition der oberen Kante der Einpressmatrize (Aufbringung von Verschiebung und Kraft bzw. der Rückfahrbewegung) CSYS,12 !Wählt das Koordinatensystem, dass auf der oberen linken Ecke der Einpressmatrize liegt aus. NSEL,S,LOC,Y,0,0 !Auswahl aller Nodes, die in dem aktiven KS bei Y=0 liegen (Repräsentiert die obere Kante d. Einpressmatrize.). NSEL,R,LOC,X,0,20 !Schränkt die vorherige Auswahl der Nodes auf den X-Koordinatenbereich ein, in dem die Oberkante d. Einpressmatrize liegt, um auch wirklich nur diese auszuwählen. CM,ETEDGE,NODE !Definiert die Komponente ETEDGE, sodass durch das Aufrufen von TEDGE immer die Nodes selektiert werden, die diese Komponente ausmachen. CMLIST,ETEDGE,1,NODE !Listet die Nodes auf, die ETEDGE bilden. (Einziger Zweck ist Kontrolle, damit man sieht, was passiert.) !2) !Definition der unteren linken Ecke des Rings (Ermittlung des Nutfüllungsgrades durch Y-Verschiebungskomponente) CSYS,13 !Wählt das Koordinatensystem aus, dass auf der unteren linken Ecke des Rings liegt. NSEL,S,LOC,Y,0,0 !Auswahl aller Nodes, die in dem aktiven KS bei Y=0 liegen (Repräsentiert die untere Kante d. Rings.). NSEL,R,LOC,X,0,0 !Schränkt die vorherige Auswahl auf die einzele Node am Eckpunkt ein CM,RBLCORNER,NODE !Definiert die Komponente RBLCORNER CMLIST,RBLCORNER,1,NODE !Listet die Nodes auf, die RBLCORNER bilden. (Einziger Zweck ist Kontrolle, damit man sieht, was passiert.) !3) !Definition der unteren Kante des Bolzens (Ermittlung der Reaktionskraft, ggf. auch während der Berechnung) CSYS,0 !Wählt das globale KS aus, das auf der unteren linken Ecke des Bolzens liegt NSEL,S,LOC,Y,0,0 !Auswahl aller Nodes, die in dem aktiven KS bei Y=0 liegen (Repräsentiert die untere Kante d. Bolzens.). NSEL,R,LOC,X,0,17.5 !Schränkt die vorherige Auswahl auf die Breite des Bolzens an dieser Position ein CM,BBEDGE,NODE !Definiert die Komponente BBEDGE CMLIST,BBEDGE,1,NODE !Listet die Nodes auf, die BBEDGE bilden. (Einziger Zweck ist Kontrolle, damit man sieht, was passiert.) !4) !Definition der oberen Kante des Bolzens (Ermittlung der Reaktionskraft) CSYS,14 !Wählt das KS an der oberen linken Ecke des Bolzens aus. NSEL,S,LOC,Y,0,0 !Auswahl aller Nodes, die in dem aktiven KS bei Y=0 liegen (Repräsentiert die obere Kante d. Bolzens.). NSEL,R,LOX,X,0,10 !Schränkt die vorherige Auswahl auf die Breite des Bolzens an dieser Position ein CM,BTEDGE,NODE !Definiert die Komponente BTEDGE CMLIST,BTEDGE,1,NODE !Listet die Nodes auf, die BTEDGE bilden. (Einziger Zweck ist Kontrolle, damit man sieht, was passiert.) !Zurücksetzen des Koordinatensystems CSYS,0 !Wählt für alle nachfolgenden Handlungen wieder das globale Koordinatensystem aus !------------------------------------------------------------- !II) Einlesen von Parametern aus den Designpoints (Macht Parameter aus den Designpoints auch innerhalb der APDL-Snippets zugänglich) EUYV_=Arg1 !Einlesen der vorläufigen Verschiebung d. Einpressmatrize !------------------------------------------------------------- !III) Definition des ersten Lastschrittes, damit dieser seperat über das LSSOLVE-Command ausgeführt werden kann !Lagerung Bolzen unten ALLSEL !Wählt alles aus !NSUBST,X !Gibt vor, dass der LS in X Substeps berechnet wird (deaktiviert, ggf. später nötig) KBC,0 !Die Last wird Rampenförmig (mit der Zeit steigend) aufgebracht CMSEL,S,BBEDGE,NODE !Auswahl der Unterkante des Bolzend (Ort der Lagerung für diesen LS) D,BBEDGE,UY,0 !Legt die untere Kante des Bolzens fest (Lagerung) !Verschiebung Einpressmatrize oben ALLSEL !Wählt alles aus CMSEL,S,ETEDGE,NODE !Wählt die Nodes der Komponente ETEDGE aus (Oberkante der Einpressmatrize) D,ETEDGE,UY,EUYV_ !Prägt die im Parameter vorgegebene vorläufige Verschiebung auf die Nodes, die die obere Kante der Einpressmatrize bilden auf. ALLSEL !Wählt alles aus T1=EUYV_/(-0.1) !Ermittelt die Zeit, die der Lastschritt benötigt, damit dieser mit einer Verfahrgeschwindigkeit der Einpressmatrize von 0,1mm/s geschieht *STATUS,T1 !Gibt die Zeit T1 nach dem ersten LS aus TIME,T1 !Legt die Zeit nach dem Lastschritt fest LSWRITE,1 !Schreibt den gerade definierten Lastschritt in eine Datei, von der aus er später geladen und gelöst werden kann. !------------------------------------------------------------- !IV) Lösen des ersten Lastschrittes mit der vorläufigen Verschiebung der Einpressmatrize RESCONTROL,DEFINE,1,1,-1 !Sorgt dafür, dass in jedem Substep des ersten LS ein Restartfile geschrieben wird (max999, dann überschreiben der ältesten), damit der Punkt unmittelbar for den 90KN als Restartpunkt verfügbar ist! LSSOLVE,1,1,1 !Löst den ersten Lastschritt !OUTRES,ALL,ALL !Der Umfang, in dem ich dieses Komando nutze ist noch unbekannt, momentan ist es eher ein Platzhalter FINISH !Verlässt den /SOLU - Prozessor !------------------------------------------------------------- !V) Auswerten des vorläufigen ersten Lastschrittes und Bestimmung der finalen Verschiebung des ersten Lastschrittes /POST1 SET,1 CMSEL,S,BBEDGE,NODE !Wählt Nodes der unteren Kante aus *GET,BBEDGENODENUMBER_,NODE,0,COUNT !Schreibt Anzahl der ausgwählten Nodes in BEDGENODENUMBER_ *DIM,BBEDGENODES_,ARRAY,BBEDGENODENUMBER_ !Erschafft Array, BEDGENODENUMBER_ Zeilen hat *VGET,BBEDGENODES_(1),NODE,,NLIST !Füllt das Array mit den Nummern der ausgewählten Nodes *STATUS,BBEDGENODES_ *GET,SUBSTEPNUMBER_,ACTIVE,0,SOLU,NCMSS !Ermittelt die Anzahl der Substeps im aktiven Loadstep *DIM,REAKTIONSKRAEFTE_,ARRAY,SUBSTEPNUMBER_ !Erzeugt Array mit Größe = Anzahl der Substeps *DO,j,1,SUBSTEPNUMBER_,1 !Beginn der Schleife über die Substeps (Ermittlung der Reaktionskräfte) SET,1,j !Legt den Lastschritt und den Substep fest, aus dem die Ergebnisse gelesen werden FYSUM_=0 !Zurücksetzen der Reaktionskraftsumme *DO,i,1,BBEDGENODENUMBER_,1 !Beginn der Schleife über die unteren Nodes (Aufaddieren der einzelnen Nodereaktionskräfte zur Gesamtreaktionskraft) *GET,FYNODE_,NODE,BBEDGENODES_(i),RF,FY !Gibt die Kraftreaktion in Y-Richtung der jeweiligen Node aus FYSUM_=FYSUM_+FYNODE_ !Addiert die Kraftreaktionen der einzelnen Nodes auf *ENDDO REAKTIONSKRAEFTE_(j)=FYSUM_ !Schreibt die jeweilige Kraftreaktion in das Array (je Substep) *ENDDO *STATUS,REAKTIONSKRAEFTE_ *DO,k,1,SUBSTEPNUMBER_,1 !Beginn der Schleife über die Substeps (Suche des Substeps mit F<90KN) *IF,REAKTIONSKRAEFTE_(k),LT,90000,THEN !Ist der Eintrag kleiner als 90KN? ZIELSUBSTEP_=k *ENDIF *ENDDO *STATUS,ZIELSUBSTEP_ !Gibt die Nummer des Zielsubsteps aus *STATUS,REAKTIONSKRAEFTE_,ZIELSUBSTEP_,ZIELSUBSTEP_ !Gibt die Reaktionskraft am Zielsubstep aus SET,1,ZIELSUBSTEP_ !Setzt den aktuellen Substep auf den Zielsubstep *GET,T1NEU_,ACTIVE,0,SET,TIME !Legt die zu dem Zielsubstep_ korrespondierende Zeit in T1NEU ab *STATUS,T1NEU_ !Gibt die neue Zeit T1NEU aus /SOLU !------------------------------------------------------------- !VI) Parameterübergabe für nach dem Restart (ANTYPE) PARSAV,ALL,Pars_ !Schreibt alle Parameter und Arrays in die Datei "Parameters_", damit diese nach dem Restart wieder geladen werden können /INQUIRE,DIRECTORY_,APDL !Versuch, den Pfad zu finden, in dem die Datei abgelegt wird (Ich weiß APDL ist scheinbar nicht das richtige Argument, ich habe andere ausprobiert, habe die Datei aber bisher nicht finden können) !------------------------------------------------------------- !VII) Übergang in den nächsten Substap ANTYPE,STATIC,RESTART,1,ZIELSUBSTEP_,ENDSTEP !Startet die Analyse an dem Punkt unmittelbar vor 90KN neu und beendet den Loadstep, damit dieser dann von dem 90KN Belastungs-LS gefolgt werden kann. !------------------------------------------------------------- !/EXIT !Rauskommentiert, da es jetzt einen 2. LS geben soll, ansonsten dazu da, das Workbench-Solve-Command zu überspringen