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

28/02/2017

Как запретить выполнение конкретной команды AutoCAD

Вы можете запретить выполнение команды внутри события “DocumentCollection.DocumentLockModeChanged”. Это событие вызывается сразу перед тем как AutoCAD начнёт выполнение этой команды. Посмотрите как можно запретить завершение работы AutoCAD.

Код - C#: [Выделить]
  1. [CommandMethod("AddVetoToQuit")]
  2. static public void AddVetoToQuit()
  3. {
  4.     DocumentCollection doc = Application.DocumentManager;
  5.     doc.DocumentLockModeChanged +=
  6.         new DocumentLockModeChangedEventHandler(
  7.                             doc_DocumentLockModeChanged);
  8.  
  9. }
  10.  
  11. [CommandMethod("RemoveVetoToQuit")]
  12. static public void RemoveVetoToQuit()
  13. {
  14.     DocumentCollection doc = Application.DocumentManager;
  15.     doc.DocumentLockModeChanged -=
  16.                 new DocumentLockModeChangedEventHandler(
  17.                                doc_DocumentLockModeChanged);
  18.  
  19. }
  20.  
  21. static void doc_DocumentLockModeChanged(object sender,
  22.                             DocumentLockModeChangedEventArgs e)
  23. {
  24.     if (string.Compare(e.GlobalCommandName, "QUIT", true) == 0)
  25.     {
  26.         e.Veto();
  27.     }
  28. }

 

Источник: http://adndevblog.typepad.com/autocad/2012/05/veto-a-particular-command-in-autocad.html

 

Автор перевода: Александр Ривилис

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

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