на чем пишут скрипты для ansys
Программирование в Ansys. Утилиты, дополнения и пр.
расчеты МКЭ и CFD. ктн
В WB далеко не все удобно сделано. И главное далеко не все реализовано, что есть в классике. Вот например, когда WB сможет решить проблему поэтапности возведения 250 метровой плотине с ж/б экраном, без необходимости 150 раз нажимать рестарт расчета, то перейду наверное.
P.S. Вы серьезно думаете, что я не изучив WB и не рассмотрев тенденции его развития начал бы заниматься таким большим делом?
давно занимаюсь макросами. можно и обменяться опытом. пишите в личку. меня правда больше интересуют нелинейности, а не подготовка данных. |
Вот так выглядит работа конвертера AutoCAD>Ansys:
Далее экспортируем из AutoCAD в Ansys. На выходе:
Выложить точно нет, а вот передать для проверки и личного пользования возможно смогу позднее. Кстати тестируется на AutoCAD 2008, 2011 и Ansys 12.0, 12.1, 13.0. Но, работать точно будет и на более ранних версиях обоих програмных продуктов.
Продолжение.
Граневое армирование. Методика RNF2FACE. Расчет по СНиП 2.06.08-87
Исходная геометрия:
Геометрическая модель. Набор объемных тел плиты. Набор поверхностей нижней грани армирования. Набор поверхностей верхней грани армирования.
На каждой грани армирования создается сетка конечных элементов Surf154 не связанная общей КЭ сеткой.
Сетка КЭ плиты, сетка КЭ нижнего армирования, сетка КЭ верхнего армирования:
Автоматически находится толщины соответствующие каждому из конечных элементов этой сетки. Это информация сохраняется и будет использована, для определения усилий и армирования. На снимках обращу внимание на свойства конструктивных элементов, там уже указаны используемые материалы, настройки создания сетки КЭ, тип КЭ и др.
А вот код в макрос для расчета армирования. Обратите внимание на его лаконичность:
Новые возможности ANSYS Mechanical 2021R1 часть 4. Meshing и скриптинг в Mechanical
Вашему вниманию предлагается обзорная статья по новым возможностям Ansys Meshing и Ansys Mechanical в части работы со скриптами для релиза Ansys 2021R1.
Meshing. Функция Batch Connections.
Первое нововведение относится к логике работы функции Batch Connections, предназначенной для построения конформной сетки для балочно оболочечных моделей не связанных общей топологией.
Это означает, что начиная с версии 2021R1 активация опции Mesh Based Connections не приведет к соединению для всех тел линий и оболочек в модели на уровне сетки.
В предыдущих версиях требовалось отделять твердые тела от оболочек и балок в сборке, чтобы использовать опцию Mesh Based Connections. Это ограничение убрано в версии 2021 R1 и опция Mesh Based Connections теперь доступна для сборок, содержащих твердотельные тела. Однако, опция Mesh Based Connections по-прежнему создает конформную сетку только для оболочек и балок.
Рисунок 2. Пример использования элемента Connect, для ограничения области действия опции Mesh Based Connections
В версии 2021R1 для функции восстановления геометрии Repair Topology добавлены две новые опции: Repair Short Edges и Fill Hole. Эта функция играет важную роль в исправлении мелких особенностей геометрии на уровне сетки, тем не менее, работает только с оболочечными телами при активной опции Mesh Based Connections.
Рисунок 3. Исправление геометрии на уровне сетки. Пример работы опции Fill Hole.
Рисунок 4. Исправление геометрии на уровне сетки. Пример работы опции Repair Short Edges.
Что касается улучшение связанных с построением сварных швов на уровне сетки, то появилась возможность указать направление построения катета сварного шва. Доступно 3 опции: Normal, Reversed и Both.
Рисунок 5. Пример построения сварного шва на уровне сетки.
Также допускается задавать число слоев сетки (не более 3) смещенного слоя (Offset layer) для всех типов сварных швов.
Рисунок 6. Сварной шов с 1, 2 и 3 слоями сетки.
Появилась возможность записи и чтения управляющего файла в формате csv для рабочего листа (worksheet), чтобы упростить обработку большого количества сварных швов.
Рисунок 7. Пример экспорта рабочего листа в csv файл.
Также в версии 2021R1 появилась возможность замораживать сетку (Freeze) для выбранной детали. После замораживания сетку нельзя будет изменить даже обновив геометрию детали.
Рассмотрим ряд важных особенностей, которые необходимо помнить при использовании этой функции:
Рисунок 8. Пример использования функции Freeze.
Скриптинг и автоматизация в Mechanical.
Существовавшая до этого момента в бета-версии возможность записи макросов стала доступна в релизе 2021R1. Теперь на панели инструментов Mechanical Scripting появилась кнопка Start recording, которая позволяет автоматически формировать скрипты на основе ваших действий в интерфейсе Mechanical.
Рисунок 9. Панель инструментов Mechanical Scripting
С помощью этого инструмента можно создать скрипты, управляющие параметрами контактов, нагрузок и объектов постпроцессора, а также настройками отображения и управления видами.
Поддерживается запись таких действий, как: генерация сетки (Generate Mesh), создание копии (Duplicate), создание новых объектов (Contacts, Joints, Beams. ).
Рисунок 10. Пример записанного скрипта для операций Generate Mesh и Duplicate.
Рисунок 11. Пример записанного скрипта для операций создания шарнира.
Могут быть записаны действия связанные с постобработкой и графикой, а также действия, связанные с настройками анимации, управлением видом камеры, экспортом изображений и работы с секущими плоскостями.
Рисунок 12. Настройки записи скрипта.
Рисунок 13. Пример записанного скрипта для управления графикой.
Скрипт, управляющий настройками решателя, например, изменением параметров, зависящих от шага, записываются следующим образом:
Рисунок 14. Пример записанного скрипта с настройками решателя.
Управление параметрами решателя, зависящими от шага, относящимися к Step Controls, Nonlinear Controls и Output Controls, может осуществляться следующим образом:
Рисунок 15. Пример записанного скрипта с настройками решателя.
В режиме отладки скриптов стали доступны следующие функции:
Рисунок 16. Панель инструментов Mechanical Scripting в режиме отладки.
Интеграция программы на C# с расчетным ядром ANSYS 11
Проблемы интеграции своих программ с чужими все более широко охватывают область разработки программного обеспечения. Многие программисты считают, что нужно писать свое, интегрироваться с чужими разработками это плохо, причем не учитывают размеры команд разработчиков, их опыт и целесообразность. Да и в течении года-два реализовать ту же самую систему расчета методом конечных элементов хоть и можно, но высокого качества она не будет. Разве можно за пару лет повторить путь развития проекта, который развивался 10–20 лет? Естественно нельзя и часто нецелесообразно.
Никто ведь не спорит, что в России самыми популярными программными средствами являются ANSYS, ABAQUS, SCAD, LIRA, PLAXIS и т.д. И какова вероятность занять свою нишу в этом уже давно поделенном участке рынка? Да и мало кто захочет переучиваться под новую программу. А вот проблемы интеграции своих программ с мощными расчетными системами и перенос результатов из одной в другую задача намного более востребованная. Мы имеем мощные вычислительные пакеты, на разработку и отладку которых ушло много лет, имеем некую задачу, реализовать которую в одной вычислительной системе подчас весьма сложно, или отсутствуют необходимые нам возможности, которые мы можем сами реализовать.
Этой задачей я занялся при необходимости выполнить параметрическую оптимизацию моделей материалов, для соответствия результатов моделирования группы реальных испытаний с их расчетными моделями. Это еще усугубляется тем, что каждый программный продукт считает по своему и результаты расчетов в ANSYS не будут идентичными расчету в ABAQUS при одинаковых параметрах модели. Это зависит от конкретной реализации расчетов, типов конечных элементов и даже расположения узлов сетки. В итоге инженер вводит параметры материалов, не зная, на сколько точно они соответствуют реальности. Причем вариативность оптимальных параметров может достигать 70% от результатов испытаний, тем более что обработка испытаний выполняется в рамках одной, максимум двух условий прочности, зачастую самых простых, а для сложных моделей не всегда даже известно как определить требуемые параметры, особенно когда их предлагают задать исходя из опыта в каком либо диапазоне.
Именно для решения этой проблемы и была поставлена задача интегрировать программу с расчетным ядром ANSYS. Задача интеграции была успешно решена, хотя и не без проблем. Причем главной проблемой оказалось полное отсутствие документации в свободном доступе, так что я думаю информация по реализации интеграции будет весьма полезна тем, у кого возникли такие же проблемы, как и у меня.
Механизм интеграции
С началом интеграции всех программных продуктов компании ANSYS под единую среду ANSYS Workbench возникла возможность интегрировать свои программы непосредственно с этой средой. Сама архитектура ANSYS Workbench построена на использовании Java и VB скриптов, посредством которых и происходит вызов тех или иных модулей ANSYS, которые называются апплетами (Applets).
Самым первым вариантом, который приходит на ум любому разработчику, что достаточно вызывать из программы написанные ранее или сгенерированные скрипты на Java-Script. Однако такой путь содержит один достаточно серьезный изъян: каждый раз при вызове скрипта необходимо будет заново открывать Workbench, инициализировать апплет ANSYS и только после этого отсылать ядру команды для расчета. Это видно из скрипта, который расположен в C:\Program Files\ANSYS Inc\v110\AISOL\SDK\samples\JPDL\Demo.js. Текст скрипта приведен ниже:
oWB = new ActiveXObject ( «AnsysWB.WB.90» ) ;
oWB. StartApplet = «AAOApplet» ;
oWB. Run ( ) ;
oWB. Title = «ANSYS Workbench» ;
Если генерировать программно скрипты и их запускать, то это будет очень неудобно, т.к. сам скрипт будет выполняться внешним обработчиком, что существенно усложнит его отладку. Да и генерировать скрипт, который отвечает за полный цикл работы очень неудобно.
Главной проблемой было получение дескриптора на среду WorkBench и его сохранение. С этой точки зрения наиболее интересной является часть, отвечающая за загрузку среды Workbench:
oWB = new ActiveXObject ( «AnsysWB.WB.90» ) ;
oWB. StartApplet = «AAOApplet» ;
oWB. Run ( ) ;
oWB. Title = «ANSYS Workbench» ;
При изучении этого и других скриптов у меня возник вопрос: если это может Java-Script, то почему не может C#? И оказалось, что вполне может. При установке ANSYS MS Visual Studio сама находит ссылки на все библиотеки ANSYS, но они, по крайней мере в 11 версии, сильно «урезанные“. Но среди них нашлась библиотека, которая как раз отвечала за программную работу со средой Workbench: AnsysWB, которая подключается в виде пространства имен ANSYSWBLib.
Для запуска ANSYS оказалось достаточно написать следующий код:
Итак, этот код позволяет запустить ANSYS, причем в качестве стартового апплета указан непосредственно апплет классического ANSYS, который и будет запущен. Но далее нам нужно организовать передачу управляющих команд ему, и вот тут возникли сложности. В Java-Script это реализуется следующей строчкой
Где App — ссылка на дескриптор модуля AAOApplet. Она хранится в свойстве класса
Но в 11 версии ANSYS в подключаемых библиотеках я не нашел интерфейса для работы с апплетом ANSYS. К счастью в NET FrameWork есть такая библиотека, как Microsoft.JScript, которая позволяет прямо в памяти компилировать скрипты JScript и исполнять их, причем можно реализовать из C# вызов необходимой функции.
Для этой цели я решил написать свой класс, который бы реализовывал все необходимые возможности, для работы с ANSYS/ Код класса представлен ниже.
class WBCommand
<
ANSYSWBLib. WBClass wb ;
public WBCommand ( ANSYSWBLib. WBClass WB )
<
wb = WB ;
string code = @»function closure()
<
return function (App, Command)
<
return App.Script.ans_sendcommand(Command);
>
>
public void SetWorkingDirectory ( string WorkingDirectory )
<
SendCommand ( «/CWD, » + WorkingDirectory ) ;
>
>
При вызове конструктора моего класса происходит формирование вызываемой процедуры на JScript и сохранение ее точки входа:
string code = @»function closure()
<
return function (App, Command)
<
return App.Script.ans_sendcommand(Command);
>
>
Для вызова ее был реализован метод:
В качестве входного параметра которому необходима текстовая команда, а при вызове JSCript функции дополнительно передается ссылка на апплет, которая была получена в конструкторе и сохранена в переменную aao.
Теперь вызывая метод SendCommand можно будет передавать ANSYS команды на языке APDL из нашего внешнего приложения, выполняя все необходимые действия. Этот метод эмулирует ввод команд непосредственно в командную строку ANSYS, но на многие команды ведь необходимо подтверждение. Для того, что бы избежать запросов на подтверждение действий достаточно не вставлять команды по одной, а записать их в APDL файл и вызвать команду SendCommand («/inp, f, apdl»). В этом случае ANSYS не будет требовать подтверждения на выполнение той или иной операции.
Работу с новыми версиями ANSYS я не проверял, так что возможно сейчас уже можно полностью отказаться от использования JS, но если необходима совместимость с 11 версией, то иного способа интегрировать свою программу я не нашел.
20 APDL команд которые следует знать каждому пользователю ANSYS Mechanical
Одна из сильнейших сторон в ANSYS Mechanical – это создаваемый входной файл, который посылается в ANSYS Mechanical APDL (MAPDL) на решение. И это действительно замечательно потому, что вы, как пользователь, имеете полный доступ ко всем глубинам и всем возможностям классического ANSYS. MAPDL – это хорошая старомодная программа, способная считывать команды и последовательно их исполнять. Так что единственное, что вам нужно сделать, чтобы добраться до любой опции – это просто ввести нужные команды.
Для множества пользователей со стажем это не является проблемой потому, что они «выросли» на текстовых командах. Однако у новых пользователей, как правило, возникают проблемы при желании ощутить всю мощь APDL (ANSYS Parametric Design Language) т.к. добраться до всех расширенных возможностей нелегко.
Порой, при оказании помощи пользователям или проведении обучения, нужно рассказать, как, например, изменить тип конечного элемента (Mechanical по умолчанию использует наиболее общую формулировку, но у пользователя есть возможность использовать и другие) и иногда попадаются люди, которые признаются, что не только не работали с командами APDL, но и никогда их не встречали.
Таким образом, чтобы помочь пользователям ANSYS Mechanical ступить на эту дорогу любви к APDL командам, мы выпустили список 20 APDL команд, которые следует знать каждому. Правда, по факту их тут больше, чем 20 потому, что некоторые из них мы объединили в группы. Здесь не будет приведено много подробностей по использованию каждой из них, т.к. в APDL help все превосходно расписано.
APDL был разработан еще во времена перфокарт. Он был гораздо проще других программ в использовании, поскольку вводимые команды не требовалось раскидывать по столбцам. Вместо этого аргументы в командах разделяются запятыми. Поэтому, при задании узла, вместо вот этого:
345 12.456 17.4567 0.0034
(обратите внимание, что расположение запятой имеет решающее значение) нужно написать строку:
По тем временам это был большой шаг вперед. Главное, что вам нужно знать об APDL командах – это то, что они начинаются с ключевого слова и далее продолжаются аргументами, назначение каждого из которых подробно расписано в разделе ANSYS help/Command Reference. Например, по команде для создания узла там написано следующее:
Рис.1 Описание команды N в ANSYS help.
Документация последовательная и вы довольно быстро разберетесь с нужными опциями для вашей задачи. Принцип компоновки и изложения этих статей также объясняется в help: // Command Reference // 3. Command Dictionary.
Другой ключевой момент в командах MAPDL – это автоматическое присвоение большинству созданных вами объектов (кроме нагрузок и граничных условий) ID номера. К объектам нужно обращаться по этому ID номеру. Это ключевое понятие зачастую неизвестно людям, «выросшим» только на GUI’s. Таким образом, если вы захотите создать систему координат и использовать ее в последствии, то вам необходимо присвоить ей ID и далее на него ссылаться.
Если вы захотите посмотреть на все команды APDL, которые записывает ANSYS Mechanical, то просто выберите ветвь setup и далее Tools-> Write Input File. Просмотреть его можно в любом текстовом редакторе.
Перед тем как мы перейдем непосредственно к списку команд, обозначу последнее важное замечание: старый интерфейс GUI для MAPDL можно использовать для изменения и создания моделей так же, как и ANSYS Mechanical. Любое действие, которое вы производите в старом интерфейсе GUI конвертируется в команду и сохраняется в лог файле с названием проекта (например, jobname.log). Иногда имеет смысл сначала провести необходимые операции там, а потом скопировать получившиеся команды из log файла.
И еще одно замечание: на данный момент эти команды необходимы, но с каждым релизом все больше и больше возможностей решателя переносится в интерфейс ANSYS Mechanical и все меньше требуется APDL скриптов. Так что всякий раз перед написанием скрипта сначала убедитесь, что интерфейс ANSYS Mechanical этого пока не умеет.
Восклицательный знак является комментарием в APDL. Любой текст справа от него игнорируется программой. Регулярно используйте эту команду и оставляйте частые подробные комментарии, чтобы другие люди и вы сами всегда могли понять, что именно в вашем файле происходит.
2. /PREP7 – /SOLU – /POST1 – FINISH
Программа MAPDL состоит из совокупности аж 10 процессоров (было больше, но они не были задокументированы). Отдельные команды работают только в нескольких процессорах, а большинство – только в одном из них. Если вы используете команду для препроцессора в постпроцессоре, то обязательно получите ошибку.
После создания командного объекта в ANSYS Mechanical, он может быть реализован в препроцессоре, настройках решателя (Solution processor) или в постпроцессоре, в зависимости от того, в какой ветви дерева проекта был создан. Если есть необходимость отправить команду в другой процессор, то нужно просто ввести соответствующую команду. ГЛАВНОЕ, НЕ ЗАБУДЬТЕ ПЕРЕЙТИ ОБРАТНО К ИСХОДНОМУ ПРОЦЕССОРУ после записи нужных команд.
/PREP7 – перейти к препроцессору. Здесь можно изменять формулировки элементов, модель материала и любым образом менять сетку конечных элементов.
/SOLU – перейти к настройкам решателя (Solution Processor). Чаще всего вы будете начинать отсюда, так что довольно часто нужно использовать эту команду для того, чтобы перейти обратно к исходному разделу после задания команд в /PREP7. Здесь изменяются нагрузки, граничные условия, и настройки расчета.
/POST1 – перейти к постпроцессору. Здесь можно поиграть с результатами, построить собственные графики, и использовать иные возможности APDL для обработки результатов.
FINISH – перейти к самому началу. Сюда нужно заходить если вы собираетесь работать с именами файлов.
3. TYPE – MAT – REAL – SECNUM
Вообще, вам действительно нужно знать эти команды, только если вы собираетесь писать ваши собственные элементы… но кое-что про них должен знать каждый, поскольку назначение атрибутов элементам (element attributes) имеет фундаментальное значение для работы в APDL … Так что это имеет смысл прочитать даже если вы не собираетесь писать ваши собственные элементы.
К каждому элементу в вашей модели назначаются определяющие его свойства. Когда вы определяете элемент, вместо указания всех его свойств в каждом случае, вы создаете определения и даете им номера, а затем присваиваете их к каждому элементу. Простейший пример – это свойства материала. Вы определяете набор свойств материала, присваиваете им номер, а затем присваиваете этот номер ко всем элементам в вашей модели, которые в соответствии с этими свойствами должны работать.
И вы не указываете ID при создании элементов, это был бы долгий и полный боли процесс. Вместо этого вы указываете ID для каждого типа свойств “активным” и каждому вновь созданному элементу будет назначен активный ID.
Сами команды не нуждаются в пояснениях: Type устанавливает тип элемента, MAT задает ID материала, REAL задает номер реальных констант, и SECNUM задает номер активного сечения.
Таким образом, введя следующее:
type,4
real,2
mat,34
secnum,112
e,1,2,3,4,11,12,13,14
ELEM MAT TYP REL ESY SEC NODES
1 34 4 2 0 112 1 2 3 4 11 12 13 14
2 3 4 4 0 200 101 102 103 104 111 112 113 114
Решатель MAPDL поддерживает сотни элементов. Независимо от решаемой задачи, ANSYS Mechanical выбирает наилучший исходя из общих соображений элемент. Но он может быть и не лучшим для вашей конкретной модели. В таких случаях, вы можете переопределить используемые ANSYS Mechanical элементы.
Примечание: новый элемент обязательно должен иметь ту же топологию. Вы не сможете заменить 4х узловой оболочечный элемент на 8ми узловой гекса элемент. Но если расположение узлов (топология) одинаковое, то вы можете произвести замену при помощи ET команды.
Если вы определили тип элемента или ID материала в APDL и хотите внести эти изменения в большой набор элементов, то используйте EMODIF. Это наиболее быстрый способ изменения определения элемента.
6. MP – MPDATA – MPTEMP –TB – TBDATA – TBTEMP
Никогда не помешает сохранить заданные данные по материалам, чтобы 1) иметь запись о том, что было использовано, и 2) иметь возможность использовать ту же модель материала в других проектах в будущем.
Если формулировка элемента определяется опциями ET команды, а свойства материала – соответствующими командами по материалам, то как определять остальное, например, толщину оболочки, свойства контакта, или жесткость для снижения эффекта песочных часов? Их нужно вводить в виде реальных констант. Если вы новичок в использовании решателя MAPDL, то к идее реальных констант вам будет немного трудно привыкнуть.
Официальное определение гласит:
Data required for the calculation of the element matrices and load vectors, but which cannot be determined by other means, are input as real constants. Typical real constants include hourglass stiffness, contact parameters, stranded coil parameters, and plane thicknesses.
Данные, требуемые для вычисления матриц и векторов нагрузки элемента, которые не определяются другими средствами, вводятся как реальные константы. Типичные реальные константы – это жесткость для снижения эффекта песочных часов, параметры контакта, параметры обмотки и толщины.
Фактически это просто место, куда нужно писать то, что больше написать некуда. R создает реальную константу, а RMODIF изменяет ее.
При работе в MAPDL из-под ANSYS Mechanical вы наиболее часто будете иметь дело либо с узлами, либо с элементами. NSEL и ESEL используются для определения того, какие узлы или элементы будут являться активными. Эти команды содержат множество опций, так что не пренебрегайте информацией в ANSYS help.
Часто возникают ситуации, когда по выбранным узлам нужно выбрать приложенный к ним элемент, или наоборот от выбранного элемента перейти к выбору его узлов. NSLE и ESLN отвечают за это. NSLE выбирает все узлы текущего активного выбора элементов, а ESLN – обратную процедуру.
При написании небольших APDL скриптов для ANSYS Mechanical люди часто совершают следующую ошибку: используют команды для выбора нужных им объектов и после всех манипуляций забывают снова выбрать все узлы и элементы модели. Если вы, используя NSEL, выберете несколько узлов модели для того, чтобы, скажем, приложить к ним силу и на этом остановитесь, то обязательно получите ошибку, поскольку эти узлы будут единственными активными во всей модели.
ALLSEL исправит эту проблему. Эта команда попросту все делает активным. Имеет смысл ВСЕГДА вносить эту строку в конец каждого скрипта, где есть что-либо связанное с выбором отдельных объектов.
Если вы используете ANSYS Mechanical, то, должно быть, знакомы с концепцией именованных наборов (Named Selections). Это группы объектов (узлов, элементов, поверхностей, ребер, вершин) с присвоенным именем, по которому на них можно ссылаться, а не выбирать каждый раз по новой. В ANSYS MAPDL это называется компонентами, и команды, с ними работающие, начинаются с букв CM.
Любые геометрические именованные наборы, созданные вами в ANSYS Mechanical, превращаются в узловой компонент – все узлы выбранной в именованном наборе геометрии превращаются в узловой компонент. Вы также можете создать собственный узловой или элементный именованный набор, и он также будет создан в виде соответствующего компонента.
Вы можете использовать CM для создания ваших собственных компонентов в APDL скрипах. Ему нужно будет дать имя – и можно работать. Вы также можете выбирать компоненты с помощью команды CMSEL.
Чрезвычайно полезная команда в APDL. Это способ просмотреть вашу модель и найти любую полезную информацию: число узлов, наибольшее значение координаты Z среди узлов, если выбраны узлы, то нагрузки на узел, информация о результатах, и т. д…
Обязательно изучите информацию в ANSYS help по этой команде. Если вы в процессе написания скрипта с грустью произносите: “Ах если бы я только знал эту величину в моей модели…”, то скорее всего вам стоит обратиться к команде *get.
13. CSYS – LOCAL – RSYS
Системы координат очень важны в ANSYS Mechanical и ANSYS MAPDL. В большинстве случаев вы можете спокойно создать систему координат в ANSYS Mechanical. Использовать эту систему координат можно будет и в ANSYS MAPDL, но по умолчанию ANSYS Mechanical назначает автоматические ID. Для использования системы координат в MAPDL нужно указать ее номер в окне свойств: изменить предварительно свойство “Coordinate System” с “Program Defined” на “Manual” и указать номер в поле “Coordinate System ID”.
Рис 2. Определение ID системы координат в интерфейсе ANSYS Mechanical
Если есть необходимость создать систему координат прямо в APDL скрипте, используйте команду LOCAL.
Когда вы захотите использовать определенную систему координат, введите команду CSYS, чтобы сделать ее активной.
Примечание: система координат 0 – это глобальная декартова система. Если вы изменили активную систему, то убедитесь, что после скрипта вы не забыли вернуться к глобальной системе координат CSYS,0
RSYS – это что-то вроде CSYS, но для результатов. Если вы хотите построить график или получить список результатов не в глобальной системе координат, то используйте RSYS для активации нужной вам системы координат.
Еще одна очень полезная вещь, которую нужно знать – каждый узел в модели имеет ориентацию. По умолчанию степени свободы UX, UY, и UZ ориентированы в соответствии с глобальной системой координат. В ANSYS Mechanical, при задании нагрузки или граничного условия по нормали или по касательной к поверхности, программа фактически поворачивает все узлы таким образом, чтобы степень свободы была расположена нормально к поверхности.
Если вам нужно проделать это самостоятельно, например, если вы хотите приложить нагрузку или граничное условие в определенном направлении, кроме глобального декартового, используйте NROTATE. В первую очередь нужно выбрать узлы, которые будете поворачивать, далее следует указать активную систему координат CSYS, затем использовать NROTATE,ALL, чтобы повернуть узлы.
Наиболее распространенным граничным условием является перемещение, даже в температурных задачах. Для задания оного в ANSYS MAPDL скрипте, используйте команду D. Большинство людей использует набор узлов или компоненты для приложения перемещений нескольким узлам.
В простейшей форме прикладывается единственное значение для перемещения к одному узлу по одной степени свободы. Но и узлов и степеней свободы может быть несколько.
Команда F – это то же самое, что D, за исключением того, что определяет силу, а не перемещение.
Если нужно приложить давление, то используйте либо SF для приложения к узлам, либо SFE для приложения к элементам. Работает команда во многом также как D и F.
Когда решатель ANSYS MAPDL находится в процессе решения, он пишет информацию в файл jobename.out, где jobname – это название вашего проекта. Иногда может возникнуть необходимость выписать определенную информацию, скажем, перечислить напряжения всех выбранных узлов. Используйте /OUTPUT,filename для перенаправления вывода в файл. После того как вы закончите нужно будет написать /OUTPUT без опций, и машина вернется к стандартному выводу.
Рис 3. Обработанное PNG изображение результата
Решатель ANSYS MAPDL в процессе решения находит множество величин. Чем более сложные элементы вы используете, тем большее количество величин вы можете получить. Но как добраться до наиболее скрытых? ETABLE.
Это, конечно, не окончательный список. Спросите 20 пользователей ANSYS MAPDL какие APDL команды все пользователи ANSYS Mechanical должны знать, и вы в лучшем случае услышите пять или шесть общих. Но основываясь на данных техподдержки и собственном опыте, скажу, что именно эти 20 используются чаще всего.
Command help – это ваш незаменимый друг и товарищ. Всегда пользуйтесь им.
Кроме того, вы можете открыть ANSYS MAPDL и поиграть с этими командами, изучить их влияние на проект.