AcEdJig и Keywords

Автор Тема: AcEdJig и Keywords  (Прочитано 9185 раз)

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

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

Оффлайн Михаил ГолубевАвтор темы

  • ADN OPEN
  • Сообщений: 26
  • Карма: 0
AcEdJig и Keywords
« : 04-09-2021, 22:47:42 »
Здравствуйте!
Не могу заставить AcEdJig распознавать keywords.
Добавил новый класс производный от AcEdJig с помощью визарда, работает с AcDbLine, графически все работет как должно.
Теперь понадобилcя ввод keyword во время джига, добавил вот:
Код - C++ [Выбрать]
  1. AcString inputPrompts[1] =
  2. {
  3.         "\nPick next point: [Size]"
  4. };
  5.  
  6. AcString kwords[1] =
  7. {
  8.         "Size"
  9. };
  10.  
и сюда:
Код - C++ [Выбрать]
  1. case kKW1:
  2. {
  3.         int newSize = 0;
  4.         if (acedGetInt(_T("\nEnter new size: "), &newSize) == RTNORM)
  5.         {
  6.                 dripl->AddSize(newSize);
  7.                 dripl->UpdateLastSegment();
  8.         }      
  9. }
  10.  
Теперь промпт показывает keyword, но совершенно не реагирует на ввод. Просто отвечает: "Invalid 2D point." и показывает то же самое.

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: AcEdJig и Keywords
« Ответ #1 : 04-09-2021, 23:07:40 »
Давай полный проект (без мусора). Подозреваю, что так как ты хочешь сделать не получится. По ключевому слову нужно завершать Jig, получать дополнительную информацию и затем запускать Jig. Или как минимум менять acedGetInt на acquireDist.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Михаил ГолубевАвтор темы

  • ADN OPEN
  • Сообщений: 26
  • Карма: 0
Re: AcEdJig и Keywords
« Ответ #2 : 05-09-2021, 00:12:49 »
Спасибо, хорошо, этого я не прочел в доках.

Идея была с помощью кворда модифициривать вызывающий объект, и потом продолжить джиг.

Но, в принципе, можно из него и выйти, назначить значение и снова запустить. Я то не знал, что невозможно чего то другого сделать.

Прилагаю проект на всякий случай.

Оффлайн Михаил ГолубевАвтор темы

  • ADN OPEN
  • Сообщений: 26
  • Карма: 0
Re: AcEdJig и Keywords
« Ответ #3 : 05-09-2021, 01:10:04 »
В общем, чего то не работает... Джиг не реагирует на ключевое слово.

Сделал теперь так, что ККВ1 завершает джигу, и занимаюсь своими делами вне. Потом снова запускаю джигу. Но это не работает, так как джига упорно не хочет распознавать ключевое слово...

Код - C++ [Выбрать]
  1. case kKW1:
  2.         quit = true;
  3.         break;
  4.  

Проект прилагается.

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: AcEdJig и Keywords
« Ответ #4 : 05-09-2021, 01:13:58 »
Михаил Голубев,
Завтра посмотрю. Пока же четко вижу, что ты не допонял идею.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Михаил ГолубевАвтор темы

  • ADN OPEN
  • Сообщений: 26
  • Карма: 0
Re: AcEdJig и Keywords
« Ответ #5 : 05-09-2021, 09:40:12 »
Да, конечно, я же только начал изучать ObjectARX и вообще я не программист по профессии...

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: AcEdJig и Keywords
« Ответ #6 : 05-09-2021, 15:27:13 »
Да, конечно, я же только начал изучать ObjectARX и вообще я не программист по профессии...
Начинать изучать ObjectARX с написания Custom Entity и Jig - это конечно круто...
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Отмечено как Решение Михаил Голубев 05-09-2021, 23:02:02

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: AcEdJig и Keywords
« Ответ #7 : 05-09-2021, 17:22:51 »
Но это не работает, так как джига упорно не хочет распознавать ключевое слово...
Т.е. по ветке case kKW1: ты вообще не проходишь? Тогда смотрим два момента:
1) Почему:
Код - C++ [Выбрать]
  1. AcString kwords[1] =
  2. {
  3.         "Size"
  4. };
а не
Код - C++ [Выбрать]
  1. AcString kwords[1] =
  2. {
  3.         _T("Size")
  4. };
P.S.: Кстати в ObjectARX начиная с версии 2007 везде только unicode-строки, т.е. _T("...") или L"..."

2. setKeywordList() следует перенести в DRILineJig::sampler(), т.к. setKeywordList() должно отрабатывать в цикле.

3. Рекомендую тебе посмотреть вот этот пример, взятый из ObjectARX 2007. Я его адаптировал для AutoCAD 2021...2022.


Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Михаил ГолубевАвтор темы

  • ADN OPEN
  • Сообщений: 26
  • Карма: 0
Re: AcEdJig и Keywords
« Ответ #8 : 05-09-2021, 23:01:58 »
Спасибо, заработало.
Вообще-то, я, вчера, прочитал в доках, что:
Цитировать
This function must be called from within the AcEdJig::sampler()
Но чего-то, я как-то не сообразил или что-то меня отвлекло... и ктому же визард эту функцию не туда ставит -- для новичка трудно все это сообразить.