Hallo,
ich habe eine Frage bezüglich des Aufbaus eines Skripts bzw. der Klassen für Abaqus.
Ich analysiere ein Bauteil das aus zwei Einzelteilen zusammengesetzt ist. Dafür habe ich zwei Klassen angelegt, in denen jeweils die Einzelteil in Methoden erzeugt werden. Hier das Skript von einem der beiden Bauteile:
def gen_geometry(self):
# create part 1: Plate
#----------------------------------------------------------------------
# creating a constrained sketch object for the plate
cltPlateProfileSketch = self._model.ConstrainedSketch(name = self._name, sheetSize = 20)
# drawing a rectangle on the sketch plane
cltPlateProfileSketch.rectangle(point1 = (0.0, 0.0), point2 = (PLATE_WIDTH, PLATE_LENGTH))
# creating a Part object and placing it in the parts repository
cltPlatePart = self._model.Part(name = self._name, dimensionality =THREE_D, type = DEFORMABLE_BODY)
# creating a Feature object
cltPlatePart.BaseSolidExtrude(sketch = cltPlateProfileSketch, depth = FLOOR_HIGHT)
In der Assembly möchte ich dann das eine Bauteil (corePart) aus dem anderen (cltPlatePart) herausschneiden. Für diesen Vorgang das dazugehörige Skript:
def core_cutout(self):
# hier wird die assembly erzeugt
connAssembly = self._model.rootAssembly
inst_clt = connAssembly.Instance(name = self._name, part = cltPlatePart, dependent = ON)
inst_lvl = connAssembly.Instance(name = self._name, part = corePart, dependent = ON)
# Verschiebung des corePart
inst_lvl.translate(vector = (PLATE_WIDTH / 2 - (INNER_CORE_WIDTH / 2 + CUTOUT_WIDTH), 0, 0))
#Ausschneiden des corePart aus dem cltPlatePart
connAssembly.InstanceFromBooleanCut(name = 'Cutted Plate', instanceToBeCut = inst_clt,
cuttingInstances = (inst_lvl, ), originalInstances = DELETE)
Da die zwei Einzelteile cltPlatePart und corePart in den dazugehörigen Klassen definiert worden, erhalte ich folgenden Error:
"global name 'cltPlatePart' is not defined"
Noch als Zusatz: In einer außerhalb der Klassen erzeugten Funktion werden dann die in den Klassen definierten Methoden ausgeführt:
def compute_global_model(model):
# create clt plate
clt = cltPlate(model = model, name = "CLT-Plate", pos = (0, 0, 0))
clt.set_geom_params(PLATE_LENGTH, PLATE_WIDTH, FLOOR_HIGHT, LAYER_DEPTH, N_LAYERS)
clt.gen_geometry()
Nun meine Fragen....
Wie kann ich eine Funktionen außerhalb einer Klasse ausführen und dabei auf die in den Klassen definierten Objekte zugreifen? Oder ist der Aufbau an sich schon falsch/ungeeignet?
Ich hoffe ich habe das Problem ausführlich genug erklärt um es zu verstehen.
Sorry falls der Code hier nicht gescheit angezeigt wird und ich Englisch und Deutsch gemischt habe, hoffe das ist trotzdem alles verständlich.
Vielen Dank schon mal für eure Bemühungen!
Gruß Ferrago
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP