GripOverrule в C3D

Автор Тема: GripOverrule в C3D  (Прочитано 21222 раз)

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

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: GripOverrule в C3D
« Ответ #30 : 25-12-2017, 16:53:15 »
Похоже, что и сам C3D использует Overrule для полилиний, но как-то не корректно.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Re: GripOverrule в C3D
« Ответ #31 : 25-12-2017, 17:04:14 »
Эта проблема не только с полилиниями. Такая же беда с трубами. А свои ручки меток труб и колодцев я уже давно отключил в 2018, потому что они даже с родными ручками глючат, а с переопределёнными сразу в фатал падают. Но об этой проблеме Autodesk уже давно знает.

Оффлайн Алексей ТерноАвтор темы

  • ADN Club
  • ****
  • Сообщений: 381
  • Карма: 33
    • C3D Extensions
  • Skype: alexeyterno
Re: GripOverrule в C3D
« Ответ #32 : 25-12-2017, 17:05:49 »
об этой проблеме Autodesk уже давно знает
Точно знает?

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Re: GripOverrule в C3D
« Ответ #33 : 25-12-2017, 17:10:55 »
Я имел в виду, что Autodesk знает о проблеме с метками трубопроводных сетей. На бета-портале можно найти репорт (если есть доступ) и посмотреть, от какого он числа.

Оффлайн Алексей ТерноАвтор темы

  • ADN Club
  • ****
  • Сообщений: 381
  • Карма: 33
    • C3D Extensions
  • Skype: alexeyterno
Re: GripOverrule в C3D
« Ответ #34 : 25-12-2017, 17:17:01 »
А они хоть как-то на это отреагировали или этот отчет там просто висит?

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Re: GripOverrule в C3D
« Ответ #35 : 25-12-2017, 17:19:09 »
Я не уверен, что можно свободно распространять информацию о том, что происходит на бета-портале :) Зарегистрируйся и увидишь ;)

Оффлайн Алексей ТерноАвтор темы

  • ADN Club
  • ****
  • Сообщений: 381
  • Карма: 33
    • C3D Extensions
  • Skype: alexeyterno
Re: GripOverrule в C3D
« Ответ #36 : 25-12-2017, 17:24:52 »
На выходных посмотрю новую бету - как она с ручками справляется.

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Re: GripOverrule в C3D
« Ответ #37 : 25-12-2017, 17:27:30 »
Если имеешь в виду версию 2018.2, то я именно на ней проверял. Вроде как, более новой версии даже в пре-релизе нет.

Оффлайн Алексей ТерноАвтор темы

  • ADN Club
  • ****
  • Сообщений: 381
  • Карма: 33
    • C3D Extensions
  • Skype: alexeyterno
Re: GripOverrule в C3D
« Ответ #38 : 25-12-2017, 17:32:49 »
Извините, вам запрещён просмотр содержимого спойлеров.
« Последнее редактирование: 25-12-2017, 17:34:10 от Александр Ривилис »

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: GripOverrule в C3D
« Ответ #39 : 25-12-2017, 17:35:00 »
Извините, вам запрещён просмотр содержимого спойлеров.
Это конфиденциальная информация, доступная только бета-тестерам. Даже здесь её не следует публиковать.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Алексей ТерноАвтор темы

  • ADN Club
  • ****
  • Сообщений: 381
  • Карма: 33
    • C3D Extensions
  • Skype: alexeyterno
Re: GripOverrule в C3D
« Ответ #40 : 26-12-2017, 02:29:23 »
Это конфиденциальная информация, доступная только бета-тестерам. Даже здесь её не следует публиковать.
Даже просто о существовании бета версий??

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: GripOverrule в C3D
« Ответ #41 : 26-12-2017, 02:34:03 »
Зачем ты у меня об этом спрашиваешь? Перечитай NDA, которое подписывал.
В любом случае о датах выхода бета версий, изменений/добавлений/исключений в них, и т.д. и т.п. мы здесь на форуме обсуждать не имеем права. Так что все разговоры о бета-версиях прекращаем.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Re: GripOverrule в C3D
« Ответ #42 : 26-12-2017, 15:02:19 »
Попробовал покопаться в этой проблеме, получил немного сведений.
1. Выбираем объект, происходит первый вызов метода GetGripPoints, рисуются переопределённые ручки - проблем нет. То есть, если ручки не перемещать, то сбоев не возникает.
2. Цепляем ручку, перетаскиваем на новое место. Сразу после перемещения (когда ручка перемещена и кнопка мыши отпущена) происходят ещё два вызова GetGripPoints. При первом вызове не возникает проблем, при втором - при выходе из метода происходит исключение:
Exception thrown: 'System.ArgumentException' in mscorlib.dll
Additional information: Элемент с тем же ключом уже был добавлен. occurred
Полная трассировка исключения:
mscorlib.dll!System.ThrowHelper.ThrowArgumentException(System.ExceptionResource resource) + 0x38 bytes
mscorlib.dll!System.Collections.Generic.Dictionary<System.IntPtr, System.Collections.Generic.List<Autodesk.AutoCAD.DatabaseServices.GripData>>.Insert(System.IntPtr key, System.Collections.Generic.List<Autodesk.AutoCAD.DatabaseServices.GripData> value, bool add) + 0x285 bytes
AcDbMgd.dll!<Module>.AcMgGripOverrule.getGripPoints + 0x013c bytes
Это исключение рушит работу AcDbMgd.dll и потом уже с помощью ручек объект не редактируется и исчезает при попытке переместить ручку - собственно, то самое поведение, которое есть на видео. Думаю, что если дальше продолжать работу после этого исключения, то в какой-то момент вылезет фатал.
Попробовал посмотреть AcMgGripOverrule.getGripPoints в AcDbMgd.dll - класс AcMgGripOverrule помечен как Native, реализации его в этой dll нет. Соответственно, никак не посмотреть, что этот метод делает.

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: GripOverrule в C3D
« Ответ #43 : 26-12-2017, 15:05:11 »
2. Цепляем ручку, перетаскиваем на новое место. Сразу после перемещения (когда ручка перемещена и кнопка мыши отпущена) происходят ещё два вызова GetGripPoints. При первом вызове не возникает проблем, при втором - при выходе из метода происходит исключение:
А тоже самое в чистом AutoCAD 2018 тоже приводит к двум вызовам GetGripPoints?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Re: GripOverrule в C3D
« Ответ #44 : 26-12-2017, 15:07:46 »
Ну у меня чистого AutoCAD нет. Но я проверил в C3d 2017 - порядок вызовов точно такой же.