Конструктор корпусной мебели
Мебель Клик
Один конструктор — любой прямой распашной шкаф: прихожая, книжный стеллаж, узкий пенал или тумба. Меняете размеры — модель и детали пересчитываются вместе.
Устройство конструктора Мебель Клик
Мебель Клик (M-Click) — конструктор корпусной мебели, который целиком работает в браузере. Здесь — как он устроен изнутри: где считается шкаф, какие мебельные правила зашиты в расчёт и из чего он собран. Как им пользоваться, рассказывает сайт конструктора.
- Ввод рукамичисла
- Файл JSONпроверяется теми же правилами
- Проект в браузерепереживает перезагрузку
Расчётное ядро
на входе числа, на выходе детали с размерами и положением
без React, three.js и хранилища
читают один и тот же результат
- 3D-сцена
- Таблица деталей
- Панели настроек
Всё считается в браузере. Сервера с расчётами у конструктора нет: модель в 3D, таблица деталей и PDF собираются прямо в браузере. Регистрации нет, и проект никуда не отправляется.
Одно расчётное ядро
Вся геометрия шкафа считается в одном модуле — расчётном ядре. Оно чистое: без React, three.js и хранилища, на входе числа, на выходе детали с размерами и положением. 3D-сцена, таблица деталей, PDF и панели настроек читают один и тот же результат. Раньше каждая из этих частей считала шкаф по-своему: геометрия жила в четырёх файлах и успела разойтись. С одним ядром расходиться нечему.
Число деталей и проверку листа у шкафов на странице проекта посчитало это же ядро.
Проект — у вас
Проект хранится в браузере и переживает перезагрузку страницы. Его можно выгрузить файлом JSON и открыть кнопкой «Открыть проект (JSON)» на стартовом экране — в другом браузере получится тот же шкаф. Файл при открытии проверяется теми же правилами, что и ввод руками, поэтому испорченный файл расчёт не ломает.
PDF — это шапка проекта, эскиз шкафа из 3D-сцены и таблица деталей в пильных размерах.
Мебельные правила в расчёте
Пильный размер
В таблицу деталей и в PDF идёт размер, по которому деталь пилят: габарит минус толщина кромки с тех сторон, где она клеится.
Кромка по граням
Какие грани кромить, задано у каждой детали: фасад — по периметру, полка и перегородка — только спереди, боковина — спереди, сзади и снизу. Задняя стенка из ДВПО не кромится.
Проверка листа
Каждая деталь сверяется с форматом листа ЛДСП с учётом поворота. Та, что не влезает, краснеет прямо в 3D и помечается в таблице.
Створка по своей ширине
Каждая створка считается по своему проёму. Слишком широкая подсвечивается в 3D, а в панели появляется кнопка «Сделать 2 створки».
Стек
- React и TypeScript
- сборка Vite
- стили Tailwind CSS
- состояние zustand
- 3D-сцена three.js через React Three Fiber и drei
- PDF jsPDF
Два продукта в одном репозитории
В одном репозитории живут два продукта: сам конструктор и его сайт — статические страницы из своего генератора. Код они не делят, общее у них только имя, значок и цвета, и работает каждый в своём контейнере.
Зачем он появился
Конструктор появился, когда мне понадобился шкаф под свою стену, а мебельные программы просили скачать, зарегистрироваться и оставить телефон.
Вопросы и проблемыв группе Panda Koding, тема Мебель Клик: Telegram ↗ · MAX ↗
Программы бесплатные
Я стараюсь делать их доступными и удобными: они не показывают рекламу и не собирают данные о вас. Если что-то из этого вам пригодилось, на странице поддержки можно сказать спасибо.