Как обновить узловое значение файла Abaqus odb с помощью скрипта Python?
Я хочу обновить узловые значения существующего файла Abaqus odb, используя скрипт Python. У меня уже есть новые узловые значения, но я не знаю, как поместить их в файл odb вместо предыдущих данных.
1 ответ
Я могу ошибаться по этому поводу, но нет способа вызвать какой-либо метод для замены существующих значений в odb. Однако вы можете создать новый шаг и фрейм (или просто фрейм в существующем шаге), а затем создать новый объект вывода поля с новыми значениями.
Если вы можете жить с этим подходом, проверьте документацию для FieldOutput
объект. Вы, вероятно, сделали бы что-то вроде этого:
odb = session.odbs['yourOdbName']
instance = odb.rootAssembly.instances['nameOfYourInstance']
field_output = odb.steps['stepName'].frames[frameId].FieldOutput(
name='DefineTheName', description='WhatItRepresents',
type=SCALAR # or whatever other type you need
)
field.addData(
position=NODAL, instance=instance, labels=your_node_labels,
data=your_data
)
После того, как вы закончите с этим или, что еще лучше, попробуйте вызвать следующее:
odb = session.odbs['yourOdbName']
del odb.steps['stepWithResults'].frames[frameId].fieldOutputs['variableName']
Это дикое предположение, но это может сработать. Если это так, вы можете просто удалить существующий вывод поля, создать новый и затем сохранить odb.
Что бы вы ни выбрали, не открывайте odb в режиме только для чтения, сохраняйте odb и затем открывайте его, потому что, вероятно, ничего не будет видно в текущем сеансе.