TGViewer
Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter @phpproglib · 10.5K subscribers
Post #5647 2.19K
Сказ о том, как один программист себе мебель из ДСП на PHP программировал

Автор столкнулся с типичной проблемой — готовая мебель из ДСП редко идеально вписывается в интерьер, функционал и бюджет. Решив взять дело в свои руки, он отказался от визуального проектирования и создал собственную библиотеку для проектировки мебели программным способом.

Основная идея — описывать мебель как набор параллелепипедов с понятными размерами: ширина, высота, глубина. Вместо классического 3D-моделирования с визуальным интерфейсом используется скриптовый подход, где мебель строится и модифицируется через код на PHP. Это упрощает внесение изменений и позволяет генерировать точные схемы для распила.

Для визуализации и рендеринга моделей применяется OpenSCAD — легкий инструмент, который работает с текстовыми файлами, описывающими геометрию. Автор создал библиотеку, которая генерирует SCAD-файлы из PHP-кода, добавляя новые возможности для удобной работы с мебельными деталями и их расположением.

🔗 Хабр
  • ❤ 3
More from @phpproglib
  1. Sep 29, 2026💡 Laravel-фича, которая спасает тесты от случайных запросов Http::preventStrayRequests()…
  2. Sep 28, 2026🔐 ramsey/uuid — UUID без самописного кода Библиотека помогает генерировать, парсить и вал…
  3. Sep 28, 2026🤔 Что выведет код? ❤️ — 1 🔥 — 2 👍 — 12 👾 — Fatal error 👇 Правильный ответ (нажми, что…
  4. Sep 25, 2026🌞 PHP умеет искать в массиве без foreach В PHP 8.4 появились array_find(), array_find_key…
  5. Sep 24, 2026👍 5 способов встроить AI в Laravel Laravel AI SDK позволяет добавлять AI-функции прямо в…
  6. Sep 23, 2026🛠 Symfony 8.2 научился автоматически генерировать JSON Schema для конфигурации приложения…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →