Вращение bounding box
- В этой теме 10 ответов, 3 участника, последнее обновление 8 лет, 10 месяцев назад сделано Khasan Mamaev.
-
АвторСообщения
-
Привет, друзья,
правда ли я понимаю, что это невозможно? Интересует возможность повернуть bounding box сначала в плоскости yz, а потом в плоскости xy.
В целом задача такая: хочу создать схему системы вентиляции (изометрия, наподобие того, что получается простым 3d видом).
С вращением разреза (то есть вектора, по которому потом этот разрез будет создан) проблем нет. Но подрезка вида разреза создаётся по boundingbox, поэтому хотелось бы закрутить его. В противном случае, приходится бросать bounding box как, например, min(-5000, 0, 0), max(5000, 5000, 5000), с последующей ручной настройкой границы подрезки и смещения дальнего предела секущего диапазона.
Просто 3d вид не интересует, т. к. он малопригоден для последующего оформления чертежа.Сейчас, почитаю, спасибо! Помню, уже находил эту статью, когда ковырялся в нодах динамо, но не стал знакомиться с ней, т. к. на тот момент ещё не представлял себе, что такое ревит апи и питон.
Вроде бы как стандартный нод BoundingBox.ByGeometryCoodinateSystem
может вращать, но, так же находил, что этот нод некорректно работает(-ла?), и что в dynamo 0.9 этот нод пофиксили. Но повернуть так и не получилось (если этим нодом вообще поворот подразумевается).
А это чья коробка? Ревита или Динамо?
А я не знаю :с Пусть будет две коробки — и для ревита и для динамо…
это по ходу динамовская, а тебе нужна ревитовская
Привет, kulkul,
неа, не работает в конце схема… Пишет, что точки некоторые совпадают.
А что в итоге должно получиться?
Solid
, и что с ним делать потом..?Как писал в оп-посте, сначала я поворачиваю разрез в плане, потом поворачиваю его *в разрезе*, т. е. он получается немного “склоняющимся”, “наваливающимся” на плоскость
xy
.
Для создания разреза необходимо указатьboundingbox
. Но этотboundingbox
должен быть указан относительно системы координат разреза! Т. е. для разреза этоMinPoint(Х_левый нижний угол разреза, Y_левый нижний угол разреза, 0)
,MaxPoint(Х_верхний правый угол разреза, Y_верхний правый угол разреза, смещение дальнего предела секущего диапазона)
.
“Глобальный”boundingbox
не подойдёт, полученные координатыMaxPoint
иMinPoint
всё равно придётся как-то преобразовывать в систему координат разреза (которая уже и так довольно сильно закручена). Но это не единственный недостатокboundinbox
, который я выявил в процессе решения задачи (в итоге отказался от рассмотренияboundingbox
в принципе).
Boundingbox
это в принципе неизменяемый элемент, который является параллелепипедом, характеризуемый толькоMinPoint
(нижняя левая ближайшая точка) иMaxPoint
(верхняя правая наиболее удалённая точка), плоскости всегда параллельныйxy
,yz
,xz
.Требовалось: запускаю скрипт, по параметру имени системы выбирается система вентиляции в проекте. Создаётся разрез (изометрия системы воздуховодов), при этом граница подрезки автоматически подгоняется по системе, равно как и смещение дальнего предела секущего диапазона.
В итоге задачу решил так:
1. Создать заведомо больше потенциальной геометрии проектаcuboid
(например,MinPoint(-100000, -100000, -100000)
,MaxPoint(100000, 100000, 100000)
.
2. Закрутитьcuboid
как нужно (сначала примерно -30° в плоскостиyz
, потом 45° в плоскостиxy
).
3. Взорватьcuboid
, в итоге получается 6surface
.
4. Питон-скриптом двигаю каждыйsurface
, после каждого сдвига проверяю, есть ли пересечение с элементами системы вентиляции.
4.1. Если пересечение есть, предыдущее положениеsurface
принимается как окончательное.
5. Находятся некоторые требуемые пересеченияsurface
. Получаются линии, в свою очередь пересекаются линии, получаются точки.
6. Из этих точек получены нормальные “относительные” координаты, которые можно сразу передать в создание разреза. Так же одна из этих точек является базовой, куда будет перемещена повёрнутая система координат разреза, и откуда будет этот разрез создаваться.
7. …
8. На выходе получился закрученный разрез с подогнанной подрезкой по требуемым элементам, при этом так же подогнано смещение дальнего предела секущего диапазона.Тулетин, а слабо видео записать? Можно без озвучки
Ну можно, если интересно… Только я никогда не писал скринкасты эти…
ну дык и мы не писали раньше, это же не повод не начинать) я, и многие мои знакомые используем программу Camtasia. Наверняка есть другие и лучше, но эта пока удовлетворяет
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.