GeometryExtentsBestFit()

Автор Тема: GeometryExtentsBestFit()  (Прочитано 1434 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн AtomohodАвтор темы

  • ADN OPEN
  • ****
  • Сообщений: 426
  • Карма: 1
GeometryExtentsBestFit()
« : 06-10-2021, 11:23:21 »
Здравствуйте

Прошу пояснить для чего применяется метод GeometryExtentsBestFit()? Судя по описанию в help (см. приложение) должен вернуть копии объектов, но по сигнатуре возвращает Extents3d. Так для чего этот метод создан?

Оффлайн avc

  • ADN Club
  • *****
  • Сообщений: 735
  • Карма: 149
    • Мои плагины к Автокаду
Re: GeometryExtentsBestFit()
« Ответ #1 : 06-10-2021, 11:38:55 »
Тот случай, когда название говорит больше чем описание. Похоже описание нечаянно скопипастили с Explode. Очевидно, что возвращает габариты, а не копии примитивов. Как и простой GeometryExtents. Но что за BestFit - не понятно. Неужели ищет развернутую систему координат, в которой габариты будут наименьшими? Что-то не верится... По какому критерию best? Надо пробовать...

Отмечено как Решение Atomohod 07-10-2021, 14:53:27

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13064
  • Карма: 1684
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: GeometryExtentsBestFit()
« Ответ #2 : 06-10-2021, 17:41:12 »
Но что за BestFit - не понятно. Неужели ищет развернутую систему координат, в которой габариты будут наименьшими? Что-то не верится... По какому критерию best? Надо пробовать...
Думаю, что просто более точно вычисляет габаритный контейнер. И соответственно делает это медленнее, чем обычный GeometryExtents.
Как обычно смотрим метод в ObjectARX для AcDbBlockReference::geomExtentsBestFit:



Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн AtomohodАвтор темы

  • ADN OPEN
  • ****
  • Сообщений: 426
  • Карма: 1
Re: GeometryExtentsBestFit()
« Ответ #3 : 07-10-2021, 14:54:45 »
Спасибо.
То есть реальных случаев необходимости его применения нет - можно обойтись обычным GetExtents?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13064
  • Карма: 1684
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: GeometryExtentsBestFit()
« Ответ #4 : 07-10-2021, 15:12:46 »
То есть реальных случаев необходимости его применения нет - можно обойтись обычным GetExtents?
Зависит от постановки задачи.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн avc

  • ADN Club
  • *****
  • Сообщений: 735
  • Карма: 149
    • Мои плагины к Автокаду
Re: GeometryExtentsBestFit()
« Ответ #5 : 07-10-2021, 16:58:07 »
Где-то на форуме была уже тема, как оценить габариты блока и поднимался вопрос, что нельзя просто габариты примитивов трансформировать по матрице вставки блока, а надо каждый примитив трансформировать и потом уже получать габариты. И так рекурсивно вглубь вложены блоков... Оказывается есть штатное средство, которое именно это и делает (на сколько я понял). Шикарно. Как раз то, что мне сейчас надо. Не зря следил за форумом.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13064
  • Карма: 1684
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: GeometryExtentsBestFit()
« Ответ #6 : 07-10-2021, 18:17:17 »
Шикарно. Как раз то, что мне сейчас надо. Не зря следил за форумом.
Надеюсь, что ты обратил внимание, что этот метод работает только для вставок блоков, у которых одинаковые масштабы по X, Y, Z. Например, для цилиндра, который масштабирован вдоль его оси, этот метод не применим.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн avc

  • ADN Club
  • *****
  • Сообщений: 735
  • Карма: 149
    • Мои плагины к Автокаду
Re: GeometryExtentsBestFit()
« Ответ #7 : 07-10-2021, 18:55:08 »
Ну конечно я не дочитал до последнего абзаца :)) Спасибо за комментарий. Однако мне казалось, что взрыв блоков прекрасно поддерживает nonuniform масштабирование... Не уставшая ли это информация? Надо проверить...

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13064
  • Карма: 1684
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: GeometryExtentsBestFit()
« Ответ #8 : 07-10-2021, 19:01:33 »
Однако мне казалось, что взрыв блоков прекрасно поддерживает nonuniform масштабирование...
Команда _EXPLODE и метод explode - это совсем не одно и тоже.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение