Включение/выключение привязок
Чтобы включить или выключить привязку во время выполнения кода достаточно установить системную переменную SNAPMODE в 1 или 0.
Вот код примера:
- // выключение привязок
- Application.SetSystemVariable("SNAPMODE", 0);
- // включение привязок
- Application.SetSystemVariable("SNAPMODE", 1);
Различные настройки привязок управляются системной переменной OSMODE. Вот статья описывающая ее назначение. Значения системной переменной OSMODE могут быть найдены в документации AutoCAD.
Если привязки (Osnap) были выключены, AutoCAD добавлет 16384 к текущим установкам OSMODE. Это позволяет приложению определить текущее состояние OSMODE.
Например, если активизирована привязка «конточка» и привязки включены, тогда OSMODE равно 1, а если привязки выключены, то OSMODE равно 16385 так как (1 + 16384) = 16385.
Вот пример кода:
- Int16 osmode = (Int16)Application.GetSystemVariable("OSMODE");
- String msg = String.Empty;
- if ((osmode & 16384) == 0)
- {
- msg = String.Format
- (
- "Привязки отключены. Значение OSMODE = {0}",
- osmode
- );
- }
- else
- {
- msg = String.Format
- (
- "Привязки включены. Значение OSMODE = {0}",
- osmode
- );
- }
Источник: 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