☝️ 📎 Скажете не применимо... ? ... и тут вы глубоко ошибаетесь! ...
☝️ 📎 Скажете не применимо... ? ... и тут вы глубоко ошибаетесь! Вот пожалуйста проект для Rhino+grasshopper. Определение автоматически **расставляет светильники внутри комнаты** по прямоугольной сетке: 1. Строит прямоугольную сетку по габаритам комнаты (количество ячеек вычисляется из площади и периметра). 2. Берёт **центры ячеек** сетки. 3. Проверяет, какие центры находятся **внутри контура комнаты** (тест «точка/регион»). 4. Удаляет центры за пределами комнаты (Cull Pattern). 5. В каждой оставшейся точке строит **светильник** (бокс 0.6 × 0.6 × 0.5 м). 6. Поднимает светильники на высоту подвеса **3.000 м** (Move по Z). ## . Пошаговый алгоритм (как это работает) 1. **Crv** — пользователь подаёт замкнутую кривую контура комнаты. 2. **Boundary Surfaces** строит поверхности комнаты; **Bounding Box** — габаритный бокс. 3. **Box Properties** (через контейнер Box) получает диагональ бокса → **Deconstruct** разлагает её на X/Y/Z (длина/ширина/высота комнаты). 4. **Evaluate** считает `x*y/(z*(x+y))` (площадь/периметр, z = 2.2) — базовое число для расчёта количества светильников. 5. Цепочка **Multiplication/Division/Round/Square Root** с коэффициентами (324.529, 5131.497, 0.438, 1.4) превращает это число в **количество ячеек сетки** по X и Y (Extent X/Y) и **размеры ячеек** (Sx/Sy). 6. **Deconstruct Brep** разбирает бокс на вершины; **List Item** (индекс 0) берёт первую вершину — угол комнаты — как **плоскость сетки**. 7. **RecGrid** строит прямоугольную сетку `Ex × Ey` ячеек размером `Sx × Sy`. 8. **Area (второй)** вычисляет **центроиды** всех ячеек сетки. 9. **Point in Curves** проверяет каждый центроид: 0 = снаружи, 1 = на границе, 2 = внутри. 10. **Equality** сравнивает Relationship с порогом **2.0** → маска `true` только для «внутри». 11. **Cull Pattern** удаляет центроиды снаружи/на границе — остаются только центры ячеек внутри комнаты. 12. **Center Box** строит светильник 0.6×0.6×0.5 в каждом оставшемся центре. 13. **Unit Z → Amplitude (3.000) → Move** поднимает светильники на высоту подвеса. 📌