Вопрос по второй версии метода subGetGripPoints

Автор Тема: Вопрос по второй версии метода subGetGripPoints  (Прочитано 413 раз)

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

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

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

  • ADN OPEN
  • Сообщений: 31
  • Карма: 1
В процессе изучения ф-ции subGetGripPoints, понял и реализовал один из возможных её вариантов:

"Старая" версия, которая согласно SDK-шке выглядит как
https://knowledge.autodesk.com/search-result/caas/CloudHelp/cloudhelp/2017/ENU/OARXMAC-RefGuide/files/OREFMAC-AcDbEntity--getGripPoints-AcGePoint3dArray--AcDbIntArray---AcDbIntArray---const-html.html

Код - C++ [Выбрать]
  1.  ACDBCORE2D_PORT ADESK_SEALED_VIRTUAL Acad::ErrorStatus getGripPoints(
  2. AcGePoint3dArray& gripPoints,
  3. AcDbIntArray & osnapModes,
  4. AcDbIntArray & geomIds
  5. ) const;
  6.  

В классе AcDbEntity однако так же имеется вторая,
Более "сложная" / "продвинутая" версия этого метода:
https://knowledge.autodesk.com/search-result/caas/CloudHelp/cloudhelp/2017/ENU/OARXMAC-RefGuide/files/OREFMAC-AcDbEntity--getGripPoints-AcDbGripDataPtrArray--double-int-AcGeVector3d--int-const-html.html

Код - C++ [Выбрать]
  1.  ACDBCORE2D_PORT ADESK_SEALED_VIRTUAL Acad::ErrorStatus getGripPoints(
  2. AcDbGripDataPtrArray& grips,
  3. const double curViewUnitSize,
  4. const int gripSize,
  5. const AcGeVector3d& curViewDir,
  6. const int bitflags
  7. ) const;
  8.  

Был неприятно удивлён во первых тем, что не смотря на то, что данная версия метода
хоть и названа - более "новой" / "продвинутой" и т.д. тем не менее не показана на
практике ни в одном примере в SDK, среди имеющихся в папке samples (пример работы
старой в одном объекте таки представлен был)

Описание в документации это конечно хорошо, но вообще описанные текстом трёхмерные
объекты и их создание и редактирование, без каких либо иллюстраций, это конечно
не лучшая практика, для SDK такого покате как AutoCAD на мой взгляд.

Подскажите пожалуйста, есть ли где-нибудь может более подробное описание работы этой
функции именно для "продвинутой" версии этого метода. На пока само собой пытаюсь работать
с данным методом по описанию в СДК как с чёрным ящиком, пробуя разные варианты, но по
первам понять принцип работы достаточно сложнова-то.
Или возможно вопрос на форуме уже задавался, может кто ссылку кинет, я пока конкретно на форуме по этому поводу нашёл только
http://adn-cis.org/forum/index.php?topic=2692.0
« Последнее редактирование: 13-07-2018, 00:08:34 от knightrocker »

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

  • Administrator
  • *****
  • Сообщений: 8145
  • Карма: 971
  • Рыцарь ObjectARX
  • Skype: rivilis
"Старая" версия, которая согласно SDK-шке выглядит как
https://knowledge.autodesk.com/search-result/caas/Clo..
Тщательнее - ссылка идёт в никуда.
Был неприятно удивлён во первых тем, что не смотря на то, что данная версия метода
хоть и названа - более "новой" / "продвинутой" и т.д. тем не менее не показана на
практике ни в одном примере в SDK, среди имеющихся в папке samples (пример работы
старой в одном объекте таки представлен был)
Есть такое дело. Пример был, но больше десяти лет назад в ObjectARX SDK 2007 и 2008. Потом его по необъяснимым для меня причинам убрали - возможно выявились проблемы с ним в 2009-ой версии. Я его переделал под AutoCAD 2017. Там еще много чего интересного есть. Смотри статью: http://adn-cis.org/dinamicheskie-razmeryi-v-acedjig-s-ispolzovaniem-objectarx.html
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • Сообщений: 31
  • Карма: 1
Тщательнее - ссылка идёт в никуда.
Поправил.

Есть такое дело. Пример был, но больше десяти лет назад в ObjectARX SDK 2007 и 2008. Потом его по необъяснимым для меня причинам убрали - возможно выявились проблемы с ним в 2009-ой версии. Я его переделал под AutoCAD 2017. Там еще много чего интересного есть. Смотри статью: http://adn-cis.org/dinamicheskie-razmeryi-v-acedjig-s-ispolzovaniem-objectarx.html.

Фух, огроменное спасибо, отправляюсь читать :)

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

  • Administrator
  • *****
  • Сообщений: 8145
  • Карма: 971
  • Рыцарь ObjectARX
  • Skype: rivilis
Фух, огроменное спасибо, отправляюсь читать :)
Там не столько нужно читать мою статью, сколько скачать и тщательно "под микроскопом" (в отладчике) посмотреть приведённый пример.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • Сообщений: 31
  • Карма: 1
Фух, огроменное спасибо, отправляюсь читать :)
Там не столько нужно читать мою статью, сколько скачать и тщательно "под микроскопом" (в отладчике) посмотреть приведённый пример.

Да, скачал, само собой буду изучать.
Могу ли тогда попросить о последнем, а именно об аналогичной версии данного проекта, но только для студии 2015 и objectARX 2017 ?

Отмечено как Решение Александр Ривилис 16-09-2018, 15:25:10

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

  • Administrator
  • *****
  • Сообщений: 8145
  • Карма: 971
  • Рыцарь ObjectARX
  • Skype: rivilis
Могу ли тогда попросить о последнем, а именно об аналогичной версии данного проекта, но только для студии 2015 и objectARX 2017 ?
Так. А кто будет внимательно читать статью? Там же черным по белому написано, что я адаптировал этот пример для ObjectARX 2017 и AutoCAD 2017, что автоматически подразумевает использование VS 2015. Чего не хватает?
В файле Autodesk.arx-2017.props заменишь:
Код - XML [Выбрать]
  1. <ArxSdkDir>E:\ObjectARX2017\</ArxSdkDir>
на
Код - XML [Выбрать]
  1. <ArxSdkDir>C:\Autodesk\Autodesk_ObjectARX_2017_Win_64_and_32_Bit</ArxSdkDir>
так как у тебя ObjectARX SDK в каталоге по умолчанию, а у меня в E:\ObjectARX2017
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение