Командны QSave и MoveBak - AutoCAD 2016 SP1 и выше

Автор Тема: Командны QSave и MoveBak - AutoCAD 2016 SP1 и выше  (Прочитано 9631 раз)

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

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

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

  • ADN Club
  • ****
  • Сообщений: 288
  • Карма: 10
  • AutoCAD Civil 3D
До SP 1 для AutoCAD 2016 в составе Civil 3D проблем не было, команда qsave работала быстро. После установки SP1 на AutoCAD 2016 стала тормозить команда qsave - примерно в два раза дольше стала выполняться по сравнению с AutoCAD 2016 без SP и ранее. По итогу выяснилось, что если задан любой путь через MoveBak и задан в настройках формат сохранения по умолчанию  AutoCAD 2007, то команда qsave тормозит (при тех же настройках в 2016 без SP и ранее - не тормозит). Если поставить по умолчанию сохранять в формате AutoCAD 2013, то команда qsave срабатывает быстро как и в предыдущих версиях AutoCAD. Теперь и в AutoCAD 2017 без SP и с SP1 таже проблема - тормозит qsave.

Проверялось на 3-х разных файлах (обычных простых чертежах), в том числе и новом пустом в AutoCAD 2014-2017 в составе Civil 3D - проблема начинается именно в SP 1 для AutoCAD 2016.

Поставить по умолчанию формат сохранения AutoCAD 2013 невозможно, установлен формат 2007 чтобы у других сотрудников чертежи открывались (с форматом 2010 таже проблема).

Подскажите пожалуйста, может кто знает что поменялось начиная с SP 1 для AutoCAD 2016 в команде qsave?
Единственный вариант теперь написать свой movebak чтобы команда qsave не тормозила в AutoCAD 2016 SP1 и выше? 

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Единственный вариант теперь написать свой movebak чтобы команда qsave не тормозила в AutoCAD 2016 SP1 и выше? 
Если все остальные обновления на Civil 3D 2016 установлены, и это не помогает, то значит переписывать MOVEBAK под себя.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN Club
  • ****
  • Сообщений: 288
  • Карма: 10
  • AutoCAD Civil 3D
Может кто-нибудь уже делал и знает какие-либо "подводные камни"?
Надо ловить завершение команды qsave или как то по другому?

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

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

Отмечено как Решение Doublefish 14-02-2017, 08:23:43

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Надо ловить завершение команды qsave или как то по другому?
Думаю, что в событии Database.SaveComplete ты должен проверить не появился ли соответствующий .bak-файл и если да, то перенести его.
Кстати, так как это просто файловая операция не связанная с AutoCAD .NET AP, Iто ты можешь запустить перенос .bak-файла в отдельном потоке (Thread). При этом пользователю не нужно будет ничего ждать и он сможет продолжить работу.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Кстати, так как это просто файловая операция не связанная с AutoCAD .NET AP, Iто ты можешь запустить перенос .bak-файла в отдельном потоке (Thread).
В развитие этой идеи. Т.к. это просто файловая операция, ее можно вообще делать без использования AutoCAD/Civil. Я как-то делал небольшую утилитку, которая висела в трее и проверяла все изменяемые и добавляемые DWG файлы в определенной папке на версию. Если версия была неподходящая - всплывало уведомление. Можно сделать подобную и для перемещения BAK файлов.

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
В развитие этой идеи. Т.к. это просто файловая операция, ее можно вообще делать без использования AutoCAD/Civil. Я как-то делал небольшую утилитку, которая висела в трее и проверяла все изменяемые и добавляемые DWG файлы в определенной папке на версию. Если версия была неподходящая - всплывало уведомление. Можно сделать подобную и для перемещения BAK файлов.
Можно, но (!!!) нужно быть уверенным, что в момент когда мы пытаемся копировать, bak-файл не занят и не участвует в операции копирования, чтобы не скопировать не полный bak-файл.  В момент Database.SaveComplete это условие очевидно выполнено, а вот из внешнего приложения...
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение