ADN Open CIS
Сообщество программистов Autodesk в СНГ

02/07/2014

Отключение online-синхронизации для AutoCAD 2015

В AutoCAD 2015 в настройках профиля появилась новая вкладка - "Online". Предположительно, в этой вкладке указывается, надо ли AutoCAD'у синхронизироваться с облаком, и, если надо, то что именно синхронизировать.

Учитывая реалии, в которых лично мне приходится жить, подобное "богатство" не потребуется. Мало того, оно вообще вредно и его надо бы отключить.

Если пользователь не авторизован в службе Autodesk 360, то беспокоиться не о чем - вкладка попросту недоступна. Если же это не так (ну, ситуации-то разные бывают), то изменить или отключить эти параметры несложно.

Флажок "Enable automatic sync" регулируется системной переменной ONLINEDOCMODE. А вот флажок "Sync my settings with the cloud" регулируется только записями в реестре. К сожалению, мне не удалось (по крайней мере пока) найти, где и как хранятся настройки - что именно хранить в облаке (все данные, или какие-то выбранные). Но отключить все это дело вполне реально.

Итак, сделаем, чтобы AutoCAD не пытался ничего закинуть в облако. Прежде всего установим системную переменную ONLINEDOCMODE в 0:

Код - Auto/Visual LISP: [Выделить]
  1. (if (getvar "onlinedocmode")
  2.   (setvar "onlinedocmode" 0)
  3.   ) ;_ end of if

После этого лезем в реестр, раздел реестра для текущего продукта с учетом его локализации, подветка Varibales, ключ ONLINESETTINGSSYNC. Если такое значение есть - удаляем:
Код - Auto/Visual LISP: [Выделить]
  1. (if (vl-registry-read
  2.       (setq hive (strcat "HKEY_CURRENT_USER\\"
  3.                          (vlax-product-key)
  4.                          "\\Variables"
  5.                          ) ;_ end of strcat
  6.             ) ;_ end of setq
  7.       (setq key "ONLINESETTINGSSYNC")
  8.       ) ;_ end of vl-registry-read
  9.   (vl-registry-delete hive key)
  10.   ) ;_ end of if

Но, к сожалению, только этого шага недостаточно: необходимо еще и "обнулить" значения для зарегистрированного пользователя Autodesk 360. Записи о зарегистрированных в Autodesk 360 пользователях хранятся в реестре, ключ
Код - Auto/Visual LISP: [Выделить]
  1. (strcat "HKEY_CURRENT_USER\\"
  2.         (vlax-product-key)
  3.         "\\WebUsers"
  4.         ) ;_ end of strcat
И там внутри каждой подветки надо найти ключ OnlineSettingsSync и установить ему значение 0.

Удаление всех подветок WebUsers не уничтожает факта подключения к Autodesk 360, придется искать другие пути для этого.

В результате мы получим код наподобие:
Код - Auto/Visual LISP: [Выделить]
  1. (vl-load-com)
  2.  
  3. (defun no-online-sync (/ hive key)
  4.   (if (getvar "onlinedocmode")
  5.     (setvar "onlinedocmode" 0)
  6.     ) ;_ end of if
  7.   (if (vl-registry-read
  8.         (setq hive (strcat "HKEY_CURRENT_USER\\"
  9.                            (vlax-product-key)
  10.                            "\\Variables"
  11.                            ) ;_ end of strcat
  12.               ) ;_ end of setq
  13.         (setq key "ONLINESETTINGSSYNC")
  14.         ) ;_ end of vl-registry-read
  15.     (progn
  16.       (vl-registry-delete hive key)
  17.       (foreach subhive (vl-registry-descendents
  18.                          (setq hive (strcat "HKEY_CURRENT_USER\\"
  19.                                             (vlax-product-key)
  20.                                             "\\WebUsers"
  21.                                             ) ;_ end of strcat
  22.                                ) ;_ end of setq
  23.                          nil
  24.                          ) ;_ end of vl-registry-descendents
  25.         (if (vl-registry-read (strcat hive "\\" subhive) "OnlineSettingsSync")
  26.           (vl-registry-write (strcat hive "\\" subhive) "OnlineSettingsSync" 0)
  27.           ) ;_ end of if
  28.         ) ;_ end of foreach
  29.       ) ;_ end of progn
  30.     ) ;_ end of if
  31.   ) ;_ end of defun
  32.  
  33. (no-online-sync)
P.S. Есть пара моментов, которые хотелось бы отметить особо.
  1. Все параметры, с которым мы сейчас работали, хранятся в реестре и касаются всех профилей AutoCAD и ПО на его основе. Без вариантов.
  2. После внесения изменений в реестр крайне желательно перезапустить AutoCAD: в окне настроек AutoCAD не покажет новые параметры, хотя и будет их использовать. При закрытии AutoCAD значения в реестре (по крайней мере пока) не перезаписываются.

Автор: Алексей Кулик

Обсуждение: http://adn-cis.org/forum/index.php?topic=841

Опубликовано 02.07.2014