Это один из тех периодически возникающих вопросов, которые на первый взгляд кажутся не такими уж простыми, но, если разобраться в принципах взаимодействия ANSYS Mechanical и ANSYS Mechanical APDL, все становится понятным. Этот вопрос был задан службе технической поддержки, и после небольшой переписки мы решили, что было бы неплохо поделиться этой информацией со всеми.
Прежде чем я опишу суть вопроса, предлагаю (если вам это необходимо) освежить в памяти тему о блоках команд в ANSYS Mechanical, она была всесторонне изложена в вебинаре: PADT_Webinar_Code_Snippets_2011_05_26.pdf
Основная задача заключается в следующем: допустим, вы используете блоки команд APDL, выполняющих разнообразные манипуляции над моделью или хранящих результаты каких-либо вычислений в переменных. Вы хотите сделать эти переменные доступными в менеджере переменных (Parameter Manager) или в модуле DesignXplorer. Если вы обратите внимание на свойства блока команд, то заметите, что там указаны только входные переменные: ARG1 - ARG9.
Этот пример простого макроса, выполняющего следующие действия:
- Выбор элементов, содержащихся в выборке END1.
- Подсчёт количества узлов (NMND), которые привязаны к элементам выборки END1.
- Запись значения полной приложенной нагрузки из переменной ARG1.
- Путем деления полной нагрузки на количество узлов вычисляется величина усилия, действующего на каждый узел.
- Полученное значение усилия прикладывается к каждому узлу.
- Заново выбираются все узлы.
Как узнать количество узлов, к которым приложена нагрузка, а также величину нагрузки, приходящейся на один узел – затруднительный вопрос. Ведь любой блок команд, добавленный в дерево построения модели выше этапа Solution, позволяет лишь вводить переменные.
Однако, блок команд, добавленный на этапе Solution, отличается от остальных: он позволяет возвращать переменные и добавлять их в менеджер переменных.
При создании блока команд в распоряжении пользователя, как обычно, будут входные переменные (ARG1-ARG9), а также пустая область с названием «Results».
Для получения переменных с результатами (Result Parameters) – хотя правильнее было бы назвать их выходными переменными (Output Parameters) – в блоке команд APDL необходимо создать переменную, имя которой начинается с префикса “my_”. При нажатии мышью вне окна текстового ввода, программа анализирует написанный код и, в случае обнаружения в тексте переменной с префиксом “my_”, заносит её во вкладку Results.
Заметим, по умолчанию выходной является переменная с префиксом “my_”, однако, пользователь может изменить этот префикс в ячейке “Output Search Prefix” в области определения блока команд (Definition).
Эти переменные будут выделены розовым цветом до проведения расчета модели и определения их значений. Чтобы иметь возможность использовать переменные в других модулях программы ANSYS, поставьте флажок в окошке перед именем переменной, а затем выполните расчет:
Теперь, если вы взглянете на страницу проекта (окно Workbench), то увидите там ячейку «Переменные» (Parameter Set), которая будет связана с проектом как входными, так и выходными связями.
Значения этих переменных можно посмотреть в менеджере переменных (Parameter Manager):
Описанное работает ввиду того простого факта, что ANSYS Mechanical, по сути, занимается лишь формированием большого командного файла, подающегося на вход ANSYS MAPDL. Этот файл содержит в себе все блоки команд, добавленные в дерево построения модели, и возвращает все переменные, отмеченные специальным префиксом в командах постпроцессинга, в ANSYS Mechanical.
Автор: Эрик Миллер
Источник