Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SIMULIA/ABAQUS
  Feature creation Failed bei Erstellung eines Sets über Python-Skript

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
Autor Thema:  Feature creation Failed bei Erstellung eines Sets über Python-Skript (768 / mal gelesen)
Benny13198
Mitglied
Student

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

Beiträge: 1
Registriert: 01.01.2024

erstellt am: 01. Jan. 2024 16:25    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, ich schreibe derzeit meine Masterarbeit und führe dabei eine Parameterstudie durch.
Ich habe nun ein Python-Skript geschrieben, welches die Parameter aus einer CSV-Datei einliest und dann in einer Schleife die Modelle erstellt. Ich habe dabei in den Modellen im Assembly immer eine variierende Anzahl an Instanzen, welche aber in einem Set "Embedded" zusammengefasst werden sollen. Beim Ausführen des Skripts erhalte ich jedoch immer die Fehlermeldung "Feature creation failed!". Wenn ich das Set jedoch manuell über den Viewport erstelle, ist dies kein Problem. Das ist mein verwendeter Code:
--------------------------------------------------------------------------------------------
        a = mdb.models[Name + '_Buckle'].rootAssembly
        # Liste zur Speicherung der Zellensequenzen
        cells_list = []
        def add_cells_by_prefix(prefix, mask):
            for instance_name in a.instances.keys():
                if instance_name.startswith(prefix):
                    try:
                        c = a.instances[instance_name].cells
                        cells = c.getSequenceFromMask(mask=(mask, ), )
                        cells_list.extend(cells)
                        print("Zu {} hinzugefügt: {} Zellen".format(instance_name, len(cells)))
                    except KeyError:
                        print("Instanz {} nicht gefunden.".format(instance_name))
        # Maskierungen für jede Instanzgruppe
        mask_KBD = '[#fffffff ]'
        mask_Bue = '[#ffffffff ]'
        mask_Laengs = '[#f ]'
        mask_Steck = '[#fffff ]'
        # Hinzufügen von Zellen basierend auf dem Präfix
        add_cells_by_prefix('KBD', mask_KBD)
        add_cells_by_prefix('Bue', mask_Bue)
        add_cells_by_prefix('Laengs', mask_Laengs)
        add_cells_by_prefix('Steck', mask_Steck)
        # Erstellen des Sets "Embedded"
        if cells_list:
            print("Anzahl der Zellen in der Liste: {}".format(len(cells_list)))
            a.Set(cells=cells_list, name='Embedded')
        else:
            print("Keine Zellen zum Erstellen des Sets vorhanden.")
--------------------------------------------------------------------------------------------
In der Ausgabe in Abaqus wird auch geschrieben, dass sich z.B. 3504 Zellen in der Liste befinden. Dies ist auch die richtige Anzahl. Die Masken habe ich auch mehrfach überprüft und diese stimmen. Ich habe schon recht viel ausprobiert und bin so langsam am verzweifeln. Ich würde mich sehr freuen, wenn mir jemand einen guten Tipp geben kann.
Viele Grüße,
Benny

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

Mustaine
Ehrenmitglied V.I.P. h.c.



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

Beiträge: 3574
Registriert: 04.08.2005

Abaqus

erstellt am: 02. Jan. 2024 10:12    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 Benny13198 10 Unities + Antwort hilfreich

Ohne auf deinen Code direkt einzugehen...

Du solltest beim Scripting nicht mit den SequenceOfMask-Befehlen arbeiten. Ändere die Reporting-Einstellung in A/CAE, so dass du index-basierte Ausgaben bekommst und verwende diese dann.

Du kannst das mit diesen beiden Kommandos umstellen:
session.journalOptions.replayGeometry
session.journalOptions.setValues(replayGeometry=INDEX)

Wenn du das dauerhaft haben möchtest, kannst du das in eine Abaqus-Umgebungsvariable eintragen:

Code:

def onCaeStartup():
    session.journalOptions.replayGeometry
    session.journalOptions.setValues(replayGeometry=INDEX)

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