GripOverrule в C3D

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

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

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: GripOverrule в C3D
« Ответ #15 : 23-12-2017, 21:31:27 »
У меня идей не осталось. Вероятнее всего это баг в C3D 2018. Надеюсь, что ты проверил при всех установленных обновлениях. Так что единственный маршрут - отправлять в ADN DevHelp.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN Club
  • ****
  • Сообщений: 381
  • Карма: 33
    • C3D Extensions
  • Skype: alexeyterno
Re: GripOverrule в C3D
« Ответ #16 : 23-12-2017, 21:33:02 »
Так что единственный маршрут - отправлять в ADN DevHelp.
Как раз этого я и хочу. Вы можете отправить такой запрос?

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: GripOverrule в C3D
« Ответ #17 : 23-12-2017, 22:13:17 »
Так что единственный маршрут - отправлять в ADN DevHelp.
Как раз этого я и хочу. Вы можете отправить такой запрос?
Могу. Но тебе нужно подготовить несколько вещей:
1. Приведённый тобой код в виде проекта в zip-архиве (комментарии в коде только английские).
2. Видео как это нормально работает в AutoCAD 2018 (Autodesk Screencast)
3. Видео как это ненормально работает в C3D 2018 (Autodesk Screencast, но укажешь делать видео с полного экрана)
Проверь, что у тебя последняя версия Autodesk Screencast - он недавно обновлялся.
Отправлю.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: GripOverrule в C3D
« Ответ #18 : 23-12-2017, 22:30:36 »
Попробуй еще этот пример: http://through-the-interface.typepad.com/through_the_interface/2012/09/overriding-the-grips-of-an-autocad-polyline-to-maintain-fillet-segments-using-net.html
Если в C3D 2018 он не работает - значит точно баг.
Запускаешь команду GOO, рисуется полилиния с дугами, дергаешь полилинию за ручки.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Re: GripOverrule в C3D
« Ответ #19 : 25-12-2017, 13:23:33 »
Если в C3D 2018 он не работает - значит точно баг.
Не самый лучший пример. Он в Сивиле вообще крайне плохо работает: ручки рисует где-то далеко в космосе от объекта :)
Вот тут я об этом писал: http://forum.dwg.ru/showpost.php?p=1095608&postcount=4

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

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Re: GripOverrule в C3D
« Ответ #20 : 25-12-2017, 13:36:40 »
В той же теме на dwg.ru ниже есть подправленный под Civil код. Загрузил его в 2018 - глючит :(
При первом перемещении ручки - всё ок, но при последующих - ручка отлетает на место, а отображение полилинии пропадает. Регенерация возвращает отображение объекта, но поведение ручек не исправляется.
Видео:

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

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Re: GripOverrule в C3D
« Ответ #21 : 25-12-2017, 13:55:57 »
Ну и, для сравнения, как это должно работать. На примере 2017 версии:

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

  • ADN Club
  • ****
  • Сообщений: 381
  • Карма: 33
    • C3D Extensions
  • Skype: alexeyterno
Re: GripOverrule в C3D
« Ответ #22 : 25-12-2017, 14:03:39 »
Дима, у тебя есть готовый проект, который можно с техподдержку заслать? Я смогу его подготовить только после НГ.

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: GripOverrule в C3D
« Ответ #23 : 25-12-2017, 14:06:09 »
Дима, у тебя есть готовый проект, который можно с техподдержку заслать? Я смогу его подготовить только после НГ.
Можешь не торопиться. У них тоже праздники.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: GripOverrule в C3D
« Ответ #24 : 25-12-2017, 14:06:49 »
Дмитрий Загорулькин
А пример Алексей Терно у тебя тоже приводит к Fatal Error?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Re: GripOverrule в C3D
« Ответ #25 : 25-12-2017, 14:25:45 »
А пример Алексей Терно у тебя тоже приводит к Fatal Error?
С тем кодом такая ситуация:
1. Если без изменений кода тестировать - да, фатал эррор.
2. Если изменить код таким образом, то поведение такое же, как у меня в видео выше:
Код - C# [Выбрать]
  1. public class ImplementClass
  2.     //: IExtensionApplication
  3. {
  4.     [CommandMethod("TestGripOverrule")]
  5.     public void AddOverrule()
  6.     {
  7.         ObjectOverrule.AddOverrule(RXClass.GetClass(typeof(Polyline)), CableLineGripOverruleClass.Instance, true);
  8.     }
  9.  
  10.     //public void Initialize()
  11.     //{
  12.     //    if (Application.DocumentManager.MdiActiveDocument == null)
  13.     //        return;
  14.  
  15.     //    ObjectOverrule.AddOverrule(RXClass.GetClass(typeof(Polyline)), CableLineGripOverruleClass.Instance, true);
  16.     //}
  17.  
  18.     //public void Terminate() { }
  19. }    
  20.  
То есть, если добавлять Overrule в методе Initialize, то фаталит. Если командой после полной загрузки Сивила - то просто глючит.

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

  • ADN Club
  • ****
  • Сообщений: 381
  • Карма: 33
    • C3D Extensions
  • Skype: alexeyterno
Re: GripOverrule в C3D
« Ответ #26 : 25-12-2017, 14:27:33 »
просто глючит
От этого не легче - программа все равно становиться нерабочей.

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

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Re: GripOverrule в C3D
« Ответ #27 : 25-12-2017, 14:27:58 »
Можешь не торопиться. У них тоже праздники.
Можно вообще не торопиться. Моё последнее обращение в ADN уже третью неделю без ответа висит :(
От этого не легче - программа все равно становиться нерабочей.
Согласен. Мне такое поведение тоже сильно не нравится. Придётся проверять версию Civil 3D и просто отключать Grip Overrule, если это 2018 версия. Потому что исправить это могут только разработчики Civil. А каких-то возможных обходных путей я лично не вижу.

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

  • ADN Club
  • ****
  • Сообщений: 381
  • Карма: 33
    • C3D Extensions
  • Skype: alexeyterno
Re: GripOverrule в C3D
« Ответ #28 : 25-12-2017, 14:42:57 »
Можно вообще не торопиться. Моё последнее обращение в ADN уже третью неделю без ответа висит
Я написал Ярославу Решетникову, чтобы он оказал помощь в проталкивании запроса по этой ошибку, но он вернется из отпуска только 8 января, так что, парни, курим бамбук :)

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

  • ADN Club
  • ****
  • Сообщений: 381
  • Карма: 33
    • C3D Extensions
  • Skype: alexeyterno
Re: GripOverrule в C3D
« Ответ #29 : 25-12-2017, 14:44:24 »
Придётся проверять версию Civil 3D и просто отключать Grip Overrule, если это 2018 версия.
А что делать, если весь дополнительный функционал реализован через ручки? В этом случае приложение целиком теряет свою функциональность.