| | | CATIA V5 Grundkurs | Einsteiger - 5 Std. 15 Min | | | | KISTERS 3DViewStation: 3D-Heatmaps für aussagekräftige Machbarkeitsanalysen, eine Pressemitteilung
|
Autor
|
Thema: Abaqus Coupling mittels Skript (545 / mal gelesen)
|
anfänger321 Mitglied Student
Beiträge: 7 Registriert: 25.12.2023 Abaqus 2019
|
erstellt am: 29. Dez. 2023 16:35 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, im Zuge meiner Masterarbeit führe ich Knickversuche in Abaqus an Verbundglasstützen durch. Hierfür habe ich einen Skript erstellt um die Versuche automatisiert durchzuführen. Zuerst erstelle ich ein Part. Mittels datum Planes und Partition werden die Stützen in Glas und Folie unterteilt. Das Skirpt soll für n Glasscheiben und n-1 Folien anwendbar sein. Für den späteren Gebrauch erstelle ich in den Scheibenmitten partion faces. Zur Lasteinleitung und für die Lagerung werden ober- und unterhalb RP erstellt. Nur habe ich nun Probleme beim Coupling der RP und der Partiton Faces in den Scheibenmitten. In meinem ersten Skript für 2-fach Glasstützen hat das ohne Probleme funktioniert. Mithilfe des Macro Managers konnte ich die Sets der RPs und die Surfaces einfach ermitteln. Nun habe ich das Problem das dieselben Schritte für n Scheiben funktionieren soll. Das soll dann mit einer For Schleife laufen. Ich bin absoluter Neuling in Sachen Abaqus und bis jetzt mit Try und Error so weit gekommen. Leider komme ich nicht mehr voran und mein Betreuer hat absolut keine Idee warum seine For-Schleife nicht funktioniert. Könnt ihr mir da vielleicht weiterhelfen. Vielleicht seht ihr ja den Grund warum die Schleife nicht funktioniert oder habt einen anderen Ansatz. Wäre für jede Hilfe dankbar. Im Anhang findet ihr das Skript. Gerne versuche ich eure Fragen bei Unklarheiten zu beantworten. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mustaine Ehrenmitglied V.I.P. h.c.
Beiträge: 3585 Registriert: 04.08.2005 Abaqus
|
erstellt am: 31. Dez. 2023 11:19 <-- editieren / zitieren --> Unities abgeben: Nur für anfänger321
Wenn ich das richtig sehe, suchst du mit der BoundingBox im Part, möchtest dann aber das Set auf Assembly-Level erstellen. Das passt nicht zusammen. Außerdem empfehle ich mal ein print nach der BoundingBox-Suche einzubauen, um zu sehen was du bekommst. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
anfänger321 Mitglied Student
Beiträge: 7 Registriert: 25.12.2023 Abaqus 2019
|
erstellt am: 01. Jan. 2024 15:11 <-- editieren / zitieren --> Unities abgeben:
Hallo Mustaine, erstmal vielen Dank für deine Antwort. MIt der Funktion findAt() hat er den Punkt nicht finden können bzw. an der Stelle kein Node gefunden, daher der Versuch mit BoundingBox. Ich verstehe aber nicht was du meinst mit Set auf Assembly-Level erstellen meinst😅. So wie ich den Code verstehe -nimmt er mein Ref Point "Loslager", erstellt daraus ein Set und definiert es als region1 -danach sucht er das erste edge an der Stelle: breite/2,hoehe,dglas[0]/2 (das ist meine partition face in der Mitte meiner ersten Scheibe) -dann beginnt die for schleife von 1 bis Anzahl Werte dglas -danach soll er als Schleife die nächsten Partition faces finden -Wenn ich die Koordinaten für edgeCurr ausgebe bekomme ich folgende Box ausgegeben: (-1,1999,14,52,251,2001,16,52) -innerhalb dieser Box ist auch meine zweite partition face: (125,2000,15,52) -für i=2 sind die Koordinaten in der Box ebenfalls richtig -dann wird die region2 definiert. Warum wird edgesTop1 nun als region2 definiert. Müsste nicht edgeCurr als region2 definiert werden -im Anschluss soll dan meine region1 (also RefPoint) mit meiner region2 (die Scheibenmitten) gecoupelt werden. Danke Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mustaine Ehrenmitglied V.I.P. h.c.
Beiträge: 3585 Registriert: 04.08.2005 Abaqus
|
erstellt am: 02. Jan. 2024 10:02 <-- editieren / zitieren --> Unities abgeben: Nur für anfänger321
Wenn ich dein Skript ausführe, kommt der Fehler in Zeile 222. Das ist folgender for-Loop: Code:
for i in range(1,len(dglas)): j=i*2 p = mdb.models[modelname].parts[partname] s = p.edges edgeCurr = s.getByBoundingBox(-1,hoehe-1,datumDicken[j]-dglas[i]/2-1,breite+1,hoehe+1,datumDicken[j]-dglas[i]/2+1) a.Set(edges=edgeCurr, name='slaveTop'+str(i+1))
Wie man sehen kann, gehst du mit p ans Part und dann damit weiter zur BoundingBox. Das Set erstellst du dann aber mit a.Set(), also mit Referenz aufs Assembly. Wenn ich das Set auch auf Part-Level erstelle und die BoundingBox-Ergebnisse richtig nutze, läuft der loop fehlerfrei durch. Code:
for i in range(1,len(dglas)): j=i*2 p = mdb.models[modelname].parts[partname] s = p.edges edgeCurr = s.getByBoundingBox(-1,hoehe-1,datumDicken[j]-dglas[i]/2-1,breite+1,hoehe+1,datumDicken[j]-dglas[i]/2+1) idx = edgeCurr[0].index p.Set(edges=s[idx:idx+1], name='slaveTop'+str(i+1))
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
anfänger321 Mitglied Student
Beiträge: 7 Registriert: 25.12.2023 Abaqus 2019
|
erstellt am: 02. Jan. 2024 14:21 <-- editieren / zitieren --> Unities abgeben:
Hallo Mustaine, vielen Dank für die Antwort und Erklräung. Jetzt verstehe ich auch was du mit Assembly Set meinst. Vorher waren meine Sets unter dem Reiter Assemby zu finden nun sind sie unter dem Reiter Parts zusammen mit den anderen Sets. Ich bekomme jedoch immer noch nicht die Constraints hin. Im Grunde genommen hast du jetzt statt ein Assembxl Set ein Part Set erstellt und mein edgeCurr als idx definiert. Als Set erhalte ich dann slaveTop2 und slaveTop3. In diesem Fall müsste ich doch mein edgesTop1 ebenfalls als Part Set ertsellen oder? Denn ich will ja mein RefPoint mit allen 3 Scheibenmitten (bzw. n-Scheibenmitten) verbinden. So sieht mien Code nun aus:
Code: #Coupling Reference Point mit Glasmitten obenrefPoints1=(idRF1, ) region1=p.Set(referencePoints=refPoints1, name='Loslager+Lastpunkt') edgesTop1 = p.edges.findAt((breite/2,hoehe,dglas[0]/2),) for i in range(1,len(dglas)): j=i*2 p = mdb.models[modelname].parts[partname] s = p.edges edgeCurr = s.getByBoundingBox(-1,hoehe-1,datumDicken[j]-dglas[i]/2-1,breite+1,hoehe+1,datumDicken[j]-dglas[i]/2+1) idx = edgeCurr[0].index p.Set(edges=s[idx:idx+1], name='slaveTop'+str(i+1)) region2 = p.Set(edges=idx, name='slaveTop') mdb.models[modelname].Coupling(name='Loslager+Last', controlPoint=region1, surface=region2, influenceRadius=WHOLE_SURFACE, couplingType=KINEMATIC, localCsys=None, u1=ON, u2=ON, u3=ON, ur1=ON, ur2=ON, ur3=ON)
Ist es auch richtig, dass mein mdb.models.Coupling eingerückt ist. Ansonsten erhalte ich einen syntax Fehler. Abaqus will von mir zum Coupling eine region, daher erstelle ich die region2 und will idx bzw. edgeCurr als region2 definieren. Ist der Ansatz korrekt oder liege ich damit komplett falsch? Danke nochmals Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mustaine Ehrenmitglied V.I.P. h.c.
Beiträge: 3585 Registriert: 04.08.2005 Abaqus
|
erstellt am: 02. Jan. 2024 15:31 <-- editieren / zitieren --> Unities abgeben: Nur für anfänger321
Der Reihe nach: - Was ich mit meinem Beispiel nur zeigen wollte ist, dass du nicht Objekte aus dem Part (Edges, ...) für die Erstellung von Sets im Assembly nehmen kannst. - Couplings werden immer auf Assembly-Level erstellt, insofern müssen die verwendeten Regionen Assembly-Regionen oder -Sets sein. - Entweder du erstellst die Sets am Assembly (also Instanzen) oder du verwendest die vererbten* Sets aus dem Part. - Wenn du nur ein Coupling haben möchtest, solltest du es nicht im Loop erstellen. - Wenn du mehrere Sets als eine Region in einem Coupling haben möchtest, dann müsstest du entweder die Sets zu einem gemeinsamen Set verschmelzen (merge) oder die Inhalte der Sets auslesen und als Region für das Coupling vorgeben. Oder du erstellst ein Set auf Assembly-Level in dem direkt alles drin ist was du verwenden möchtest. *Part-Sets werden mit Instanz-Prefix im Namen ins Assembly weitergereicht. Das kann man im Baum sehen. [Diese Nachricht wurde von Mustaine am 02. Jan. 2024 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
anfänger321 Mitglied Student
Beiträge: 7 Registriert: 25.12.2023 Abaqus 2019
|
erstellt am: 02. Jan. 2024 17:31 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von Mustaine: Der Reihe nach: - Was ich mit meinem Beispiel nur zeigen wollte ist, dass du nicht Objekte aus dem Part (Edges, ...) für die Erstellung von Sets im Assembly nehmen kannst. verstanden - Couplings werden immer auf Assembly-Level erstellt, insofern müssen die verwendeten Regionen Assembly-Regionen oder -Sets sein. - Entweder du erstellst die Sets am Assembly (also Instanzen) oder du verwendest die vererbten* Sets aus dem Part. - Wenn du nur ein Coupling haben möchtest, solltest du es nicht im Loop erstellen. Der Grund für die Schleife war, damit ich n Scheiben mit dem Refpoint couplen kann. Ansonsten hatte ich keine Probleme bei meinem Code für 2fach oder 3fach Glasscheiben - Wenn du mehrere Sets als eine Region in einem Coupling haben möchtest, dann müsstest du entweder die Sets zu einem gemeinsamen Set verschmelzen (merge) oder die Inhalte der Sets auslesen und als Region für das Coupling vorgeben. wird das nicht mit der For schleife versucht. Dass ich alle Faces durchgehe und später alle edges in eine region zusammenführe Oder du erstellst ein Set auf Assembly-Level in dem direkt alles drin ist was du verwenden möchtest. wie sieht da der Ansatz aus?*Part-Sets werden mit Instanz-Prefix im Namen ins Assembly weitergereicht. Das kann man im Baum sehen. Verstehe, also muss ich meine Part Sets erstellen und im Anschluss meine Instance erstellen und alle vorherigen Sets aus dem Part gehen auch ins Assembly über [Diese Nachricht wurde von Mustaine am 02. Jan. 2024 editiert.][/i]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mustaine Ehrenmitglied V.I.P. h.c.
Beiträge: 3585 Registriert: 04.08.2005 Abaqus
|
erstellt am: 03. Jan. 2024 20:35 <-- editieren / zitieren --> Unities abgeben: Nur für anfänger321
Zitat: wird das nicht mit der For schleife versucht. Dass ich alle Faces durchgehe und später alle edges in eine region zusammenführe
Nein, ich denke nicht. Deine Schleife hätte in jedem Durchlauf ein neues Set erstellt. Du kannst im Coupling aber nur ein Set für die gekoppelte Region angeben. Wenn ich das richtig sehe, hast du dann auch gar nicht das verwendet, was in der Schleife generiert wird.
Zitat: wie sieht da der Ansatz aus?
Wie du dir die Kanten zusammensammelst ist erstmal egal. Ob mit einem oder mehreren findAt, BoundingBox oder sonst irgendwie. Um eine Kante auf Assembly-Level eindeutig zu identifizieren, musst du die Instanz haben und dann den index der Kante daran. Mit den Informationen kannst du beliebig viele davon zusammenführen und dann z.B. in ein Set stecken. Das Set kannst du dann im Coupling, etc. verwenden. Der folgende Code zeigt an einem einfachen Beispiel, wie man sowas macht. Hier sammle ich von einer Instanz alle Kanten zusammen, die einen ungeraden index haben. Warum auch immer... Code:
inst = a.instances['block-1']# quasi leere edgeliste initialisieren myedges = inst.edges[0:0] # edges mit ungeradem index zu edgeliste hinzufügen for xedge in inst.edges: edge_index = xedge.index if edge_index % 2 != 0: myedges += inst.edges[edge_index:edge_index+1] # Set mit edges erstellen a.Set(edges=myedges, name='set_edges')
Zitat: Verstehe, also muss ich meine Part Sets erstellen und im Anschluss meine Instance erstellen und alle vorherigen Sets aus dem Part gehen auch ins Assembly über
Du musst das nicht machen, es ist nur eine weitere Möglichkeit bestimmte Dinge zu tun. Du musst auch nicht die Sets vor der Instanz erstellen. Öffne im Baum einfach mal den Part- und Assembly-Container. Dann jeweils den Set-Container darin. Schau dir an was du da hast und erstelle dann im Part ein neues Set. Sobald die Aktion abgeschlossen ist, wirst du das Set auch auf Assembly-Level finden, allerdings mit dem Instanz-Namen als Prefix im Set-Namen. Wie du zu deinen benötigten Sets auf Assembly-Level kommst ist deine Entscheidung. Ob du nun bestehende Sets mit merge zusammenführst oder neue Sets auf Assembly-Level erstellst, ist am Ende egal. Mach das was für dich am besten funktioniert. [Diese Nachricht wurde von Mustaine am 03. Jan. 2024 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
anfänger321 Mitglied Student
Beiträge: 7 Registriert: 25.12.2023 Abaqus 2019
|
erstellt am: 06. Jan. 2024 15:27 <-- editieren / zitieren --> Unities abgeben:
Hi Mustaine, danke für deinen Ansatz und für das Beispiel. Ich habe es nun hinbekommen, dass er mir mein Coupling erstellt. Ich habe die Sets auf Part Level erstellt. Danach wie in deinem Beispiel die Sets zusammengeführt und die Sammlung zu einer region hinzugefügt. Code: #Coupling Reference Point mit Glasmitten obenrefPoints1=(idRF1, ) region1=a.Set(referencePoints=refPoints1, name='Loslager+Lastpunkt') edgesTop1 = p.edges.findAt((breite/2,hoehe,dglas[0]/2),) for i in range(0,len(dglas)): j=i*2 p = mdb.models[modelname].parts[partname] s = p.edges edgeCurr = s.getByBoundingBox(-1,hoehe-1,datumDicken[j]-dglas[i]/2-1,breite+1,hoehe+1,datumDicken[j]-dglas[i]/2+1) idx = edgeCurr[0].index p.Set(edges=s[idx:idx+1], name='slaveTop'+str(i+1)) inst = a.instances[modelname] combined_edgesTop = inst.edges[0:0] for i in range(0, len(dglas)): edge_set = inst.sets['slaveTop' + str(i + 1)] combined_edgesTop += edge_set.edges a.Set(edges=combined_edgesTop, name='Combined_slaveTop') region2=a.sets['Combined_slaveTop'] mdb.models[modelname].Coupling(name='Loslager+Last', controlPoint=region1, surface=region2, influenceRadius=WHOLE_SURFACE, couplingType=KINEMATIC, localCsys=None, u1=ON, u2=ON, u3=ON, ur1=ON, ur2=ON, ur3=ON) #Coupling Reference Point mit Glasmitten unten refPoints2=(idRF2, ) region1=a.Set(referencePoints=refPoints2, name='Festlager') edgesBottom1 = p.edges.findAt((breite/2,0,dglas[0]/2),) for i in range(0,len(dglas)): j=i*2 p = mdb.models[modelname].parts[partname] s = p.edges edgeCurr = s.getByBoundingBox(-1,-1,datumDicken[j]-dglas[i]/2-1,breite+1,1,datumDicken[j]-dglas[i]/2+1) idx = edgeCurr[0].index p.Set(edges=s[idx:idx+1], name='slaveBottom'+str(i+1)) inst = a.instances[modelname] combined_edgesBottom = inst.edges[0:0] for i in range(0, len(dglas)): edge_set = inst.sets['slaveBottom' + str(i + 1)] combined_edgesBottom += edge_set.edges a.Set(edges=combined_edgesBottom, name='Combined_slaveBottom') region2=a.sets['Combined_slaveBottom'] mdb.models[modelname].Coupling(name='Festlager', controlPoint=region1, surface=region2, influenceRadius=WHOLE_SURFACE, couplingType=KINEMATIC, localCsys=None, u1=ON, u2=ON, u3=ON, ur1=ON, ur2=ON, ur3=ON)
Geht vielleicht auch besser, aber es erfüllt für mich den Zweck. Danke Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mustaine Ehrenmitglied V.I.P. h.c.
Beiträge: 3585 Registriert: 04.08.2005 Abaqus
|
erstellt am: 07. Jan. 2024 13:06 <-- editieren / zitieren --> Unities abgeben: Nur für anfänger321
Schön dass du das Problem lösen konntest. Zwei kleine Anmerkungen: 1. Deine Instanz heißt wie dein Modell? Ungewöhnlich...
Code: inst = a.instances[modelname]
2. Das Zusammenführen von Sets kann man alternativ auch mit der eingebauten Funktion in A/CAE (und dessen Python Kommando) machen. Markieren mal im Baum mehrere Sets und mach dann mal einen Rechtsklick auf diese, dann wirst du die Option sehen.
[Diese Nachricht wurde von Mustaine am 07. Jan. 2024 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
anfänger321 Mitglied Student
Beiträge: 7 Registriert: 25.12.2023 Abaqus 2019
|
erstellt am: 08. Jan. 2024 19:39 <-- editieren / zitieren --> Unities abgeben:
Hallo Mustaine, vielleicht kann ich dich ja noch einmal stören und dich um Rat bitten. Der Code oben funktioniert für 3-fach Scheiben also wenn dglas=[10,10,10] Werte enthält. Nun wollte ich das für dglas=[10,10] ausprobieren und die Schleife funktioniert erneut wieder nicht. Der Fehler liegt in der Zeile edgeCurr. Also die Werte in der BoundingBox sind nicht richtig.
Code: #Coupling Reference Point mit Glasmitten obenrefPoints1=(idRF1, ) region1=a.Set(referencePoints=refPoints1, name='Loslager+Lastpunkt') edgesTop1 = p.edges.findAt((breite/2,hoehe,dglas[0]/2),) for i in range(0,len(dglas)): j=i*2 p = mdb.models[modelname].parts[partname] s = p.edges edgeCurr = s.getByBoundingBox(-1,hoehe-1,datumDicken[j]-dglas[i]/2-1,breite+1,hoehe+1,datumDicken[j]-dglas[i]/2+1) idx = edgeCurr[0].index p.Set(edges=s[idx:idx+1], name='slaveTop'+str(i+1)) inst = a.instances[partname] combined_edgesTop = inst.edges[0:0] for i in range(0, len(dglas)): edge_set = inst.sets['slaveTop' + str(i + 1)] combined_edgesTop += edge_set.edges a.Set(edges=combined_edgesTop, name='Combined_slaveTop') region2=a.sets['Combined_slaveTop'] mdb.models[modelname].Coupling(name='Loslager+Last', controlPoint=region1, surface=region2, influenceRadius=WHOLE_SURFACE, couplingType=KINEMATIC, localCsys=None, u1=ON, u2=ON, u3=ON, ur1=ON, ur2=ON, ur3=ON)
slaveTop1 entspricht der PartitionFace der zweiten Scheibe und darum erstellt er mir keine slaveTop2. Ich habe schon alles mögliche in die BoundingBox geschrieben. Das Problem ist, dass wenn ich den Code jetzt ändere, dann ist die Schleife wieder für 3-fach Scheiben nicht gültig. Ich habe auch das Skript angehangen. Weiter oben im Code erstelle ich datumplanes. Code:
# Erstellen der Datumsebenen relativ zu den Flächen mit Berücksichtigung der Dicken f = p.faces.findAt((delta,delta,0),) #2Scheiben und 3Scheiben (erstellt für 4 und 5 Scheiben die letzten 2 planes nicht) datumDicken = [] datumDicken.append(dglas[0])
for i in range(1, len(dglas)): if i % 2 != 0: datumDicken.append(datumDicken[-1] + dfolie[i - 1]) else: datumDicken.append(datumDicken[-1] + dglas[i - 1]) if len(dglas) % 2 != 0: datumDicken.append(datumDicken[-1] + dfolie[-1]) datumDicken.append(datumDicken[-1] + dglas[-1]) else: datumDicken.append(datumDicken[-1] + dfolie[-1]) for i in range(len(datumDicken)-1): p.DatumPlaneByOffset(plane=f, flip=SIDE2, offset=float(datumDicken[i]))
Hier erstellt er mir für 3-fach Scheiben 4 datumPlanes, was auch so richtig ist. Für 2-fach Scheiben erhalte ich 3 datumPlanes. Hiervon sind 2 an der richtigen Stelle, der dritte ist außerhalb meines Bauteils und wird nicht gezeichnet. Deswegen besteht mein datumDicken aus 3 Werten und ich glaube der Fehler beim Coupling resultiert auch daraus. Danke Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mustaine Ehrenmitglied V.I.P. h.c.
Beiträge: 3585 Registriert: 04.08.2005 Abaqus
|
erstellt am: 09. Jan. 2024 16:46 <-- editieren / zitieren --> Unities abgeben: Nur für anfänger321
|
anfänger321 Mitglied Student
Beiträge: 7 Registriert: 25.12.2023 Abaqus 2019
|
erstellt am: 13. Jan. 2024 14:24 <-- editieren / zitieren --> Unities abgeben:
Hey Mustaine, sorry für das Missverstädnis. Meine Absicht war auch nicht, dass du mein Skript durchgehst und mir alles korrigierst. Wie gesagt, etwas stimmt mit meinen datumPlanes nicht. Also die Erstellung der Reihenfolge der Folienschicht. In dem Fall sind es ja auch nur zwei for und if-schleifen. Alles andere baut dann auf diesen datumPlanes auf. Vielleicht ist da ja etwas offensichtliches, was ich einfach nicht sehen kann. Aber trotzdem Danke dir für deine Hilfe Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mustaine Ehrenmitglied V.I.P. h.c.
Beiträge: 3585 Registriert: 04.08.2005 Abaqus
|
erstellt am: 16. Jan. 2024 23:16 <-- editieren / zitieren --> Unities abgeben: Nur für anfänger321
Das ändert nichts an der Aufgabe. Ich müsste trotzdem bis zu der Problemstelle alles verstehen was vorher passiert. Das hieße auch die Bedeutung jeder Variable zu verstehen. Lass dir mit print oder dem Logging-Modul an wichtigen Stellen deine Variablen-Werte ausgeben und versuche damit nachzuvollziehen, was in deinem Skript und Modell passiert. A/CAE hat auch eine integrierte Entwicklungsumgebung, womit man z.B. Breakpoints setzen oder zeilenweise vorwärtsgehen kann. Es gibt auch eine Watchlist für Variablen. Siehe File->Abaqus PDE. Im Abaqus Scripting-Handbuch gibt es ein Kapitel dazu. Such einfach nach "PDE". Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|