Python-Skript zur automatischen Erstellung von LOADS / SIMULIA/ABAQUS
Mono Seb 23. Dez. 2014, 13:19

Guten Tag zusammen,

ich bin gerade ein bisschen ratlos und frage hier mal nach Rat/ Denkanstößen. Es geht um folgendes: Ich setze gerade eine transiente FEM-Rechnung in ABAQUS auf. Nun muss ich die PRESSURE LOADs definieren. Das Problem: ich möchte das via Python-Skript erledigen, da ich manuell 155 Surfaces jeweils einen Druck zuweisen muss und das Ganze dann auch noch für 5 Steps, macht also schlappe 775 LOADs, welche manuell zu setzen sind... dies ist mir aber zu blöd und kann ja prinzipiell wunderbar automatisiert werden 

Übrigens: Ich bin Python-Neuling.

Meine Idee:

ein Dictionary bauen, mit einer "Spalte" SURFACES, der Spalte, die den Namen der Belastung enthält und der Magnitude.

Dafür möchte ich dann einfach eine FOR-Schleife generieren, welche mir dann 155 LOADs für meine 155 verschiedenen Flächen erzeugt. Leider stehe ich gerade komplett auf dem Schlauch, da ich irgendwie keine Ahnung habe, wie ich korrekt auf die Spalteneinträge im Dictionary zugreifen kann. 

Hier noch ein Code-Schnipsel, welcher noch nicht funktioniert:

# -*- coding: mbcs -*-
# Do not delete the following import lines
from abaqus import *
from abaqusConstants import *
import __main__

# deklaration

myLOAD_P1={}
myLOAD_P1['SURF']=['HP STAGE 01 1',
'HP STAGE 01 2',
'HP STAGE 01 3',
'HP STAGE 01 4']

myLOAD['name']=['P1 HP STAGE 01 1',
'P1 HP STAGE 01 2',
'P1 HP STAGE 01 3',
'P1 HP STAGE 01 4'
]

myLOAD['magnitude']=[3800000,
3800000,
3800000,
3610000]

import section
import regionToolset
import displayGroupMdbToolset as dgm
import part
import material
import assembly
import step
import interaction
import load
import mesh
import optimization
import job
import sketch
import visualization
import xyPlot
import displayGroupOdbToolset as dgo
import connectorBehavior
       
a = mdb.models['Model-1'].rootAssembly
for SURF in myLOAD.items():
region = a.instances['INNER_CASING-1'].surfaces[myLOAD.items()]
mdb.models['Model-1'].Pressure(name='P1_Load-1', createStepName='Step-1',
region=region, distributionType=UNIFORM, field='', magnitude=3800000.0,
        amplitude='AMP-ALPHA P0->P1')

Pam Crash 24. Dez. 2014, 11:26

Guude

Der python -Weg erscheint mir übertrieben aufwendig. Dein Dictionary sieht doch schon so aus wie das Abaqus Inputfile Format. Du könntest den Text also direkt manuell via editor ins Inputdeck einbauen oder alternativ über den abaqus cae preprozessor in dein Modell importieren.

Callahan 29. Dez. 2014, 06:24

Ich verschiebe mal in den Abaqus-Bereich. Hier gehts weiter.