Главная страница

Буквари для Инженеров


Скачать 1.52 Mb.
НазваниеБуквари для Инженеров
Анкорansys_release_10_0_documentation_apdl.pdf
Дата16.12.2017
Размер1.52 Mb.
Формат файлаpdf
Имя файлаansys_release_10_0_documentation_apdl.pdf
ТипСправочник
#11751
страница7 из 10
1   2   3   4   5   6   7   8   9   10
4.1.2. Путь поиска макрофайлов
По умолчанию ANSYS ищет пользовательский макрофайл (с расширением .mac) в следующих местоположениях:
1.
…/ansys_inc/v100/ansys/apdl.
2.
Каталог (или каталоги) определяемый переменной окружения
ANSYS_MACROLIB
(если определена) или регистрационный (домашний) каталог. Эта переменная ок- ружения зарегистрирована в главе «The ANSYS Environment» в «ANSYS Operations
Guide».
3.
Каталог, определяемый переменной окружения
$HOME.
4.
Текущий рабочий каталог.
Вы можете поместить макрос для вашего личного использования в вашем основ- ном каталоге. Макрос, который должен быть доступным параллельно другим пользовате- стр. 50 из 76

ANSYS Release 10.0 Documentation / APDL Programmer's Guide
Буквари для Инженеров http://cyberkolbasa.com1.ru лям, должен быть помещен в каталог …/ansys_inc/v100/ansys/apdl или некото- рый другой общедоступный каталог, на который каждый может сослаться через перемен- ную окружающей среды
ANSYS_MACROLIB.
Для пользователей Windows: "текущий каталог" - основной каталог (обычно сете- вой ресурс) установленный администраторами, и Вы должны спросить у вашего сетевого администратора его местоположение. Вы можете использовать переменные окружающей среды, чтобы создать локальный "домашний каталог". Локальный домашний каталог про- веряется после основного каталога, определяемого в вашем профиле домена.
4.1.3. Создание макросов в среде ANSYS
Вы можете создать макрос четырьмя методами в среде ANSYS:

Выполните команду
*CREATE в input window. Значения параметров не возвраща- ются и в файл записываются имена параметров.

Используйте команды
*CFOPEN,
*CFWRITE, и
*CFCLOS. Параметры определены их текущими значениями и эти значения записываются в макрофайл.

Выполните команду /TEE в input window. Эта команда пишет список команд в файл в то же самое время, когда команды выполняются. Поскольку команды вы- полняются в текущем сеансе ANSYS, всем именам параметров возвращаются их текущие значения. Однако, в файл, который создан, записываются имена парамет- ров, а не их текущие значения.

Выберите пункт меню Utility Menu> Macro> Create Macro. Этот метод открывает диалоговое окно, которое может использоваться как простой многострочный ре- дактор для того, чтобы создать макрос. Значения параметров не возвращаются и в файл записываются имена параметров.
Следующие разделы детализируют каждый из этих методов.
4.1.3.1. Использование команды *CREATE
Выполнение команды
*CREATE переадресовывает введенные в input window ко- манды к файлу, определяемому командой. Все команды переадресуются пока Вы не вы- полните команду
*END. Если существующий файл имеет то же самое имя как и имя мак- рофайла, который Вы создаете, то программа ANSYS запишет его поверх существующего файла.
Например, предположим, что Вы хотите создать макрос, с именем matprop.mac, который автоматически определяет ряд свойств материала. Набор команд, водимых в input window для этого макроса, мог бы выглядеть следующим образом:
*CREATE,matprop,mac,macros
MP,EX,1,2.07E11
MP,NUXY,1,.27
MP,DENS,1,7835
MP,KXX,1,42
*END
Команда *CREATE берет из аргументов имя файла, расширение файла, и путь ка- талога (в этом случае, каталог макроса определен).
Используя
*CREATE, все параметры, используемые в командах, записываются фай- л (не заменяются назначаемыми в данный момент значениями для параметров).
Вы не можете использовать
*CREATE в пределах цикла типа DO. стр. 51 из 76

ANSYS Release 10.0 Documentation / APDL Programmer's Guide
Буквари для Инженеров http://cyberkolbasa.com1.ru
4.1.3.2. Использование команды *CFWRITE
Если Вы желаете создать макрофайл, в котором заменяются значения параметров текущими значениями, Вы можете использовать
*CFWRITE. В отличие от
*CREATE,
ко- манда *CFWRITE не может определять имя макроса; Вы должны сначала определить макрофайл командой
*CFOPEN. Только те команды ANSYS, которые явно предварены командой
*CFWRITE, записываются в определяемый файл; все другие команды, введен- ные в input window выполняются. Как и с командой *CREATE,
*CFOPEN может опреде- лить имя файла, расширение файла, и путь. Следующий пример пишет команду
BLOCK в текущий открытый макрофайл.
*cfwrite,block,,a,,b,,c
Обратите внимание, что использовались параметры для аргументов команды
BLOCK. Текущее значение этих параметров (а не имена параметров) записываются в файл.
Так, для этого примера, могла бы быть строка, записанная в макрофайл
*cfwrite,block,,4,,2.5,,2
Чтобы закрыть макрофайл, выполните команду
*CFCLOS.
Примечание
В то время как имеется возможность создавать макрос с помощью этого метода, эти команды (*CFOPEN,
*CFWRITE, и
*CFCLOS) являются наиболее полезными для того, чтобы записывать команды ANSYS в файл во время выполнения макроса.
4.1.3.3. Использование команды /TEE
Выполнение команды /TEE,NEW или
/TEE, APPEND переадресовывает команды
ANSYS, введенные в input window к файлу, определяемому этой же командой, одновре- менно с выполнением этих команд. Все команды выполняются и переадресуются, пока Вы не выполните команду /TEE,END. Если существующий файл имеет то же самое имя как и имя макрофайла, который Вы определяете командой, программа ANSYS записывает мак- рофайл поверх существующего файла. Чтобы этого избежать, используйте вместо
/TEE,NEW команду /TEE, APPEND.
В дополнение к аргументу Label (который может иметь значение NEW, APPEND, или END), команда
/TEE использует аргументы имени файла, расширения файла и пути каталога.
Поскольку команды выполняются в текущем сеансе ANSYS, всем именам парамет- ров возвращаются их текущие значения. Однако, в файле, который создается, записыва- ются имена параметров (не заменяются назначаемыми в настоящее время значениями па- раметров). Если ваши текущие значения параметров важны, Вы можете сохранить их в файл, используя команду
PARSAV.
4.1.3.4. Использование меню Utility Menu> Macro> Create Macro
Выбор этого пункта меню открывает диалоговое окно ANSYS, которое Вы можете использовать как простой редактор для того, чтобы создать макрос. Вы не можете открыть и редактировать существующий макрос этим средством; если Вы будете использовать имя существующего макроса как аргументы для полей команды
*CREATE, то существующий файл будет перезаписан. стр. 52 из 76

ANSYS Release 10.0 Documentation / APDL Programmer's Guide
Инженеров http://cyberkolbasa.com1.ru
Рис. 4.2. Диалоговое окно создания макроса.
Как и с командой
*CREATE, параметры не вычисляются, но записываются бук- вально в макрофайл. Обратите внимание, что Вы не делаете последнюю строку с коман- дой
*END.
4.1.4. Создание макроса в текстовом редакторе
Вы можете использовать ваш любимый текстовый редактор, чтобы создавать или редактировать макрофайлы. Будет работать любой редактор ASCII. Кроме того, макрос
ANSYS можно закончить завершающей строкой с управляющим обозначением UNIX или
Windows, (возврат каретки, парного перевода строки или просто перевода строк), таким образом Вы сможете создать макрос на одной платформе и использовать его на других платформах.
Буквари для
стр. 53 из 76
Если Вы используете этот метод, чтобы создать макрос, не включайте команды
*CREATE и
*END.

ANSYS Release 10.0 Documentation / APDL Programmer's Guide
Буквари для Инженеров http://cyberkolbasa.com1.ru
Рис. 4.3. Создание макроса в текстовом редакторе.
4.1.5. Использование библиотек макросов
Для большего удобства ANSYS позволяет Вам помещать ряд макросов в отдель- ный файл, называемый библиотекой макросов. Вы можете создать его через команду
*CREATE или в текстовом редакторе. Учитывая, что макробиблиотеки имеют тенденцию быть более длинными (многострочными), чем отдельный макрос, использование тексто- вого редактора обычно обеспечивает лучший результат по их созданию.
Библиотеки макросов не имеют никакого явного расширения файла и подчиняются тем же самым соглашениям по именам как и макрофайлы. Макрофайл библиотеки имеет следующую структуру:
MACRONAME1
/EOF
MACRONAME2
/EOF
MACRONAME3
./EOF
Например, следующий макрофайл содер- жит два простых макроса: mybloc
/prep7
/view,,-1,-2,-3 block,,4,,3,,2 finish
/EOF mysphere
/prep7
/view,,-1,-2,-3 sphere,1 finish
/EOF
Обратите внимание, что каждый макрос предварен именем макрофайла (иногда пе- редаваемым именем блока данных), и оканчивается командой
/EOF.
Макрофайл библиотеки может постоянно находиться где-нибудь на вашей системе, хотя для удобства Вы должны поместить его в пределах пути поиска макрофайлов. В от- личие от обычных макрофайлов, макрофайл библиотеки может иметь любое расширение до восьми символов. стр. 54 из 76

ANSYS Release 10.0 Documentation / APDL Programmer's Guide
Буквари для Инженеров http://cyberkolbasa.com1.ru
4.2. Выполнение макросов и макробиблиотек
Вы можете выполнить любой макрофайл, используя команду
*USE. Например, чтобы выполнить макрос
MYMACRO
(без расширения) постоянно находящийся где-нибудь в пределах пути поиска макрофайлов, Вы использовали бы
*use,mymacro
В этом случае для выполнения макроса не требуется никаких дополнительных ар- гументов. Если бы вместо этого макрос назывался
MYMACRO.MACRO
и он постоянно нахо- дился в /myaccount/macros, то Вы могли бы вызвать его следующим образом
*use,/myaccount/macros/mymacro.macro
Обратите внимание, что команда
*USE позволяет Вам вводить путь и расширение наряду с именем файла и что они не вводятся как отдельные аргументы команды.
Если макрос имеет расширение файла .mac и постоянно находится в пределах пу- ти поиска файлов, Вы можете выполнить его, как будто это команда ANSYS, просто введя его имя в командную строку. Например, чтобы вызвать mymacro.mac Вы можете просто ввести mymacro
Вы можете также выполнить макрос с расширением .mac черезпункт меню Utility
Menu> Macro> Execute Macro.
Если тот же самый макрос использует аргументы (см. раздел 4.3.1. для получения дополнительной информации о передаче аргументов к макросу), то они могут быть введе- ны в командную строку следующим образом mymacro,4,3,2,1.5 или
*use,mymacro.mac,4,3,2,1.5
Диалоговое окно пункта меню Utility Menu> Macro> Execute Macro имеет поля для аргументов.
Выполнение макроса, содержавшегося в макробиблиотеках, делается аналогичным образом. Вы должны сначала определить файл библиотеки, используя команду
*ULIB.
Например, чтобы определить, что макрос находится в файле mymacros.mlib, который постоянно находится в каталоге /myaccount/macros, Вы выполнили бы следующую команду:
*ulib,mymacros,mlib,/myaccount/macros/
После выбора макробиблиотеки, Вы можете выполнить любой макрос, содержав- шийся в библиотеке, определяя его через команду
*USE. Как и с макросом, содержавшим- ся в индивидуальном файле, Вы можете определить аргументы как параметры в команде
*USE.
Примечание
После выполнения команды *ULIB Вы не можете использовать команду
*USE, чтобы обратиться к макросу, не содержавшемуся в указанном макрофайле библиотеки. стр. 55 из 76

ANSYS Release 10.0 Documentation / APDL Programmer's Guide
Буквари для Инженеров http://cyberkolbasa.com1.ru
4.3. Локальные переменные
APDL обеспечивает два набора специально именованных скалярных параметров, которые являются доступными для использования как локальные переменные. Они состо- ят из

Набора скалярных параметров, которые обеспечивают способ передачи аргументов из командной строки к макросу.

Набора скалярных параметров, которые могут использоваться в пределах макроса.
Они обеспечивают набор локальных переменных, которые могут использоваться, чтобы определять значения только в пределах этого макроса.
Следующие разделы рассматривают оба этих набора параметров более подробно.
4.3.1. Передача аргументов в макрос
Есть 19 скалярных параметров, которые Вы можете использовать, чтобы передать аргументы из командной строки в макрос. Эти скалярные параметры могут многократно использоваться с множеством макросов; то есть, их значения являются локальными к ка- ждому макросу. Параметры имеют имена от ARG1 до AR19 и они могут использоваться для любого из следующих элементов:

Чисел

Алфавитно-цифровых строк символов (до восьми символов заключенных в оди- ночные кавычки)

Числовых или символьных параметров

Параметрических выражений
Примечание
Вы можете передать только значения аргументов от ARG1 до AR18 к макросу как параметры с командой
*USE. Если Вы создаете макрос, который может использоваться как команда ANSYS (макрофайлы имеют расширение .mac), то Вы можете передать к макросу значения аргументов от ARG1 до AR19.
Например, следующий простой макрос требует четырех аргументов – ARG1, ARG2,
ARG3, и ARG4:
/prep7
/view,,-1,-2,-3 block,,arg1,,arg2,,arg3 sphere,arg4 vsbv,1,2 finish
Чтобы выполнить этот макрос, пользователь мог бы ввести mymacro,4,3,2.2,1
4.3.2. Локальные переменные в пределах макроса
Каждый макрос может иметь до 79 скалярных параметров, используемых как ло- кальные переменные (от AR20 до AR99). Эти параметры являются полностью локальны- ми по отношению к отдельному макросу и к множественным макросам, при этом каждый из них может иметь собственные уникальные значения, определенные на эти параметры.
Эти параметры не передаются к макросу, вызванному из макроса (вложенный макрос). стр. 56 из 76

ANSYS Release 10.0 Documentation / APDL Programmer's Guide
Буквари для Инженеров http://cyberkolbasa.com1.ru
Они передаются к любым файлам, обработанным через команду
/INPUT, или в цикл, вы- полняющийся в пределах этого макроса.
4.3.3. Локальные переменные вне макроса
ANSYS также имеет подобный набор скалярных параметров от ARG1 до AR99, ко- торые являются локальными к входному файлу, и не передаются ни к какому макросу, вы- званному этим входным файлом. Таким образом, после завершения макроса выполнение команд возвращается к входному файлу и значения от ARG1 до ARG99 возвращаются к любым значениям, которые были определены в пределах входного файла.
4.4. Управление процессом выполнения программы в APDL
Выполняя входной файл, ANSYS обычно ограничивается линейным процессом вы- полнения программы; то есть, каждая команда выполняется последовательно в опреде- ленном во входном файле порядке. Однако, APDL обеспечивает богатый набор команд, которые Вы можете использовать для управления процессом выполнения программы.

Вызов подпрограммы (вложенного макроса).

Безусловный переход к указанному местоположению с макросом.

Переход, основанный на условии, к указанному местоположению в пределах мак- роса.

Повтор выполнения отдельной команды, с приращением значения одного или бо- лее параметров команды.

Зацикливание (повторение) фрагмента макроса указанное количество раз.
Следующие разделы детализируют каждую из этих возможностей управления про- цессом выполнения программы.

Вложенные макросы: выполнение подпрограмм в пределах макроса

Безусловный переход: Goto

Условный переход: команда *IF

Повторение команды

Циклы: Do-Loops

Неявные циклы Do Loops

Дополнительный цикл: Do-While
4.4.1. Вложенные макросы: выполнение подпрограмм в пределах мак-
роса
APDL позволяет Вам создавать вложенные макросы до 20 уровня вложенности. Вы можете передать до 19 аргументов к макросу и, в конце каждого вложенного макроса, вы- полнение программы возвращается к уровню, который вызвал этот макрос. Например, следующий простой макрофайл библиотеки демонстрирует макрос MYSTART, который вызывает макросMYSPHERE, чтобы создать сферу. mystart
/prep7
/view,,-1,-2,-3 mysphere,1.2 finish
/eof mysphere sphere,arg1 стр. 57 из 76
/eof

ANSYS Release 10.0 Documentation / APDL Programmer's Guide
Буквари для Инженеров http://cyberkolbasa.com1.ru
4.4.2. Безусловный переход: Goto
Самая простая команда, выполняющая переход, это команда
*GO, инструктирует программу перейти к указанной метке, не выполняя никаких промежуточных команд.
Процесс выполнения программы продолжается от указанной метки. Например
*GO,:BRANCH1
--- ! этот блок команд пропускается (не выполняется)
---
:BRANCH1
---
---
Метка, определенная командой
*GO должна начаться с двоеточия ( : ) и не должна содержать больше чем восемь символов, включая двоеточие. Метка может находиться в любом месте файла.
Примечание
Использование команды
*GO теперь считают устаревшим и ее использование не рекомендуется. Для лучшего управления процессом выполнения программы см. другие команды выполняющие переход.
4.4.3. Условный переход: команда *IF
APDL позволяет Вам выполнять один из ряда альтернативных блоков, основанных на проверке условия. Условия проверяются путем сравнения двух числовых значений
(или параметров, которые возвращают числовые значения).
Команда *IF имеет следующий синтаксис
*IF, VAL1, Oper, VAL2, Base где

VAL1 - первое числовое значение (или числовой параметр) для сравнения.

Oper - оператор сравнения.

VAL2 - второе числовое значение (или числовой параметр) для сравнения.

Base - действие, которое происходит, если условие выполняется.
APDL предлагает восемь операторов сравнения, которые обсуждаются подробно в справочной информации команды
1   2   3   4   5   6   7   8   9   10


написать администратору сайта