Как можно использовать связку Telegram + 3d max

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

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

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

Для того что бы приступить к следующей части у вас на ПК должен быть установлен 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  

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

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

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

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

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

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

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

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

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

Комментарии (45)

+4
D-d_Man
охеренеть просто!!!Прикольно, пока дропбокса и иже с ним хватает- но через телегу тоже интересно!
+3
DADL
Через бот можно делать такие вещи, как запрос файлов в папке по кодовому названию проектов, посмотреть время рендера по запросу командой. И это только малая часть. Будет время, доработаю скрипт во второй части урока еще парочкой функций.
0
Rangrr
Прикольная идея
0
ruzike
Еще если привлечь GPT для разработки идей к написанию скрипта
0
ck_petya
Это не в раздел "Реклама" надо отправить? И чем ваш способ удобней обычной электронной почты?
+3
grdesigner
Тем что поставил на рендер и ушел гулять. Картинка рендернулась, сохранилась, скрипт увидел наличие в папке нового файла и отправил его заказчику в телегу. "Работают роботы, а не человек". А ты в это время отдыхаешь культурно где то. Красота же ну.
0
ck_petya
Так для этих целей спокойно жил-поживал вот этот скрипт, Power Render Terminate. Или он уже не актуален?
+4
grdesigner
Наверное все зависит от степени статуса тех или иных документов. Я почтой пользуюсь только при отсылке и приеме договоров, счетов, ТЗ и финальных изображений. А в основном весь рабочий чат над проектом в телеге. Туда же скидывается ТЗ (которое дублируется на почту), тестовые рендеры, обсуждение, уточнения все в телеге. Поэтому мне будет удобным чтобы с пылу с жару рендеры дублировались в нужный чат в автоматическом режиме.
+3
VolodiaDesign
Я вот рендеры отправляю заказчику только после финальной части оплаты) Ну и так же можно создать просто на яндекс диске папку и туда путь рендеров указать, и скинуть ссылку заказчику сразу) Не понимаю зачем так заморачиваться и скрипт писать по этому поводу)
0
grdesigner
Например, потому что телега есть у гораздо большего количества людей, чем приложение яндекса на смартфоне/компьютере. Хотя бы потому что яндекс.диск это просто облако, одно из десятка популярных, даже в рамках одной страны. Убедить клиента установить ядиск конкретно под Вас он может просто не захотеть. А телега один из двух популярных мессенджеров в рамках целого мира, который установлен у почти 1 млрд пользователей. Безусловно это не исключает случая, когда у клиента может не быть ни того, ни другого, тем не менее, телега гораздо универсальна в быту.

Что касается отправлять рендеры после финальной оплаты. У каждого свои условия работы.
0
VolodiaDesign
Так Яндекс диск не нужно заказчику устанавливать) Он переходит по ссылке и открывается в браузере у него) Браузер есть у всех, даже у тех, у кого нет телеги)
+1
grdesigner
Не будет же клиент каждый полчаса заходить по ссылке и смотреть нет ли новых картинок.
+2
VolodiaDesign
Будет заходить, когда ему удобно) Зачем каждые полчаса именно?)
0
grdesigner
"Зачем каждые полчаса именно?)"
Период указан условно. Бот нужен для того чтобы клиент не пилил тебя исполнителя каждые N-минут, когда будет рендер. Естественно он включается когда ты не у компьютера, а рендер нужен срочно без задержек.
Когда удобно заходить работает не когда аврал. В таких случаях человек будет в браузере F5 прожимать каждый раз когда может отвлечься. Поэтому чтобы избавить клиента от ненужных действий и есть бот, который СРАЗУ пришлет уведомление о поступившем файле. БЕЗ необходимости ему туда заходить и проверять.

Честно говоря, не знаю зачем я тут сижу и пытаюсь донести полезность бота. Не хотите пользоваться Ваше право. Мне крайне полезно.
+3
DADL
Сейчас работаю над функционалом бота по отзывам тех кто уже попробовал. Сейчас одной из новых функций будет именно получение по запросу визуализаций. То есть можно зайти в бот, нажать кнопку "Получить" и визуализации из финальной директории пересылаются в телегу по запросу. Так же будет введена функция просмотра папки на наличия файлов, что бы можно было посмотреть какие файлы лежат в папке. Так же будет прикручен небольшой интерфейс для запуска с ПК.
+1
grdesigner
Звучит здорово.
+4
CGmachete
ушел гулять - в это время рендер сам отправился с артефактами)

Скрипт определенно хорош, но не глядя отправлять, дело рисковое.
0
grdesigner
Во-первых, естественно подобный скрипт для экстренных случаев, а не для рядовой работы.
Во-вторых, если я ушел гулять или лег спать, значит это происходит вне стандартных рабочих часов. Поэтому косяки могут случаться, поправлю когда начнется рабочий день.
+1
temap1912
Так вы на интерактивах то проверяйте есть ли артефакты.Вы же не вслепую работу делаете в конце концов, да и скрипт идеален для черновых рендеров
0
CGmachete
Противоречите сами себе - смысл вообще пользоваться скриптом с интерактивами (они же черновые рендеры).


Отбежать не успеете далеко. И артефакты могут возникнуть на любой стадии. Работали с рендерфермой?


Знаете что одна из нод может отвалиться?
0
temap1912
я постоянно ставлю на бач рендер, у меня ничего не отваливается
+4
Evilis
"чем ваш способ удобней обычной электронной почты?" - к примеру тем, что можно сделать так, чтобы у заказчика стабильно дзинькало с 11 ночи и до 6 утра )
0
DADL
Это если заказчик вредный! А так можно с помощью библиотеки time регулировать время отправки визуализаций )
0
grdesigner
Думаю, если это бот в телеге, то наверняка можно отправлять беззвучно. Функционал такой есть.

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

В любом случае, подобная услуга подключается в какие то экстренные моменты работы на проектом и если клиенту ночью пару раз пропиликает, ну ничего страшного. Тем более, что он в этом заинтересован.
0
RUSTTM
а тут реклама чего по вашему?
+2
dead_lyric
на 3d ground есть готовый скрипт для такой задачи. очень удобная штука прям
+3
Ananasimo
Cool, awesome!
0
Tenro
Ну вот это нифика себе!!!
0
Puss_in_boots
спасибо, думаю пригодится затея)
0
DADL
Пользуйтесь)
0
shinodem
А если подписал nda и работы утекут, к кому притензии? В тг, вся переписка храниться на сервере, даже если удалил чат с группой, как и в вк инфу можно выдрать. Учитывая что адоба сделала, лучше таких посредников в обмене файлов избегать. Да и вчера к примеру телега пару часов лежала. Скорость тг замедляет для бесплатных аков, люди там хранят варез и тд, рано или поздно халяву прикроют. а так есть приличные сервисы типа гугл драйва, яндекса, я мегой пользуюсь, где 50гб хранилище и синхронизация с папкой, куда удобнее работать через проводник, чем в тг общий список и через команды бота. И вообще тг последнее время очень глючит. На qtox никогда не было таких проблем, и не нужен номер для регистрации, нет сервера, и передача файлов на прямую, но люди там к сожалению не сидят.
+7
Yehat
А зачем такие извраты?
Если кому-то надо прям с пылу с жару в полчетвёртого ночи рендер посмотреть, можно сделать папку на каком-нибудь облаке типа мейл ру, дать на неё ссылку клиенту и настроить рендер, чтоб он туда файлы кидал. Как проснётся, так и посмотрит за утренним кофе.

Чем крута телега - это темы чатов. Вот это можно приспособить в работе над одним проектом с несколькими помещениями. Сразу становится комфортно работать любым составом.
0
strictdes
Любопытный способ в статье.
Но пока просто так и сделал - настроил на компе Яндекс диск, засинхронил в облако и рендерю в него - соответственно с телефона вижу когда в облако всё прогрузилось и отправляю ссылку клиенту...
0
Uraken
+100
+1
SOBEKA
Главное нечаянно не закинуть в папку что-то не то
+4
Zhendos92
как Дзюба, да? )
+1
cclinic
сатану можно вызвать если все это написать)))
+1
etransmit
Я на Delphi(RAD Studio) писал подобную вещь, отслеживала папку, при обнаружении в ней файлов - отправляла списком на почту yandex. ПРи том почтовый сервер должен позволять работать через сторонние приложения с ящиком(снижая безопасность ящика). Идея родилась, когда писал свой собственный диспетчер задач для обнаружения вируса майнера.
0
temap1912
Спасибо большое за код и идею, штука полезная. Но у вас ошибка в тексте, в части где мы ищем наш чат айди. Сначала написано, что назвать надо chat.id.py, а далее пишите get id py, выдает что не может найти такого файла. Ну и это можно обойти, найти в тг бот, который просто напишет ваш чат айди, без всяких сложностей, а дальше уже переходить к основному коду.
0
DADL
Там опечатка была, запуск скрипта команда python chat_id.py, можно любое другое название применить к вашему скрипту, например вы называете скрипт id.py то и запускать вы его будете python id.py
0
temap1912
Еще заметил проблему, что этот скрипт надо постоянно запускать, чтобы он работал и скидывал изображения, это геморойно конечно. Классно было бы если бы вы еще рассказали как его мб в автозагрузку ставить или хотябы ярлык создать, не все знают как это делается
0
DADL
Скоро будет доработанная версия бота с интерфейсом и автозагрузкой. Что бы можно было не парится с кодом.
0
vladimir.drobzhev90
Наверное это кому-то нужно, я не оспариваю право на жизнь данного скрипта, однако я уже 7 лет храню все файлы в облаке и к примеру когда работаю допоздна и ставлю сцену на рендер, то особого желания утром рано вставать нет, чтобы отправить рендеры. Тогда я просто кидаю заказчику в телегу ссылку на папку в облаке и пишу "утром тут появится 9 картинок" вот и всё и даже скрипт придумывать не нужно и можно спокойно идти спать и утром не подрываться.
0
etransmit
Как вариант синхронизировать папко с облаком Яндекс Диск. Мы только что так сделали, рабочий стол с ПК синхронизировали с облаком.
0
DADL
Через облако можно, но я считаю это рудиментом прошлого десятилетия. Через телеграм бот это уже совсем другой уровень именно взаимодействия, это как бы среда в среде в которой мессенджер будет совмещен с приложениями. Я уже дописал финальную версию скрипта с интерфейсом и через пару дней выложу.