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

ADN Club => AutoCAD .NET API => Тема начата: Алексей (IdeaSoft) от 07-05-2019, 17:41:55

Название: Написать команду с опциями
Отправлено: Алексей (IdeaSoft) от 07-05-2019, 17:41:55
Подскажите пример описания команды в которой
я мог бы разместить свои параметры дополнительные параметры
Ну к примеру, режим работы команды.

Ну к примеру есть моя команда "MY_CMD", хочу чтобы пользователь мог выбрать нужную опцию
[Режим1], [Режим2]...
ну или что-то в этом роде.
Название: Re: Написать команду с опциями
Отправлено: Александр Ривилис от 07-05-2019, 17:44:12
Изучай: Editor.GetKeywords. Ну и поиск по форуму. Примеры здесь есть.
Название: Re: Написать команду с опциями
Отправлено: Алексей (IdeaSoft) от 07-05-2019, 17:44:53
Спасибо!
Название: Re: Написать команду с опциями
Отправлено: Алексей (IdeaSoft) от 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  возвращает "Труба"
а должно же быть "Тройник"
 
Название: Re: Написать команду с опциями
Отправлено: Алексей (IdeaSoft) от 07-05-2019, 20:48:34
Слушается, только тогда, когда вводишь "ТРо"
На "ТР" остается в "Трубе"

(https://i.postimg.cc/148L7gyX/image.png) (https://postimg.cc/148L7gyX)
Название: Re: Написать команду с опциями
Отправлено: Александр Ривилис от 07-05-2019, 22:57:39
Я сделал так, что "Т" - это для трубы а "ТР" - это для тройника.
Не пойдёт. Сделай "Труба" и "тРойник".
Название: Re: Написать команду с опциями
Отправлено: Привалов Дмитрий от 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