
- •14.3.11. Сохранение, восстановление и запись параметров
- •14.4. Макрокоманды
- •14.4.1. Создание и исполнение макросов
- •Например, задание команды
- •14.4.2. Создание собственных команд
- •14.4.3. Вызов функций графического интерфейса из макрокоманды
- •14.4.4. Присвоение значений аргументам макроса
- •14.4.5. Вложение макрокоманд
- •14.4.6. Библиотека файлов макрокоманд
- •14.4.7. Вывод на экран сообщений пользователя
- •14.4.8. Запись ansys-команд
- •14.5. Повторение, ветвление и выполнение циклов
- •14.5.1. Повторное исполнение команд
- •14.5.2. Ветвление: конструкции go-to и If-Then-Else
- •14.5.3. Циклы с использованием оператора do
- •14.6. Параметры-массивы
- •14.6.1. Термины
Табл. 14.2. Перечень GET-функций программы ANSYS
NODE(x,y,z) |
Номер выделенного узла, ближайшего к точке (х,y,z) в активной системе координат. |
KP(x,y,z) |
Номер выделенной ключевой точки, ближайшей к точке (х,y,z) в активной системе координат. |
NELEM(n,p) |
Номер узла в предписаной для данного элемента (с номером n) позиции р (1... 20) элемента. |
ESEL(n) |
Статус элемента с номером n (-1 = невыделенный, 0 = незаданный, +1 = выделенный). |
NSEL(n) |
Статус узла с номером n (-1 = невыделенный, 0 = незаданный, +1 = выделенный). |
NX(n), NY(n), NZ(n) |
Координаты узла с номером n в активной системе координат. |
KX(n), KY(n), KZ(n) |
Координаты кл. точки с номером n в активной системе координат. |
LX(n,f), LY(n,f), LZ(n,f) |
Координаты линии с номером n в точке, делящей линию на отрезки в отношении f (0.0 ... 1.0), в активной системе координат. |
ANGLEN (N1, N2, N3) |
Угол между двумя линиями, заданными тремя узлами (N1 - общий узел). |
ANGLEK (K1, K2, K3) |
Угол между двумя линиями, заданными тремя ключевыми точками (К1 - общая точка). |
UX(n), UY(n), UZ(n) |
Перемещения UX, UY и UZ в узле с номером n. |
ROTX(n),ROTY(n), ROTZ(n) |
Углы поворота ROTX, ROTY и ROTZ в узле с номером n. |
VX(n), VY(n), VZ(n) |
Скорости VX, VY и VZ в узле с номером n. |
AX(n), AY(n), AZ(n) |
Вектор магнитного потенциала в узле с номером n. |
TEMP(n), PRES(n) |
Степени свободы - температура и давление - в узле с номером n. |
VOLT(n), MAG(n) |
Электрический и магнитный скалярные потенциалы в узле с номером n. |
ENKE(n), ENDS(n) |
Турбулентная кинетическая энергия и величина ее рассеяния. |
DISTND(N1,N2) |
Расстояние между узлами N1 и N2. |
DISTKP(K1,K2) |
Расстояние между ключевыми точками K1 и K2. |
DISTEN(E,N) |
Расстояние между центроидой элемента Е и узлом N. Центроида определяется из числа выделенных узлов элемента. |
NORMNX(N1,N2,N3) |
Косинус угла между направлением оси X и нормалью к плоскости, содержащей узлы N1, N2 и N3. |
NORMNY(N1,N2,N3) |
Косинус угла между направлением оси Y и нормалью к плоскости, содержащей узлы N1, N2 и N3. |
NORMNZ(N1,N2,N3) |
Косинус угла между направлением оси Z и нормалью к плоскости, содержащей узлы N1, N2 и N3. |
NORMKX(K1,K2,K3) |
Косинус угла между направлением оси X и нормалью к плоскости, содержащей ключевые точки K1, K2 и K3. |
NORMKY(K1,K2,K3) |
Косинус угла между направлением оси Y и нормалью к плоскости, содержащей ключевые точки K1, K2 и K3. |
NORMKZ(K1,K2,K3) |
Косинус угла между направлением оси Z и нормалью к плоскости, содержащей ключевые точки K1, K2 и K3. |
AREAND(N1,N2,N3) |
Площадь треугольника с вершинами в узлах N1, N2 и N3. |
Продолжение табл. 14.2
AREAKP (K1,K2,K3) |
Площадь треугольника с вершинами, совпадающими с ключевыми точками K1, K2 и K3. |
ARNODE(N) |
Площадь в узле с номером N; образуется элементами, присоединенными к узлу N. Используются только элементы, все узлы которых входят в выделенный набор. |
ELADJ (E,FACE) |
Элемент, смежный с гранью (имеющей номер* FACE) элемента Е. Учитываются только элементы такой же размерности и формы. |
NDFACE (E,FACE,LOC) |
Узел в предписанной позиции LOC на грани (имеющей номер* FACE) элемента E. Для лицевой поверхности, образованной узлами IJKL, LOC=1 соответствует узлу I, LOC=2 - узлу J и т.д. |
NMFACE(E) |
Номер грани элемента Е, содержащей выделенные узлы. В качестве номера выдается номер (ключ) поверхностной нагрузки. Если ключей несколько (как в случае линейных или поверхностных элементов), выдается наименьшее значение. |
ARFACE(E) |
Номер грани элемента Е, содержащей выделенные узлы. В качестве номера выдается ключ поверхностной нагрузки. Если ключей несколько (как в случае линейных или поверхностных элементов), выдается наименьшее значение. |
CENTRX(E) |
Центроида оси Х элемента Е (совпадает с одним из выделенных узлов этого элемента). |
CENTRY(E) |
Центроида оси Y элемента Е (совпадает с одним из выделенных узлов этого элемента). |
CENTRZ(E) |
Центроида оси Z элемента Е (совпадает с одним из выделенных узлов этого элемента). |
NNEAR(N) |
Выделенный узел, ближайший к узлу N. |
KNEAR (K) |
Выделенная ключевая точка, ближайшая к ключевой точке K. |
ENEARN(N) |
Выделенный элемент, ближайший к узлу N. Положение элемента определяется выделенными узлами. |
NDNEXT(N) |
Следующий выделенный узел с номером, превышающим N. |
ELNEXT(E) |
Следующий выделенный элемент с номером, превышающим E. |
KPNEXT(K) |
Следующая выделенная кл. точка с номером, превышающим K. |
LSNEXT(L) |
Следующая выделенная линия с номером, превышающим L. |
ARNEXT(A) |
Следующая выделен. поверхность с номером, превышающим А. |
VLNEXT(V) |
Следующий выделенный объем с номером, превышающим V. |
ENEXTN(N,LOC) |
Элемент, связанный с узлом N. Параметр LOC - позиция элемента в списке всех связанных с данным узлом элементов. |
*) Номер грани FACE совпадает с номером поверхностной нагрузки.
Примеры параметрических функций:
PI=ACOS(-1) ! PI = арккосинус -1
Z3=COS(2*THETA)-Z1**2
R2=SQRT(ABS(R1-3))
X=RAND(-24,R2) ! X = случайное число в диапазоне (-24,R2)
*AFUN,DEG ! Градусная мера углов
THETA=ATAN(SQRT(3)) ! THETA присваивается значение 60 градусов
PHI=ATAN2(-SQRT(3),-1) ! PHI присваивается значение 120 градусов
*AFUN, RAD ! Радианная мера углов
X249=NX(249) ! Координата Х узла 249
SLOPE=(KY(2)-KY(1))/(KX(2)-KX(1)) Угловой коэффициент прямой между ключевыми точками 1 и 2
CHNUM=CHRVAL(X) CHNUM присваивается значение символьной переменной Х
UPPER=UPCASE(LABEL) UPPER присваивается параметр LABEL, записанный заглавными буквами
14.3.11. Сохранение, восстановление и запись параметров
Если потребуется использовать заданные значения параметров позже, при других обращениях к программе ANSYS, их можно записать в файл. К этому файлу можно будет затем обратиться. При чтении файла можно либо заменить сохраненными параметрами все текущие параметры, либо добавить их к текущим (заменив только те, что уже введены для данного сеанса работы с программой).
Чтобы записать параметры в файл, используется один из способов:
Команда: PARSAV
Маршрут: Utility Menu>Parameters>Save Parameters
Чтобы считать параметры из файла, используется один из способов:
Команда: PARRES
Маршрут: Utility Menu>Parameters>Restore Parameters
При желании можно записать в файл до десяти параметров или массив параметров, используя формат вещественных чисел языка FORTRAN. Эта возможность используется при создании выходного файла для работы с другими программами, для отчетов, докладов и т.п.
Чтобы сделать это, используется один из способов:
Команда: *VWRITE
Маршрут: Utility Menu>Parameters>Array Parameters>Write to File
14.4. Макрокоманды
Макрокоманда представляет собой последовательность ANSYS-команд, записанных в файл для многократного использования. Например, расчет потерь энергии за счет вихревых токов при выполнении магнитного анализа может потребовать задания в постпроцессоре серии команд. Записав эту серию в виде макрокоманды (макроса), можно затем весь набор использовать как одну команду, существенно расширив доступные для пользователя ANSYS-команды.
14.4.1. Создание и исполнение макросов
Макрос можно создать следующим образом.
Чтобы открыть, т.е. создать, макро-файл, используется один из способов:
Команда: *CREATE
Маршрут: Utility Menu>Macro>Create Macro
Чтобы закрыть макро-файл, используется команда *END. (Прямого доступа к этой команде из графического интерфейса нет.)
Если использовать такой метод ввода команд, то процедура сводится к созданию "бутерброда" из нужных команд между командами *CREATE и *END. Например, при создании макроса свойств материалов это выглядит примерно таким образом:
*CREATE, MATPROP
MP,EX,1,2.07E11
MP,NUXY,1,.27
MP,DENS,1,7835
MP,KXX,1,42
*END
Командой *CREATE указывается файл, в который будет записана последовательность команд (в данном случае файл MATPROP), а командой *END макрос закрывается. Размещенные между *CREATE и *END команды не исполняются, а просто копируются в файл.
Еще одним способом создать макрос является использование системного редактора. В этом случае команды *CREATE и *END не включаются в состав макроса.
После создания макроса можно его использовать:
Команда: *USE
Маршрут: Utility Menu>Macro>Execute Data Block
Например, задание команды
*USE, MATPROP
приводит к исполнению макроса MATPROP. Команды *CREATE, *END и *USE доступны из любого места программы ANSYS.
После того как макро-файл создан, его можно просмотреть с помощью команды *LIST. (Прямого доступа к этой команде из графического интерфейса нет.) В момент задания этой команды выводимый на просмотр файл не должен находиться в работе (это не относится к файлу Jobname.ERR). Подобная ситуация возникает в следующих случаях:
для данного файла активна операция *CFOPEN;
файл используется как входной или выходной файл на том же самом файлом уровне;
файл открыт для выполнения процедур вне программы ANSYS (например, используется системным редактором).