🚀 Как я перестал считать «на глаз» и собрал профессиональный 3D-калькулятор ЧАСТЬ 2
Как я за неделю сделал калькулятор себестоимости 3D-печати в Telegram — без опыта в программировании
Предыстория
Я занимаюсь 3D-печатью всего полгода. Начинал как большинство — печатал для себя, потом начал продавать. И вот тут впервые столкнулся с вопросом который мучает наверное каждого начинающего печатника: а сколько это вообще стоит?
Казалось бы — простой вопрос. Но когда начинаешь считать вручную — вес модели, цена пластика, время печати, электричество, износ принтера, упаковка, брак — голова идёт кругом. Ошибёшься на пару цифр и продаёшь себе в убыток, сам того не понимая.
Начал искать готовые решения. И вот тут меня ждало разочарование.
Почему существующие калькуляторы меня не устроили
Я перепробовал всё что нашёл в интернете. Калькуляторы в Excel, онлайн-сервисы, десктопные программы. И у каждого была одна или несколько критических проблем.
Проблема первая — дизайн. Большинство калькуляторов выглядят так, будто их делали в 2005 году. Топорный интерфейс, кнопки которые едва нажимаются, текст мелкий, поля расположены как попало. Пользоваться неудобно даже на компьютере.
Проблема вторая — мобильные устройства. Я печатаю, общаюсь с клиентами и считаю стоимость в основном через телефон. Практически все найденные калькуляторы на мобильном либо не открываются нормально, либо кнопки и поля "плывут" и перекрывают друг друга. Пользоваться ими через телефон просто невозможно.
Проблема третья — доступность. Если скачиваешь десктопную версию — она теряется среди десятков иконок на рабочем столе. Каждый раз ищешь через поиск. Это мелочь, но раздражает.
И тогда у меня появилась идея.
Идея — калькулятор в Telegram
Telegram установлен у 99% людей. Телефон всегда в руке. Значит если сделать калькулятор прямо внутри Telegram — он всегда будет под рукой, в два клика, без поиска иконок на рабочем столе и без проблем с мобильной вёрсткой.
Telegram Mini App — это веб-приложение которое открывается прямо внутри мессенджера. Выглядит как нативное приложение, работает на любом устройстве, не надо ничего скачивать и устанавливать.
Идея была простая и понятная. Оставалось только реализовать. И тут начиналось самое интересное — я не умею программировать от слова совсем. До этого момента я никогда не писал ни строчки кода.
Как я это сделал — неделя работы
Я решил попробовать написать калькулятор. Это был мой первый опыт с кодом вообще — я не знал ни HTML, ни JavaScript, ничего. Но я точно знал что хочу получить на выходе.
Начал с простого — описал идею, что должен делать калькулятор, как должен выглядеть. Постепенно добавлял функции, исправлял ошибки, дорабатывал интерфейс. Каждый день — новый кусок функционала.
Что в итоге получилось за неделю:
Дизайн
Сразу решил что калькулятор должен выглядеть современно. Сделал стеклянный эффект — так называемый glassmorphism — тёмный фон с размытыми фиолетовыми пятнами, полупрозрачные карточки с эффектом матового стекла. Это не просто красиво — такой интерфейс приятно открывать каждый день.
Адаптивная вёрстка работает одинаково хорошо на телефоне и на компьютере. Никаких "плывущих" кнопок.
Функционал расчёта
Три вкладки:
- Себестоимость — основной расчёт
- Цена — финальная цена с наценкой для клиента
- Файл — анализ файлов из слайсера
В расчёт себестоимости входит всё что влияет на реальную стоимость печати:
- Вес модели и цена пластика за килограмм
- Время печати и тариф на электроэнергию
- Амортизация принтера в час
- Упаковка
- Процент брака
База принтеров
Добавил все популярные принтеры с реальными значениями мощности и амортизации:
- Вся линейка Bambu Lab (X1-Carbon, P1S, P1P, A1, A1 mini)
- Creality K1, K1 Max, K1C, Ender 3 V3 во всех вариантах
- Anycubic Kobra 3, Kobra 2 Neo, Kobra 2 Max
- Elegoo OrangeStorm Giga, Neptune 4 Max
- Flashforge Adventurer 5M/Pro
- Prusa MK4S
- Универсальный профиль для любого принтера
Отдельно продумал логику амортизации. Флагманы стоят в разы дороже бюджетных принтеров — значит и амортизация у них должна быть выше. X1-Carbon с лидаром и дорогими расходниками — это не то же самое что Ender 3.
Многоцветная печать (AMS/ACE)
Отдельно проработал расчёт для многоцветной печати. Когда включаешь AMS — появляются дополнительные поля:
- Количество цветов
- Количество слоёв со сменой цвета
- Расход пластика на каждую смену (продувка)
- Вес отходов
- Вес башни чистки (Prime Tower)
Важный момент — при многоцветной печати растёт и износ принтера, потому что механика работает активнее. Реализовал логику: каждый дополнительный цвет добавляет +30% к базовому износу. 2 цвета — ×1.3, 3 цвета — ×1.6, 4 цвета — ×1.9.
Анализ файлов .3mf и .gcode
Это пожалуй самая крутая фича. Можно загрузить файл прямо из слайсера — и калькулятор сам вытащит оттуда:
- Вес модели
- Время печати
- Количество цветов
- Количество смен цвета
- Данные по каждому филаменту (цвет, вес)
Поддерживаются все популярные слайсеры: Bambu Studio, OrcaSlicer, PrusaSlicer, Cura, Creality Print, Anycubic Slicer. Каждый определяется автоматически и отображается со своим цветным бейджем.
После анализа файла — нажимаешь "Применить в калькулятор" и все данные автоматически заполняются в нужные поля. Остаётся только указать цену пластика и нажать считать.
Мультивалютность
Калькулятор поддерживает пять валют с автоматическим курсом:
- 🇷🇺 Российский рубль (₽)
- 🇺🇸 Доллар ($)
- 🇪🇺 Евро (€)
- 🇰🇿 Казахстанский тенге (₸)
- 🇧🇾 Белорусский рубль (Br)
Курсы подтягиваются автоматически с открытого API. При переключении валюты — все денежные поля пересчитываются автоматически. Если API недоступен — работают резервные курсы прописанные в коде.
Это добавил по просьбам пользователей — калькулятором активно пользуются в Казахстане и Беларуси.
Сложности которые пришлось решать
Расчёт в разных валютах
Первая версия конвертации была сломана — при переключении с рублей на доллары цифры пересчитывались неправильно. Пришлось переделать логику: все денежные поля хранят значения в текущей валюте, и при переключении каждое поле пересчитывается через актуальный курс.
Парсер файлов
Разные слайсеры записывают данные в файлы по-разному. Bambu Studio использует свой формат slice_info.config внутри архива .3mf, PrusaSlicer пишет данные в комментарии GCode, Cura использует свой формат. Пришлось написать парсер с несколькими уровнями fallback — если один формат не распознался, пробует следующий.
Амортизация при AMS
Изначально при включении AMS добавлялся фиксированный +30% к износу независимо от количества цветов. Потом понял что это неправильно — 4 цвета это совсем не то же самое что 2. Переделал на динамическую логику: каждый дополнительный цвет даёт +30% к базовому износу.
Быстрый расчёт цены для клиента
Отдельно хочу отметить одну удобную мелочь которая экономит время при общении с клиентами. Во вкладке "Цена" есть поле наценки в процентах — вводишь свой процент и сразу видишь финальную цену для клиента с учётом всех затрат и желаемой прибыли.
Там же кнопка "Скопировать расчёт" — нажимаешь и в буфер обмена попадает готовое сообщение вида:
📦 Расчет заказа:
— Модель: 45г.
— Время: 3.5ч.
💰 Итоговая стоимость: 890 ₽
Переходишь в переписку с клиентом — вставляешь — отправляешь. Никаких лишних действий, никаких калькуляторов в заметках и ручного набора цифр. Посчитал — скопировал — отправил. Всё прямо в Telegram не выходя из мессенджера.
Что узнал от пользователей
После публикации начали приходить отзывы и просьбы. Самые полезные:
Добавить тенге и белорусский рубль — сразу добавил, оказалось много пользователей из Казахстана и Беларуси.
Пересмотреть амортизацию — пользователи указали что цифры не соответствуют реальности. Провёл анализ — действительно, флагманы были недооценены. Обновил все значения основываясь на реальных ценах принтеров и ресурсе работы.
Добавить Creality Print и Anycubic Slicer — добавил в парсер, теперь файлы из этих слайсеров тоже распознаются.
Технические детали
Калькулятор — это один HTML файл весом около 50 КБ. Никаких фреймворков, никаких зависимостей кроме нескольких подключаемых библиотек:
- Tailwind CSS — для стилей
- JSZip — для чтения .3mf архивов
- Telegram WebApp API — для интеграции с мессенджером
Хостинг — GitHub Pages, бесплатно. Работает как Telegram Mini App в боте https://t.me/Pechatniki_3D_Calc_Bot.
Результат
За неделю работы — человек без опыта в программировании — я получил:
✅ Полноценный калькулятор себестоимости с красивым современным дизайном
✅ Работает на телефоне так же хорошо как на компьютере
✅ Анализирует файлы из 6 слайсеров
✅ Поддерживает 5 валют с автокурсом
✅ База из 20+ популярных принтеров с реальными данными
✅ Всегда под рукой в Telegram
Калькулятором уже пользуются больше 1000 человек, репосты пошли по другим сообществам сами собой.
Попробовать и пользоваться!
Бот в Telegram: https://t.me/Pechatniki_3D_Calc_Bot
Канал: https://t.me/pechatnikjurec
ТАК ЖЕ ХОЧУ ЗАМЕТИТЬ, КАЛЬКУЛЯТОР АБСОЛЮТНО БЕСПЛАТНЫЙ, ПРОСТО БЕРИТЕ И ПОЛЬЗУЙТЕСЬ!
Буду рад отзывам и предложениям — всё что просят пользователи стараюсь реализовывать. Калькулятор живой и продолжает развиваться.
Считайте правильно!
Еще больше интересных статей
"Плавающая" неисправность головы, или не повторяйте ошибок.
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Про компрессор-отсосиновик...
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Наблюда-Ski 04.6: Наращиваем в длину, или Фьюз и не только
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Недавно было несколько тем по сращиванию прутков,
и для начи...











Комментарии и вопросы
Такая же проблема на QIDI Q2.....
Недавно основателя Википедии з...
Приветствую Артём!Очень рад ви...
Здравствуйте, я с вопросом о т...
Начал пытаться печатать из PET...
Есть модель у бамбуков Р1Р - с...
Здравствуйте.На Flashforge 5M,...