Несколько SendStringToExecute, отменить/продолжить

Автор Тема: Несколько SendStringToExecute, отменить/продолжить  (Прочитано 6551 раз)

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

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

  • ADN OPEN
  • ***
  • Сообщений: 150
  • Карма: 3
Добрый день. Не получается отменить (Esc) последовательность SendStringToExecute в середине выполнения. Повторный вызов (Enter/пробел) вызывает не программу, а последнюю SendStringToExecute). Игра с флагами особо не помогла.
Код - C# [Выбрать]
  1. using Autodesk.AutoCAD.ApplicationServices;
  2. using Autodesk.AutoCAD.DatabaseServices;
  3. using Autodesk.AutoCAD.EditorInput;
  4. using Autodesk.AutoCAD.Runtime;
  5. namespace ClassLibrary30
  6. {
  7.     public class Class1
  8.     {
  9.         [CommandMethod("SSTE",CommandFlags.Session)]
  10.         public static void SSTE()
  11.         {
  12.             Document doc = Application.DocumentManager.MdiActiveDocument;
  13.             Database db = doc.Database;
  14.             Editor ed = doc.Editor;
  15.             doc.SendStringToExecute("._LAYERSTATE ", true, false, true);
  16.             doc.SendStringToExecute("Test2 ", true, false, true);
  17.         }
  18.             [CommandMethod("Test2", CommandFlags.NoHistory)]
  19.         public static void Test2()
  20.               {
  21.                 Document doc = Application.DocumentManager.MdiActiveDocument;
  22.                 Database db = doc.Database;
  23.                 Editor ed = doc.Editor;
  24.                 doc.SendStringToExecute("._View ", true, false, true);
  25.             }
  26.          }
  27. }

Оффлайн avc

  • ADN Club
  • *****
  • Сообщений: 822
  • Карма: 166
    • Мои плагины к Автокаду
Уберите их вообще из кода. Если можно сделать без запуска команд, средствами API, то надо убирать.

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

  • ADN OPEN
  • ***
  • Сообщений: 150
  • Карма: 3
Согласен что лучше. Но в моем случае удобней работать с красивыми :) родными окошечками layerstates и view.

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1115
  • Карма: 173
Я бы попробовал объявить транзакцию и внутри нее уже вызывать команды. Хотя даже на лиспе стараюсь напрочь забыть про командные методы: уж больно много там подводных камней...
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Не получается отменить (Esc) последовательность SendStringToExecute в середине выполнения.
И не получится.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • ***
  • Сообщений: 150
  • Карма: 3
Позвольте полюбопытствовать :)

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

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

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

  • ADN OPEN
  • ***
  • Сообщений: 150
  • Карма: 3
Удобство работы - отмена команды за один раз;повторный запуск команды пробел/enter.
Про ассинхронность на тот момент не думал. Попробую с Command. Спасибо.