Как создать Abaqus RSG GUI Builder, который показывает свойства материала - PullRequest
0 голосов
/ 13 марта 2019

Я хочу создать графический интерфейс RSG, который может показывать свойство материала. Следующий код может сделать такую ​​вещь.

from odbAccess import openOdb
odb_file_path=r'your_path\file.odb'
odb = openOdb(odb_file_path)
instance = odb.rootAssembly.instances['PART-1-1']
material_name = instance.elements[0].sectionCategory.name[8:-2]
density=odb.materials[material_name].density.table[0][0]) #density
odb.materials[material_name].userMaterial  #user material parameters

Я хотел бы создать плагин для этого кода, так как мне нужно много его использовать. Но мне трудно понять значения полей в «Combo Box». enter image description here

Мне было интересно, в чем разница между этими двумя «ключевыми словами» и как мне достичь своей цели (показать свойства материала с действительно простым графическим интерфейсом)?

#################### update

Я использую простую функцию для проверки «поля со списком». Я не ожидаю, что эта функция покажет свойство материала, но надеюсь, что ошибок не будет ...

def show_material(material):
    print material 

1 Ответ

1 голос
/ 20 марта 2019

Ваша проблема - просто неправильное понимание синтаксиса Python.

Вот пример вашего случая: enter image description here

Ядро определено так: enter image description here

, если вы выделите заголовок в дереве графического интерфейса, вы можете выбрать Показать диалог в тестовом режиме .Затем, когда вы нажимаете OK на вашем плагине, вы видите это сообщение:

enter image description here

это важно, так как показывает, какие ключевые слова должныбыть принятым в вашу функцию!Вы видите, что я уже определил свою функцию ядра для приема материалов и ключей , поэтому никаких дальнейших действий не требуется, и я могу проверить свой плагин, отключив Показать диалог в тестережим .

enter image description here

, как вы можете видеть на рисунке выше, плагин работает.

Что следует отметить:

  • ваша функция должна принимать все ключевые слова, которые вы ей передаете

  • имя вашей функции не должно совпадать с любым из ваших ключевых слов

  • имя вашего модуля должно быть уникальным и никогда не использоваться в других ядрах

...