🚀 Как я перестал считать «на глаз» и собрал профессиональный 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: Наращиваем в длину, или Фьюз и не только
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Недавно было несколько тем по сращиванию прутков,
и для начи...











Комментарии и вопросы
Да какая разница ии или нет? И...
А я так и считаю приблизительн...
Так он не для смолы, а еще оче...
Доброе время суток! Профи в CA...
Привет всем! В промывочном "ве...
Добрый день.Настроил станок, о...
привет.помогите разобраться по...