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

28/02/2014

Включение/выключение привязок

Чтобы включить или выключить привязку во время выполнения кода достаточно установить системную переменную SNAPMODE в 1 или 0.

Вот код примера:

Код - C#: [Выделить]
  1. // выключение привязок
  2. Application.SetSystemVariable("SNAPMODE", 0);
  3.  
  4. // включение привязок
  5. Application.SetSystemVariable("SNAPMODE", 1);

Различные настройки привязок управляются системной переменной OSMODE. Вот статья описывающая ее назначение. Значения системной переменной OSMODE могут быть найдены в документации AutoCAD.

Если привязки (Osnap) были выключены, AutoCAD добавлет 16384 к текущим установкам OSMODE. Это позволяет приложению определить текущее состояние OSMODE.

Например, если активизирована привязка «конточка» и привязки включены, тогда OSMODE равно 1, а если привязки выключены, то OSMODE равно 16385 так как (1 + 16384) = 16385.

Вот пример кода:

Код - C#: [Выделить]
  1. Int16 osmode = (Int16)Application.GetSystemVariable("OSMODE");
  2. String msg = String.Empty;
  3. if ((osmode & 16384) == 0)
  4. {
  5.     msg = String.Format
  6.             (
  7.                 "Привязки отключены. Значение OSMODE = {0}",
  8.                 osmode
  9.             );
  10. }
  11. else
  12. {
  13.     msg = String.Format
  14.             (
  15.                 "Привязки включены. Значение OSMODE = {0}",
  16.                 osmode
  17.             );
  18. }

 

Источник: http://adndevblog.typepad.com/autocad/2012/05/turn-onoff-the-running-osnap.html

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

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