Регенерация прервана - что это значит и почему происходит?

Автор Тема: Регенерация прервана - что это значит и почему происходит?  (Прочитано 6231 раз)

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

Оффлайн Александр Пекшев aka ModisАвтор темы

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Ну в общем-то почти весь вопрос в названии. При работе функции, а точнее при работе Jig, в командную строку при каждом движении мышкой пишется "Регенерация прервана".
Что это значит и почему происходит? Для начала хочу узнать в теории

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

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

Оффлайн Александр Пекшев aka ModisАвтор темы

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Ну в общем-то почти весь вопрос в названии. При работе функции, а точнее при работе Jig, в командную строку при каждом движении мышкой пишется "Регенерация прервана".
Что это значит и почему происходит? Для начала хочу узнать в теории
В теории при очередном передвижении мышки AutoCAD хочет перерисовать примитив, а в это время еще не закончена предыдущая регенерация чертежа. Ты случаем в этом Jig не используешь Editor.Regen или что-то подобное???
Я везде перепроверил и нигде не использую Editor.Regen. Этот метод у меня стоял только по завершению команды и тот пока убрал. Был еще CommandFlags.Redraw - это конечно не оно, но тоже убрал на всякий случай.
При работе Jig происходит перерисовка блока путем удаления и повторного добавления содержимого. По сути, я вручную регенерацию нигде не задаю. Значит регенерация происходит при каких-то определенных условиях? При transaction.Commit() происходит?

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

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

Оффлайн Александр Пекшев aka ModisАвтор темы

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Значит просто не успевает перерисоваться новое содержимое блока.
Вот, кстати, про "не успевает" я подумывал. Причем забавный факт - в блоке один примитив. Полилиния. Вот если полилиния состоит только из линейных сегментов, то такого не происходит. А если вариант с дуговыми - проскакивает это сообщение. Можно конечно отключить CMDECHO, но мне интересно разобраться. Я могу как-то повлиять на этот процесс? Может это быть из-за того, что в момент перерисовки происходит открытие и закрытие двух транзакций?
Кстати, в разных версиях AutoCAD это происходит по-разному.
З.Ы. Я пока все тестирую только на 2010. Вероятна возможность, что в более поздних версиях этого не будет?

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Можно конечно отключить CMDECHO,
Не поможет.
Я могу как-то повлиять на этот процесс?
Не уверен. Как минимум попробуй увеличить шаг (расстояние между предыдущей и новой точкой, после которой происходит обновление).
Может это быть из-за того, что в момент перерисовки происходит открытие и закрытие двух транзакций?
Может. Нужно проверять.

З.Ы. Я пока все тестирую только на 2010. Вероятна возможность, что в более поздних версиях этого не будет?
Да. И бросай тестировать в этой версии если тебе нужна помощь. У меня этой версии нет, так что проверить не смогу. Да и ADN DevHelp тебе помогать не будет.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение