Как передать дополнительные параметры в скрипт или аддон при запуске Blender из командной строки

Blender обрабатывает все параметры, передаваемые при запуске через командную строку. Однако некоторое скрипты и аддоны при запуске Blender из консоли для правильной работы могут требовать указания своих уникальных аргументов. Если указать такие нестандартные параметры в командной строке, Blender попытается обработать и их, что скорее всего приведет к ошибке. Однако в Blender предусмотрен специальный способ отсечения подобных аргументов от обработки программой.

Если при составлении командной строки после блока с основными параметрами добавить двойное тире без указания аргумента, последующие параметры при запуске Blender проигнорирует.

Если задать командную строку в виде:

параметры param1 и param2 не будут обработаны Blender.

Рассмотрим, как это работает на примере:

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

Полный перечень входных параметров доступен скриптам и аддонам Blender через стандартную переменную python sys.argv. Сделаем проверку на наличие в параметрах двойного тире и сохраним последующие параметры для использования в скрипте.

Для того, чтобы получить переданные скрипту параметры в удобном виде, воспользуемся модулем обработки аргументов argparse.

Здесь мы задали два параметра -s1 (путь к файлу) и -s2 (целое число), значения которых могут быть переданы в командной строке. Внутри скрипта параметры становятся доступны через объект args: args.sample_1 и args.sample_2.

Полный код скрипта для вывода переданных ему в командной строке параметров:

Сохраним скрипт в файл с именем param_script.py.

Вызов определенного скрипта при запуске Blender задается через параметр -P с указанием полного пути.

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

для ОС Windows (все нужные файлы размещены в корне диска D):

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

для ОС Linux (все нужные файлы расположены в директории /tmp):

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