Использование 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))
Это сохранит выбранные узлы в одномерном списке. Но похоже, что вы хотели бы хранить их в двухмерной матрице. Есть два способа добиться этого:
- Двумерный список:
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
- Библиотека numPy и ее структура массива.