Also meiner Erfahrung nach besteht die einzige Lösung ohne das Script groß überarbeiten zu müssen darin, dass du das Script bis zu diesem Punkt laufen lässt. Dann veränderst du du Partition in Abaqus manuell und schaust danach in die abaqus.py im temp-Ordner welche Nummern die edges, etc. nun haben. Dann baust du in dein Script eine while- oder if-Bedigung ein mit der du festlegst, dass so lange der Riegel drüber liegt die Code-Zeilen mit den bisherigen Nummern benutzen soll und ansonsten die neuen.
Ist zwar ne umständliche und wenig elegante Lösung sollte aber klappen.
Zudem zwei Tipps:
1. Entschlacke dein Script mal. Abaqus geht in der abaqus.py (ich denke da hast du die Befehle her) unter programmiertechnischen Gesichtspunkten nicht sehr schön vor. Z.b. Dieses e = a.edges, c=a.cells, etc. Wenn du diese Stellen auflöst wird dein Script deutlich kürzer (3000 Zeilen erscheint mir anhand der Skizze SEHR viel).
2. Versuch bei zukünftigen Script die Funktion "FindAt" zu verwenden. Damit kann man alles (zellen, flächen, kanten, etc.) an bestimmten geometrischen Punkten finden. Das ist zwar in der Programmierung etwas umständlicher als einfach die Befehle aus abaqus.py zu kopieren hat aber den Vorteil, dass du Sachen wir Partitionen nach Lust und Laune ändern kannst, ohne dass du Probleme mit den z.b. Kanten-Nummern kriegst.
Beispiel:
Instance.faces.findAt(((150.0, 150.0, 0.0),), ((62.5, 150.0, 0.0),))
Damit würdest du alle Flächen nehmen die an den definierten Koordinaten liegen.
Das abaqus.py-Äquivalent dafür wäre:
a = mdb.models['Model-1'].rootAssembly
f1 = a.instances['Halbschale'].faces
faces1 = f1.getSequenceFromMask(mask=('[#0 #100 ]', ), )
Mfg
Timm
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP