Сообщество программистов Autodesk в СНГ
ADN Club => Inventor API => Тема начата: Vladislav от 17-08-2018, 14:34:40
-
Здравствуйте. Разрабатываю конвертер графики из Inventor в формат своей программы. Результат отличается от ожидаемого. Он представлен во вложенном файле.
Графическое представление деталей внутри отдельных подсборок конвертируется нормально. То есть взаимное расположение деталей сохранено, а вот подсборок-нет.
Насколько я понял, детали внутри подсборки прдставлены в своей внутренней системе координат.
Как преобразовать эти внутренние координаты в глобальные (координаты сборки самого верхнего уровня)? Домножение на матрицу Transform не помогает.
Заранее благодарю за ответ.
-
Так конечно сходу не поймешь без "причесанного" примера.
При вставки подсборки в сборку создаются дополнительные прокси-объекты, видимо там лежат нужные данные.
Поэтому, могу предположить что нужно порыться в объекте:
AssemblyComponentDefinition.Occurrences
внутренности подсборки должны быть в объекте:
SubOccurrences
и там уже смотреть
ComponentOccurrenceProxy.Transformation
-
А матрицу Transformation нужно брать для подсборки или отдельно для каждой детали внутри подсборки?
И можно ли брать ComponentOccurence.Definition.Occurrences вместо SubOccurences, если ComponentOccurence представляет подсборку?
Спасибо.
-
А матрицу Transformation нужно брать для подсборки или отдельно для каждой детали внутри подсборки?
А это от ваших задач зависит.
В первом приблежении: SubOccurences это экземпляр подсборки в конкретной сборке.
если деталь внутри подсборки была установлена в начало координат то объект Occurrences.Transformation всегда будет выдавать нулевую матрицу. А вот в разных сборках эта подсборка может быть установлена в разные места относительно начала координат и вот объект SubOccurences.Transformation уже дает именно матрицу смещений относительно начала координат верхней сборки.
Это все не трудно пронаблюдать на простой сборке с подсборкой.
-
Добрый день,
У меня похожий вопрос, но в обратную сторону. )
Пытаюсь перенести геометрию из сборки в деталь, как понимаю нужно при переносе использовать TransformBy, но какую матрицу использовать при таком переносе?
-
Завтра на свежую голову
-
Нужно конкретный пример в отдельном топике