Как извлечь данные о нагрузке и смещении для всех шагов в конкретном наборе узлов / узлов с помощью сценариев Python ABAQUS (без использования лицензии)? - PullRequest
0 голосов
/ 11 ноября 2019

В ABAQUS я хочу извлечь значения нагрузок ['RF'] и смещения ['U'] ('полевые выходы') для всех шагов в определенном наборе узлов / узлов (давайте назовем узел, заданный как 'N100') с использованием сценариев Python.

Я уже делаю это с помощью сценария с объектами сеансов (генерируется из файла .rpy, созданного во время сеанса ABAQUS CAE). Командой, которую я использую для выполнения, является 'ABAQUS CAE NOGUI = SCRIPT.py'. Он использует лицензию так же, как и при использовании ABAQUS CAE.

Мое условие - я хочу извлечь 'поле вывода' результаты (загружает ['RF'] и смещает ['U')]) для всех шагов на узле установите 'N100' без использования лицензии . т. е. с использованием библиотеки 'odbAccess' .

Я нашел описание, относящееся к ней, в документации ABAQUS (http://dsk.ippt.pan.pl/docs/abaqus/v6.13/books/cmd/default.htm?startat=pt05ch09s05.html). Но я не могу найти решение, которое бы соответствовало моим потребностям. Сценарий, приведенный в документации ABAQUS, извлекает результаты нагрузки и смещения только на последнем шаге и , что тоже длявсе узлы в файле ODB. Я хочу извлечь результаты для всех времен шага (не только последнего) и определенного узла / узла. (lastFrame = odb.steps ['Step-1']. Frames[-1])

Сценарий, приведенный в документации ABAQUS, работает без использования каких-либо лицензий.

Может ли кто-нибудь подсказать мне то же самое?

1 Ответ

0 голосов
/ 13 ноября 2019

Следующее извлекает 'RF' и 'U' из всех узлов для всех кадров моделирования.

    part_instance = odb.rootAssembly.instances['PART-1-1']
    for key in keys:
    step = odb.steps[key]
    frameRepository = step.frames
    if len(frameRepository):
        for frame in frameRepository:
            print 'Id = %d, Time = %f\n'%(frame.frameId,frame.frameValue)
            fo = frame.fieldOutputs
            f1 = fo['U']
            f2 = fo['RF2']

Теперь вам просто нужно отфильтровать переменные f1 и f2 для конкретного интересующего вас узла. Простое выражение print, чтобы понять структуру f1 и f2, действительно может вам помочь.

...