Перейти к основному содержимому

Начало работы

Первая команда

Откройте окно командного процессора (см. Окно), введите:

Version

Приложение ответит версией и датой сборки. Если это сработало — Open API у вас работает, и всё остальное отличается только набором команд.

Список всех команд:

Help

Справка по одной команде — с синтаксисом, аргументами и примерами:

Help Project

Встроенная справка всегда актуальнее любой документации: она построена из того же кода, который выполняет команды.

Язык команд

У каждой команды два имени — латинское и переведённое. Оба работают, и их можно смешивать:

Проект Открыть "C:\Projects\Filter.gma"
Project Open "C:\Projects\Filter.gma"
Проект Open "C:\Projects\Filter.gma"

Три строки делают одно и то же. Правила простые:

  • при английском интерфейсе работают только английские имена;
  • при любом другом — и английские, и переведённые, в том числе вперемешку.

Речь о языке, с которым приложение было запущено: список имён читается один раз при старте, и смена языка на ходу его не меняет — см. Смена языка во время работы.

подсказка

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

Это правило распространяется и на значения: единицы измерения (Millimetre, GHz) и значения-перечисления (Fast, Adaptive) принимаются в обеих формах.

предупреждение

Читая значение обратно, просите его без перевода. По умолчанию Get отвечает тем написанием, которое видно в интерфейсе, — Быстрый, а не Fast, — и сравнение в скрипте сработает только на поставке с тем же языком. Флаг NoTranslation переключает ответ на языконезависимую форму:

Preferences Get Grid.Mode → Адаптивный
Preferences Get NoTranslation Grid.Mode → Adaptive

Подробности — в справочнике: Preferences, FEMSolverSettings.

примечание

Смена языка не добавляет переведённые имена команд в уже запущенном приложении: их список читается один раз при старте. А вот ответы переводятся сразу. Что именно меняется на ходу, а что нет — Смена языка во время работы.

Смена языка во время работы

Язык интерфейса переключается обычной командой настроек:

Preferences Set General.Language English

Принимаются код локали (en-US, ru-RU), один только язык (en, ru; регистр не важен) и название языка на любом из поддерживаемых языков (English, Английский, Russian, Русский). Поддерживаются два языка; en-GB, de-DE и подобные разбираются, но отклоняются — язык при этом остаётся прежним. Форма с подчёркиванием (en_US) не принимается.

В ответ приложение говорит «Требуется перезапуск приложения». Это предупреждение адресовано интерфейсу: уже построенные лента, меню и диалоги на ходу не перерисовываются, и после переключения окно останется на прежнем языке. Для работы через Open API — особенно с ключом /invisible, где окна нет вообще, — картина другая: часть поведения меняется сразу. Граница проходит ровно по одному правилу.

Что приложение принимает — заморожено на момент запуска. Что приложение отвечает — переключается сразу.

Заморожено до перезапуска

ЧтоПример
имена команд, субкоманд, флагов и параметров, которые распознаёт разборпроцесс, стартовавший под английским, не начнёт понимать Версия
названия режимов — и принимаемые Mode Set, и печатаемые Mode GetMode GetSelected mode: МКР
названия единиц измеренияPreferences Get General.Unit DistanceМиллиметр
тело Help: описание команды, имена аргументов, описания флагов, примерыUsage: Версия [Файл]

Переключается сразу

ЧтоПример
текст ответов и сообщений об ошибкахOperation successfulДействие успешно завершено
переведённые значения параметровOffВыкл, MemoryПамять
заголовки разделов в выводе HelpUsage:Использование:

Preferences Get General.Language отвечает кодом локали (en-US) и от языка не зависит вообще — читать его можно без NoTranslation.

Что из этого следует

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

Переключение с английского не включает переведённые имена. Процесс, стартовавший под английским, после Preferences Set General.Language Russian по-прежнему отвечает Команда "Версия" не поддерживается — хотя само сообщение об отказе уже переведено. Латинские имена продолжают работать, так что сценарий не ломается; чтобы набирать русские имена, приложение нужно перезапустить.

предупреждение

Ответы меняют язык прямо посреди сценария. Это единственный способ реально сломать автоматизацию переключением языка: строка, которую Get вернул до команды смены языка, и строка после неё — на разных языках. Сравнивайте значения только с флагом NoTranslation, и тогда переключение на сравнения не влияет.

предупреждение

Выгрузка *.txt, сделанная после переключения, получается смешанной. В одном файле окажутся значения на новом языке (они живые) и названия единиц на старом (они заморожены):

General.ModernGl=Off
General.Unit=Distance=Миллиметр;Angle=Градус;...

Такой файл выглядит английским, но в англоязычном экземпляре строка с единицами не применится — при этом импорт ответит «Operation successful», потому что отказом считается только импорт, не применивший ни одной строки. Выгружайте с NoTranslation либо в *.ini/*.json.

предупреждение

Настройка сохраняется. Язык пишется в настройки пользователя, поэтому сценарий, переключивший язык, меняет его и для следующего обычного запуска GAMMA с окном. Если переключение нужно только на время прогона — верните исходное значение в конце: прочитайте его Preferences Get General.Language перед изменением.

Имя с пробелом

Если имя или путь содержит пробел, возьмите его в кавычки:

Project Open "C:\Мои проекты\Фильтр.gma"

Кавычки при разборе снимаются. Круглые скобки, наоборот, остаются частью значения — так задаётся точка:

Geometry Create Box b1 (0 0 0) 10 5 2

(0 0 0) здесь — один аргумент, начальная точка; 10 5 2 — три отдельных аргумента (длина, ширина, высота). Точный набор аргументов у любой команды показывает встроенная справка: Help Geometry Create Box.

Первый сценарий

Сценарий — текстовый файл с расширением .gcp, по одной команде в строке. Создайте first.gcp:

REM Первый сценарий
Version
Help
Exit

Запустите:

Gamma.exe first.gcp

Приложение выполнит команды без показа окна и закроется. Проверить результат — по коду возврата:

Gamma.exe first.gcp
if %errorlevel% neq 0 (
echo Сценарий завершился с ошибкой, код %errorlevel%
)

Подробнее — Сценарии.

Что дальше