PrintQuote 3D — калькулятор себестоимости: от ступора с первым заказом до релиза софта с помощью Cursor

Меня зовут Ксения, я работаю в IT системным аналитиком. Код руками сама не пишу — моя задача проектировать архитектуру, собирать требования и выстраивать логику систем.

Это короткая история о том, как первый коммерческий заказ на 3D-печать превратился в полноценное десктопное приложение на Kotlin Multiplatform, собранное через Cursor.

Ступор с первым заказом

Я купила 3D-принтер (Bambu Lab P1S) для хобби. Спустя пару месяцев знакомый попросил напечатать деталь и спросил цену. И я зависла.

Оказалось, что нормальных инструментов для оценки заказа практически нет:

  • "Умножай вес пластика на 3» — популярный совет в сети, гарантирующий работу в минус. Деталь на 20 грамм может печататься 8 часов с поддержками и прогревом стола, а ваза на 300 грамм вылетает за 2 часа. Считать только вес нельзя.
  • Таблицы в Excel — требуют перед каждым клиентом вручную перебивать минуты, граммы и цены катушек из слайсера.
  • Облачные CRM — перегруженные комбайны со складами и накладными, которые требуют обязательной регистрации и подписки по 500 ₽/мес.

Как аналитик, я решила автоматизировать эту цепочку: от файла нарезки в слайсере до красивой сметы клиенту.

Что делает PrintQuote 3D

  1. Прямой парсинг .3mf (Bambu Studio / OrcaSlicer): Никакого ручного ввода. Файл нарезки — это zip-архив с XML. Приложение само достает точное время, вес деталей, число копий, катушки и превью стола.
  2. Честная производственная себестоимость: Считает 3 тарифа электричества (пик/полупик/ночь), амортизацию оборудования, износ сопел и прогрев стола (который учитывается 1 раз и не умножается на тираж). Главное — технологический брак заложен в знаменатель формулы, чтобы неудачные попытки не вычитались из кармана мастера.
  3. Предложение клиенту в мессенджер за 1 клик: Программа генерирует PNG-карточку заказа в высоком разрешении и сразу копирует в системный буфер обмена (Ctrl + V в Telegram).
  4. 100% Offline-first: Сейчас все данные и база катушек хранятся локально на вашем ПК в JSON (на стадии беты без сложных связей это проще и быстрее, а под будущий модуль истории заказов будет переезд на локальную SQLite). Никаких чужих облаков и обязательных регистраций.
Настройки мастерской: тарифы электроэнергии, экономика принтера, ручная работа и процент брака
Настройки мастерской: тарифы электроэнергии, экономика принтера, ручная работа и процент брака
Клиентская карточка копируется сразу в буфер обмена — остается нажать Ctrl+V в чате с заказчиком
Клиентская карточка копируется сразу в буфер обмена — остается нажать Ctrl+V в чате с заказчиком

Зоопарк нейросетей: как я случайно построила отдел разработки из ИИ

Самое интересное началось, когда проект перестал быть простым скриптом. Я быстро поняла, что одной модели недостаточно, и у меня стихийно сложилась настоящая «команда разработки»:

  • Grok в роли быстрого джуниора: я отдавала ему наброски задач, он быстро генерировал черновой код. Но у него была беда: Грок постоянно норовил что-то «додумать» от себя, дописать странную логику, о которой его вообще не просили, или уверенно придумать несуществующую функцию.
  • Gemini в роли Senior / Tech Lead: к ней я шла на код-ревью. Gemini отлавливала отсебятину Грока, вычищала костыли и решала сложные архитектурные задачи.
    1. Архитектура: она целиком пересобрала проект в мультиплатформенный (Kotlin Multiplatform), аккуратно разложив код на commonMain (общая логика и формулы) и desktopMain (платформенные штуки вроде работы с окнами и буфером обмена).
    2. DevOps: так как в серверах я до этого не разбиралась, именно Gemini по шагам вела меня через настройку инфраструктуры — объясняла, как завернуть сервисы в Docker, настроить Nginx, прописать проксирование метрик и накатить SSL-сертификаты.
  • Claude Sonnet в роли штатного юриста: Политику конфиденциальности под требования 152-ФЗ и статус самозанятой я тоже не покупала у юристов. Я скормила Клоду всю схему работы с данными (что файлы лежат локально, реальный IP заменяется на 127.0.0.1, а в сеть идут только технические логи OpenPanel) — и он собрал строгий, юридически грамотный документ, который теперь висит у меня на сайте.

Я оставалась в своей привычной роли системного аналитика: проектировала структуры данных, отлавливала граничные случаи и следила, чтобы эти виртуальные "разработчики" не ушли в астрал.

Монетизация: почему я сознательно отказалась от подписок

Сейчас у проекта идет открытый бесплатный бета-тест. Но на релизе я решила не внедрять ежемесячные подписки.

Для частных мастеров и небольших студий подписки по 400–600 ₽ в месяц за утилиту, нужную пару раз в неделю — сильный раздражитель.

Моя модель:

  • 14 дней триала после релиза;
  • Затем — единоразовая покупка бессрочной лицензии (Lifetime) по цене одной катушки пластика (~1 500 ₽) без регулярных списаний.

Кстати, о первом запуске: сначала я пошла с постом на Пикабу и словила там пермабан через 5 минут за «несанкционированную рекламу пет-проекта». Это был отличный урок по выбору адекватных площадок для старта.

Ссылки и открытая бета

Бета-версия полностью бесплатна и доступна для Windows и macOS.

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

Спасибо всем, кто дочитал!
Заглядывайте на сайт и делитесь впечатлениями, если решите потестировать!