Всем привет! В наше время наверное уже нет тех, кто бы не пользовался Telegram'ом или в простонародье "Телегой". "Телега" сама по себе очень уж удобный мессенджер и мы сегодня попробуем использовать ее функционал себе на пользу.

4604bd2e0add6fe57c606c98e788d5f4.jpeg

Итак речь пойдет о небольшом скрипте, который нам поможет в автоматическом режиме пересылать наши визуализации прям в телеграм бот. Это очень удобно, так как "Телега" не сжимает качество изображения и если к примеру заказчик имеет доступ к телеграм боту, он автоматически после визуализации сразу может получать результат вашей работы.

Для начала нам нужно создать телеграм бота в "Телеге" который и будет тем самым принимающим сервером наших изображений. Можно найти в поиске "телеги" @BotFather и запустить его нажав на кнопку "СТАРТ" и команду /newbot проследовав по инструкции далее. Сложность может возникнуть только в название бота, так как все нормальные попросту занятыsmiley-biggrin.gif или нельзя использовать похожие имена. А так трудностей в создание бота возникнуть не должно. В конечном итоге как вы создадите бота ас интересуют два значения, это API и chat_id.

db31bfee6d0764eaaa4ad20b35a7bdf3.jpeg

85f70afd7768e789fcd63b722a1162ea.jpeg

Для того что бы приступить к следующей части у вас на ПК должен быть установлен Python. желательно версии 3.8 -3.10 с ними будет работать стабильнее. Скачать можно тут.

API мы получаем сразу после создания бота, а вот с chat_id немного сложнее. Для тех кто не знает как это сделать можно написать небольшой скрипт. Так же нам потребуются библиотеки telebot (устанавливается командой pip install pyTelegramBotAPI) и библиотека logging (устанавливается командойpip install logging). если кто не знает все команды вводятся в командной строке cmd.exe.

Следующий код нужно написать в блокноте к примеру и переименовать в chat_id.py:

Код можно скачать тут https://pastebin.com/UL0uAaWi 

f64669ba7bfdd88eccc7a7faa942735c.jpeg

Так же не забывайте вписать ваш API вместо YOUR_BOT_TOKEN

После того как напишите и сохраните код его можно будет запустить в cmd командой python chat_id.py и должно появиться такое сообщение в командной строке:

afbae56724794d84f7f49544634f45ef.jpeg

Это значит скрипт получения chat_id и наш бот успешно соединились, теперь можно зайти в наш телеграм бот и вести команду /start

7bd8d55609dd433313de864e76582d0d.jpeg

Как мы видим наш бот отозвался и мы получили chat_id. Теперь нам осталось написать основной скрипт отправки визуализаций. Работать он будет по очень простому принципу, мы создадим папку в которую мы хотим сохранить визуализации после рендера и запрограммируем скрипт с помощью библиотеки watchdog, который будет отслеживать все файлы с расширением .jpg в нашей папке и при появление их в нужной папке сразу будет оправлять их в наш телеграм бот. Так же создадим текстовый файл в который мы запишем следующий код и назовем его send_renders.py

Код можно скачать тут https://pastebin.com/UFbLmCbF 

6241f0a46eee3ac149c4b41d60321cfd.jpeg

2eeb25a8fab7f50f0a6fbb755f75966d.jpeg

Так же не забывайте вписать ваш API, CHAT_ID и путь к папке с которой будут отправляться ваши рендеры.

После сохранения скрипта send_renders.py открываем командную строку и запускаем скрипт командой python send_renders.py и наблюдаем следующие отклики

e8cc8fe117f9e458ff2ca6d9e8f25a65.jpeg

Это значит что скрипт работает и считывает состояние в папке. И если в папке, пока работает скрипт, появится графический файл с расширением .jpg он сразу же отправится прямиком в бот. Теперь мы можем протестировать бота, закинув в папку любое изображение.

f8b1804689c10d23826c2bc24037db5a.jpeg

11cd8ec009b67343b4abd441354cdeee.jpeg

Это всего лишь пару процентов от того функционала, которого можно добиться от такой связки. Еще можно подключить библиотеку maxPlus. MaxPlus — это официальный API для работы с 3ds Max, предоставляемый Autodesk. Он позволяет выполнять скрипты и автоматизировать задачи внутри 3ds Max с использованием Python и управлять через нашего бота. Использовать такие команды как создание сценария рендера, управление сценами, проверка статуса рендера, отчетность и другии функции. Я являюсь непосредственным автором скрипта и если у вас есть какие то идеи или предложения, можете смело писать в личку.