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

ADN Club => AutoCAD .NET API => Тема начата: simson43 от 31-10-2018, 20:03:03

Название: пользовательский выбор в командной строке
Отправлено: simson43 от 31-10-2018, 20:03:03
Здравствуйте. возможно ли реализовать выбор из предложенных вариантов в командной строке посредством кнопочек?

(https://i.postimg.cc/Z015pKxF/image.png) (https://postimg.cc/Z015pKxF)
Название: Re: пользовательский выбор в командной строке
Отправлено: Дмитрий Загорулькин от 31-10-2018, 20:34:18
Непонятно: а что нужно-то в итоге? Сделать такой выбор в своём коде или программно выбрать какой-то вариант при запуске стандартной команды?
Название: Re: пользовательский выбор в командной строке
Отправлено: simson43 от 31-10-2018, 20:41:11
выбор в своем коде.
просто не хочется ради выбора одного из двух сценариев открывать форму.
а кнопочками в командной строке очень удобно мне кажется)
Название: Re: пользовательский выбор в командной строке
Отправлено: Александр Ривилис от 31-10-2018, 21:26:13
Здравствуйте. возможно ли реализовать выбор из предложенных вариантов в командной строке посредством кнопочек?

(https://i.postimg.cc/Z015pKxF/image.png) (https://postimg.cc/Z015pKxF)

Это просто ключевые слова (keywords).
Попробуй такой код:

Код - C# [Выбрать]
  1. Document doc = Application.DocumentManager.MdiActiveDocument;
  2. Editor ed = doc.Editor;
  3. PromptPointOptions ppo = new PromptPointOptions("Укажите точку ");
  4. ppo.Keywords.Add("Один");
  5. ppo.Keywords.Add("Два");
  6. ppo.Keywords.Add("Три");
  7.  
  8. PromptPointResult ppr = ed.GetPoint(ppo);
  9.  
  10. if (ppr.Status == PromptStatus.Keyword)
  11.     ed.WriteMessage(ppr.StringResult);
  12. else if (ppr.Status == PromptStatus.OK)
  13.     ed.WriteMessage(ppr.Value.ToString());
  14. else
  15.     ed.WriteMessage("***Отказ***");
  16.  
Название: Re: пользовательский выбор в командной строке
Отправлено: simson43 от 31-10-2018, 22:03:08
Спасибо!
Название: Re: пользовательский выбор в командной строке
Отправлено: Александр Ривилис от 31-10-2018, 22:10:13
Спасибо!
Подходит? У ключевых слов есть особенности - в качестве ключа рассматриваются большие буквы в словах и они не должны совпадать в разных ключевых словах. Например, ключи "Отрезок" и "Отмена" быть не могут, а "Отрезок" и "оТмена" - могут.
Название: Re: пользовательский выбор в командной строке
Отправлено: simson43 от 31-10-2018, 22:28:15
Да я справился.
это уточнение тоже полезно)
я заметил что он воспринимает только одно слово. а составные (т е с двумя заглавными, например, ПервыйСценарий и ВторойСценарий) нормально воспринимает?
у меня по крайней мере работает

_________________
видимо подходит. Первая Большая буква значимая я так понял. все что после неважно.
Название: Re: пользовательский выбор в командной строке
Отправлено: Александр Ривилис от 31-10-2018, 23:04:03
видимо подходит. Первая Большая буква значимая я так понял. все что после неважно.
Не так. Работают все большие буквы. Т.е. это будет "ПС" и "ВС" и соответственно они разные.
Название: Re: пользовательский выбор в командной строке
Отправлено: simson43 от 31-10-2018, 23:34:57
он(автокад) даже в командной строке выводит после выбора первую букву выбранного составного слова
Название: Re: пользовательский выбор в командной строке
Отправлено: Дмитрий Загорулькин от 31-10-2018, 23:46:46
Не так. Работают все большие буквы. Т.е. это будет "ПС" и "ВС" и соответственно они разные.
То есть, не обязательно чтобы большие буквы шли подряд? Я всегда считал, что их вот так разносить нельзя...
Название: Re: пользовательский выбор в командной строке
Отправлено: Александр Ривилис от 31-10-2018, 23:52:29
Не так. Работают все большие буквы. Т.е. это будет "ПС" и "ВС" и соответственно они разные.
То есть, не обязательно чтобы большие буквы шли подряд? Я всегда считал, что их вот так разносить нельзя...
А вот это я уже точно не помню. Нужно проверить. Возможно ты и прав.
В действительности возможностей у ключевых слов значительно больше. Обрати внимание, что KeywordCollection имеет несколько перегруженных методов Add. Там можно задать и локализованное и глобализованное имя (задаваемое через подчеркивание) и то имя, которое будет отображаться. Т.е. локализованным именем может быть "ПС", а отображаться будет "ПервыйСценарий".
Название: Re: пользовательский выбор в командной строке
Отправлено: Владимир Шу от 01-11-2018, 08:09:57
Добавлю, для полноты картины, что у ключевых слов, какая-то нелюбовь к нижнему подчеркиванию: http://adn-cis.org/forum/index.php?topic=715.0
Название: Re: пользовательский выбор в командной строке
Отправлено: Александр Ривилис от 01-11-2018, 09:06:48
Добавлю, для полноты картины, что у ключевых слов, какая-то нелюбовь к нижнему подчеркиванию: http://adn-cis.org/forum/index.php?topic=715.0
Нижнее подчеркивание - это разделитель локализованных и глобализованых ключевых слов. Кроме того в документации четко сказано, что ключевое слово - это буквы, цифры и знак минус. Других быть не может.