Использование python для создания ограничений в abaqus

Привет всем, я пытаюсь создать модель балок и ферм в abaqus смоделировать эксперимент.

Поскольку у меня около 4000 элементарных ячеек, я использую скрипт Python для этого.

В этот момент я застрял, пытаясь ограничить узлы. Мне нужно использовать связь для ограничения узлов из разных лучей, которые находятся в одной и той же координате.

Я думал о том, чтобы создать 2 набора узлов для каждой координаты и затем ввести их в команду связи. но до сих пор мне это не удавалось.

myNodes = [] 

allNodes = mdb.models['Bias extension'].rootAssembly.nodes

for i in range (0, 5):
    for j in range (0, 2):
        x = j * 4.41941730
        y = i * 4.41941730
        delta = 1.0e-2
        xmin, ymin, zmin = x-delta, y-delta, 0-delta
        xmax, ymax, zmax = x+delta, y+delta, 0+delta
        myNodes[i] [j] = allNodes.getByBoundingBox(xmin, ymin, zmin, xmax, ymax, zmax)

Я пытаюсь сначала использовать этот код, чтобы мои узлы могли делить их, но он не работает

Большое спасибо за помощь

1 ответ

Когда ваш код входит в цикл for, myNodes это список длины 0, Затем вы пытаетесь выделить список узлов для его i а также j индексы, которых еще нет. Вы должны получить исходящую ошибку.

Чтобы ваш код работал, вам нужно использовать метод list.append(): myNodes.append(allNodes.getByBoundingBox(xmin, ymin, zmin, xmax, ymax, zmax))

Это сохранит выбранные узлы в одномерном списке. Но похоже, что вы хотели бы хранить их в двухмерной матрице. Есть два способа добиться этого:

  1. Двумерный список:
    myNodes = []
    allNodes = mdb.models['Bias extension'].rootAssembly.nodes
    for i in range (0, 5): myNodes.append([]) for j in range (0, 2): x = j * 4.41941730 y = i * 4.41941730 delta = 1.0e-2 xmin, ymin, zmin = x-delta, y-delta, 0-delta xmax, ymax, zmax = x+delta, y+delta, 0+delta myNodes.append(allNodes.getByBoundingBox(xmin, ymin, zmin, xmax, ymax, zmax))

    Ваш список вывода будет выглядеть так:
    >>> myNodes [[listNodes00,listNodes01],[listNodes10,listNodes11],[listNodes20,listNodes21],[listNodes30,listNodes31],[listNodes40,listNodes41]]
    >>> myNodes[3][1] listNodes31
  2. Библиотека numPy и ее структура массива.
Другие вопросы по тегам