Последние сообщения

Последние сообщения

Страницы: 1 ... 8 9 [10]
91
Добрый день.
Подскажите пожалуйста, почему в стиле мультивыноски переменная userMLeaderStyle.ArrowSymbolId=null ?
Я точно уверен что стилю назначен символ стрелки (встроенный символ, не пользовательский блок)
Мне надо получить ArrowSymbol из внешнего файла, который содержит все стили мультивыносок
92
Угол поворота я вычислил просто. Получил Xaxis у обоих CoordinateSystem3D (локальная и глобальная) и через GetAngleTo вычислил угол.
93
Но тут я думаю просто буду склыдвать у всех блоков Rotation, а потом поворачивать то, что надо.
Матрица BlockTransform учитывает поворот и масштабирование блока. Только для самого атрибута следует учитывать поворот.
94
Lemieux,
А ты учел, что на самом нижнем уровне матрицу BlockTransform не нужно применять? Атрибут не подчиняется этому преобразованию.
Да, это я учёл, но забыл свойства матриц. Всем спасибо! Всё работает. Осталось решить вопрос с определением поворота. Но тут я думаю просто буду склыдвать у всех блоков Rotation, а потом поворачивать то, что надо.

PS Так, я тут поэкспериментировал. А я правильно понимаю, что с помощью CoordinateSystem3D можно узнать поворот и "направление" куда смотрит блок?
95
Lemieux,
А ты учел, что на самом нижнем уровне матрицу BlockTransform не нужно применять? Атрибут не подчиняется этому преобразованию.
96
Тут кстати важную роль играет в какой последовательность идут преобразования.
Именно. И соответственно перемножение матриц должно быть в определенном порядке.
97
Ну я в свое время не перемножал, когда вылезла рекурсия просто создал список трансформаций и при новом вложении просто добавлял инвертированную матрицу в список, а в конце просто трансформировал объект в цикле foreach матрицами из получившегося списка, ну тут думаю примерно тоже самое что и перемножение, но с матрицами я не особо знаком так что в такие дебри лезть не стал. Тут кстати важную роль играет в какой последовательность идут преобразования.
98
Находишь всю цепочку вложений и используя метод BlockTransform получаешь матрицы преобразования.
Пример рекурсивного использования: https://adn-cis.org/forum/index.php?topic=2933.msg12071#msg12071
У меня почему-то через матрицы трансформаций не получается найти правильные координаты.
Ведь я правильно понимаю, что если у меня вложенные блоки, то я для всех блоков беру BlockTransform и переумножаю их?

https://help.autodesk.com/view/OARX/2022/ENU/?guid=GUID-4F71D4FB-FBF4-4EB3-B546-24B8858FBB94
Вот по этому способу я так же получил результат, что и простое умножение матриц.

Единственное решение, которое я нашёл это через Position получать координаты вставки блоков, отслеживать поворот блока и, если блок повернулся, то пересчитывать координаты вложенных блоков через полярные координаты.
99
Находишь всю цепочку вложений и используя метод BlockTransform получаешь матрицы преобразования.
Пример рекурсивного использования: https://adn-cis.org/forum/index.php?topic=2933.msg12071#msg12071
100
Всех приветствую. Кто-то решал проблему как можно глобальную координату вложенного блока при использовании NestedEntity?
Если блоки располагаются друг в друге не поворачиваясь, то задача простая. Но стоит один из родительски блоков повернуть, то координаты надо считать совсем иначе.
Прикладываю картинку - Есть блок с атрибутом А1 (Выделен красным). Пользователь щёлкает только по атрибуту. Этот блок вложен в другой блок, который вставляется в другой блок и, при этом, поворачивается. И нужно узнать хотя бы глобальные координаты синей точки. А в идеале глобальный поворот.

Страницы: 1 ... 8 9 [10]