Выбор вложенных объектов секущей рамкой в Autocad через .NET

Автор Тема: Выбор вложенных объектов секущей рамкой в Autocad через .NET  (Прочитано 15203 раз)

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

Оффлайн Lemieux

  • ADN OPEN
  • ****
  • Сообщений: 381
  • Карма: 21
Смотри описание в ObjectARX SDK.
Я уже смотрел, но я просто не понимаю как всё это работает. Стыдно конечно.
Пример использования есть здесь: https://www.theswamp.org/index.php?topic=41569.0
А все это растет отсюда: https://adndevblog.typepad.com/autocad/2012/04/retrieving-nested-entities-under-cursor-aperture-using-net-api.html
Спасибо, разобрался, но чувствую себя обезьяной. Что-то делаю, получается, но не понимаю, что за магия.

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Спасибо, разобрался, но чувствую себя обезьяной. Что-то делаю, получается, но не понимаю, что за магия.
Это естественно, так ты начал программировать под AutoCAD с AutoCAD .NET API, которое есть только обертка над частью классов и функций ObjectARX. Поэтому если чего-то не хватает в AutoCAD .NET API приходится использовать P/Invoke для функций ObjectARX, если это возможно. И требуется разбираться как это работает в ObjectARX. Если бы ты начинал сразу с ObjectARX, то было бы конечно проще...
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Lemieux

  • ADN OPEN
  • ****
  • Сообщений: 381
  • Карма: 21
А я правильно понимаю, что в AutoLisp есть аналог этой функции (ssget), а в .NET нет?

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
А я правильно понимаю, что в AutoLisp есть аналог этой функции (ssget), а в .NET нет?
Да. Но в Autolisp не полный аналог. Часть возможностей не поддерживается. Поэтому наиболее полные возможности именно в ObjectARX.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Lemieux

  • ADN OPEN
  • ****
  • Сообщений: 381
  • Карма: 21
А почему данный код может начать лагать через некоторые время, если много раз выделять и создавать примитивы?

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
А почему данный код может начать лагать через некоторые время, если много раз выделять и создавать примитивы?
Данный код - это какой? Причин может быть множество - это и баг в AutoCAD и баг в коде...
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Lemieux

  • ADN OPEN
  • ****
  • Сообщений: 381
  • Карма: 21
А почему данный код может начать лагать через некоторые время, если много раз выделять и создавать примитивы?
Данный код - это какой? Причин может быть множество - это и баг в AutoCAD и баг в коде...
Вот этот https://adn-cis.org/forum/index.php?topic=10781.msg51298#msg51298
Но у меня на работе компьютер с 4 ГБ оперативной памяти и видеокарта NVidia 230, а дома с 16 и видеокарта GTX1080. И вот дома всё нормально работает.
В VS посмотрел выделение памяти, вроде память не плавает.
А лагает, когда вызывается метод acedSSGet. При нормальной работе примитив под курсором или рамкой подсвечивается сразу, а тут этот визуальный эффект происходит с задержкой. И последующее построение примитивов (точнее прорисовка на экране) происходит медленно.
Буду дальше вести наблюдение.