Написать команду с опциями

Автор Тема: Написать команду с опциями  (Прочитано 3942 раз)

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

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1188
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Подскажите пример описания команды в которой
я мог бы разместить свои параметры дополнительные параметры
Ну к примеру, режим работы команды.

Ну к примеру есть моя команда "MY_CMD", хочу чтобы пользователь мог выбрать нужную опцию
[Режим1], [Режим2]...
ну или что-то в этом роде.

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

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Написать команду с опциями
« Ответ #1 : 07-05-2019, 17:44:12 »
Изучай: Editor.GetKeywords. Ну и поиск по форуму. Примеры здесь есть.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1188
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Re: Написать команду с опциями
« Ответ #2 : 07-05-2019, 17:44:53 »
Спасибо!

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1188
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Re: Написать команду с опциями
« Ответ #3 : 07-05-2019, 20:39:52 »
Все получилось, только вот одно не понятно.

К примеру у меня список имен элементов такой,
что труба и тройник начинаются одинаково с "Тр..."
Я сделал так, что "Т" - это для трубы а "ТР" - это для тройника.

Код - C# [Выбрать]
  1. string[] arr = { "Труба", "Заглушка", "ТРойник", ...}
  2.  
  3. PromptKeywordOptions opts = new PromptKeywordOptions("Что хотите добавить: ");
  4. opts.AllowNone = true;
  5.  
  6. // Формируем список ключевых слов команды
  7. foreach (string s in arr)
  8.      opts.Keywords.Add(s);
  9.  
  10. opts.Keywords.Default = arr[0];
  11. PromptResult res = ed.GetKeywords(opts);


Когда с консоли вводишь к примеру ТР (что бы вставить тройник),
то в результате PromptResult.StringResult  возвращает "Труба"
а должно же быть "Тройник"
 

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1188
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Re: Написать команду с опциями
« Ответ #4 : 07-05-2019, 20:48:34 »
Слушается, только тогда, когда вводишь "ТРо"
На "ТР" остается в "Трубе"



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

  • Administrator
  • *****
  • Сообщений: 13830
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Написать команду с опциями
« Ответ #5 : 07-05-2019, 22:57:39 »
Я сделал так, что "Т" - это для трубы а "ТР" - это для тройника.
Не пойдёт. Сделай "Труба" и "тРойник".
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Привалов Дмитрий

  • ADN Club
  • *****
  • Сообщений: 534
  • Карма: 117
Re: Написать команду с опциями
« Ответ #6 : 08-05-2019, 07:05:06 »
Подскажите пример описания команды в которой
я мог бы разместить свои параметры дополнительные параметры
Ну к примеру, режим работы команды.

Также можешь попробовать использовать лисп функцию, в нее можно передавать массив параметров

https://sites.google.com/site/bushmansnetlaboratory/translate-manual/osnovy-autocad-net-api/opredelenie-komand-i-funkcij-autolisp/opredelenie-funkcij-autolisp

https://adndevblog.typepad.com/autocad/2012/08/lispfunction-examples-for-autolisp-to-net.html