Непонятный Assertion Failed в Point Monitor

Автор Тема: Непонятный Assertion Failed в Point Monitor  (Прочитано 5154 раз)

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

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

  • ADN OPEN
  • Сообщений: 30
  • Карма: 0
Здравствуйте. Столкнулся с непонятной проблемой. Навешан самый элементарный перехватчик на Editor.PointMonitor :

Код - C# [Выбрать]
  1.         public static void  ed_PointMonitor(object sender, PointMonitorEventArgs e)
  2.         {
  3.             try
  4.             {
  5.                 Document doc = Application.DocumentManager.MdiActiveDocument;
  6.                 Editor ed = doc.Editor;
  7.                 if (!e.Context.PointComputed )
  8.                 {                  
  9.                     return;
  10.                 }
  11.                 ed.TurnForcedPickOn();
  12.                 var ents = e.Context.GetPickedEntities();
  13.             }
  14.             catch (System.Exception ex)
  15.             {
  16.  
  17.             }
  18.         }
  19.  

И иногда, я даже не могу отловить условия бага, просто вот в любой момент и очень редко выпадает вот такой вот Assertion (на картинке). Что за чушь-то? Прогуглив, я нашел вот это https://forums.autodesk.com/t5/net/assertion-failed/td-p/3225028 . Полностью то же самое, что и у меня. Даже автокад той же версии. И что мне делать? Какой сервис пак хоть должен быть, чтобы этого не было?



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

  • Administrator
  • *****
  • Сообщений: 13880
  • Карма: 1786
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Непонятный Assertion Failed в Point Monitor
« Ответ #1 : 03-03-2016, 14:04:17 »
Какой сервис пак хоть должен быть, чтобы этого не было?
Попробуй: https://knowledge.autodesk.com/support/autocad/downloads/caas/downloads/content/autocad-2012-service-pack-2.html?v=2012

А у тебя чистый AutoCAD, или как у автора вопроса AutoCAD Map 2012 (или Civil3d 2012) - для них свои Service Pack'и
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Привалов Дмитрий

  • ADN Club
  • *****
  • Сообщений: 546
  • Карма: 119
Re: Непонятный Assertion Failed в Point Monitor
« Ответ #2 : 03-03-2016, 15:14:20 »
Столкнулся с непонятной проблемой.
Попробуй для начала закомментировать строку
//var ents = e.Context.GetPickedEntities();

ошибка указывает на функцию GetPickedEntities();

Если ошибка пропадет то стоит подумать как безопасно вызывать эту функцию;
возможно проверять выбраны ли примитивы в данный момент или как-то  получить их количество, и только затем пытаться их получить;

либо проверять а действительно ли фокус на текущем документе в момент попытки вызвать функцию.

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

  • Administrator
  • *****
  • Сообщений: 13880
  • Карма: 1786
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Непонятный Assertion Failed в Point Monitor
« Ответ #3 : 03-03-2016, 17:01:44 »
Если Service Pack не исправит ситуацию, то возможно поможет отключение ROLLOVERTIPS.
Ну и нечего выполнять ed.TurnForcedPickOn(); внутри события монитора. Это операцию нужно проделать заранее.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение