Распараллелить работу двух команд

Автор Тема: Распараллелить работу двух команд  (Прочитано 513 раз)

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

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

  • ADN OPEN
  • ****
  • Сообщений: 254
  • Карма: 0
Здравствуйте!

У меня просьба пользователя написать авторегенератор для Acad 2015, чтобы он реагировал на все действия в чертеже и запускал Regen All. Рассматриваю стандартный  new Timer(MyMethod, null, 1000, Timeout.Infinite). Но, если я это делаю как команду внутри dll, то получается что она активна весь сеанс работы с чертежом и блокирует возможность вызова других команд. Есть идеи как можно написать регенератор без такого эффекта?

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

  • Administrator
  • *****
  • Сообщений: 10420
  • Карма: 1321
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Распараллелить работу двух команд
« Ответ #1 : 07-11-2019, 22:34:45 »
Atomohod,
У меня нет слов. Видимо ты не понимаешь к чему это приведёт.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ****
  • Сообщений: 254
  • Карма: 0
Re: Распараллелить работу двух команд
« Ответ #2 : 07-11-2019, 23:19:22 »
У меня нет слов. Видимо ты не понимаешь к чему это приведёт.
Может быть действительно не понимаю. Как тогда возможно реализовать авторегенерацию? И возможно ли? В новых версиях Автокада она же как-то реализована и притом "из коробки". На счет любого действия с чертежом я может некорректно выразился - подразумевается масштабирование и вставка/модификация графических примитивов пользователем.

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

  • Administrator
  • *****
  • Сообщений: 10420
  • Карма: 1321
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Распараллелить работу двух команд
« Ответ #3 : 07-11-2019, 23:22:23 »
В новых версиях Автокада она же как-то реализована и притом "из коробки".
Она во всех версиях (как минимум в последних 25) есть. REGENMODE установи в 1
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 10420
  • Карма: 1321
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Распараллелить работу двух команд
« Ответ #4 : 07-11-2019, 23:26:06 »
На счет любого действия с чертежом я может некорректно выразился - подразумевается масштабирование и вставка/модификация графических примитивов пользователем.
Совершенно некорректно. И кроме того в насыщенных чертежах операция регенерации может длится несколько минут (сравнимо со временем открытия такого чертежа). Как ты себе представляешь работу с чертежом, если вдруг у тебя запустится регенерация, которая будет столь продолжительна? И про распараллеливание ты ерунду написал. Пока регенерация не закончится ты с чертежом делать ничего не сможешь.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ****
  • Сообщений: 254
  • Карма: 0
Re: Распараллелить работу двух команд
« Ответ #5 : 07-11-2019, 23:50:47 »
И про распараллеливание ты ерунду написал.
Вот здесь я реально не понял - ясное дело что пока команда активна я не могу работать с чертежом. Так как я запускаю команду и она работает внутри сессии либо с интервалом либо при срабатывании события, то получается что она активна и запустить что либо я не могу - в этом и есть проблема. Однако есть точно такая же ситуация с Autosave - в настройках ставится интервал и через него регулярно идет автосохранение. И да - в момент автосохранения приложение виснет на пару сек. Если все просто решается установкой переменной, то для чего пользователю доступны целых две кнопки Regen и Regen all? Я запутался.

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

  • Administrator
  • *****
  • Сообщений: 10420
  • Карма: 1321
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Распараллелить работу двух команд
« Ответ #6 : 07-11-2019, 23:55:02 »
Однако есть точно такая же ситуация с Autosave - в настройках ставится интервал и через него регулярно идет автосохранение.
Нет. Автосохранение выполняется только в период простоя AutoCAD, когда он не выполняет никаких действий.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ****
  • Сообщений: 254
  • Карма: 0
Re: Распараллелить работу двух команд
« Ответ #7 : 07-11-2019, 23:55:23 »
Переменная у меня REGENMODE =1, но линии все равно деградируют например круг становится ломаным, при масштабировании. Это и нужно убрать

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

  • Administrator
  • *****
  • Сообщений: 10420
  • Карма: 1321
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Распараллелить работу двух команд
« Ответ #8 : 07-11-2019, 23:57:30 »
Если все просто решается установкой переменной, то для чего пользователю доступны целых две кнопки Regen и Regen all?
Не всё. Регенерация выполняется тогда, когда AutoCAD считает, что без неё обойтись нельзя.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 10420
  • Карма: 1321
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Распараллелить работу двух команд
« Ответ #9 : 08-11-2019, 00:02:39 »
whiparc установи в 1
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ****
  • Сообщений: 254
  • Карма: 0
Re: Распараллелить работу двух команд
« Ответ #10 : 08-11-2019, 00:04:32 »
Насчет версий нашел в рекламе Acad 2016 от представителя Autodesk с которым работали-"Если на компьютере установлена видеокарта, поддерживающая DirectX 11 и включено аппаратное ускорение, то можно будет увидеть, насколько изменена обработка кривых и весов линий. Мало того - теперь REGENMODE до конца отрабатывает свое название и полностью регулирует режим регенерации модели." Если ему верить, то раньше этого не было.

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

  • ADN OPEN
  • ****
  • Сообщений: 254
  • Карма: 0
Re: Распараллелить работу двух команд
« Ответ #11 : 08-11-2019, 00:09:12 »
Вдобавок постоянно автокад не дает перемещать чертеж, обрубая рамки окна и пока не выполнишь regen - картинку не сдвинуть.

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

  • Administrator
  • *****
  • Сообщений: 10420
  • Карма: 1321
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Распараллелить работу двух команд
« Ответ #12 : 08-11-2019, 00:09:17 »
Atomohod,
Это я комментировать не буду. При включении аппаратного ускорения бывают такие артефакты, что я предпочитаю его отключать.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 10420
  • Карма: 1321
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Распараллелить работу двух команд
« Ответ #13 : 08-11-2019, 00:10:30 »
Вдобавок постоянно автокад не дает перемещать чертеж, обрубая рамки окна и пока не выполнишь regen - картинку не сдвинуть.
Пользователь сам должен принимать решение выполнять регенерацию или нет.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN Club
  • ****
  • Сообщений: 309
  • Карма: 49
Re: Распараллелить работу двух команд
« Ответ #14 : 08-11-2019, 11:51:28 »
Вдобавок постоянно автокад не дает перемещать чертеж, обрубая рамки окна и пока не выполнишь regen - картинку не сдвинуть.
А какая версия AutoCAD, видеокарта, и какое имя драйвера в настройках AutoCAD?
Интересно что за глючное железо приводит к таким проблемам?