Странное поведение Editor.Drag

Автор Тема: Странное поведение Editor.Drag  (Прочитано 8601 раз)

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

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

  • ADN Club
  • **
  • Сообщений: 62
  • Карма: 4
Есть команда копирующая из одного чертежа в другой выбранные пользователем объекты. Во втором чертеже пользователю необходимо указать точку вставки и угол поворота временного блока (через jig).

1. Открываю AutoCAD с новым чертежом (/t acad.dwt) - Чертёж 1.
2. Загружаю сборку.
3. Создаю еще один чертёж - Чертёж 2.
4. В Чертеже 2 выполняю команду.
5. В Чертеже 1 запрашивается точка вставки и угол поворота, устанавливается блок.
6. Возвращаюсь в Чертёж 2 и снова выполняю команду.
7. В Чертёже 1 - ed.Drag(jig) возвращает PromptStatus.Cancel

Собственно вопрос - почему и как бороться?

Windows 7 x64 SP1, AutoCAD 2013 SP 2 и AutoCAD 2015 SP 2

Код:
Извините, вам запрещён просмотр содержимого спойлеров.

Отмечено как Решение bender 30-06-2016, 01:19:19

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

  • Administrator
  • *****
  • Сообщений: 13891
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Странное поведение Editor.Drag
« Ответ #1 : 29-06-2016, 23:48:33 »
Собственно вопрос - почему и как бороться?
Это нормально. Думаю, что тебе придется разделить свою команду на две. В первой собираешь информацию (она может быть и с флагом Session), а затем переключившись на нужный документ запускаешь вторую (модальную) команду через SendStringToExecute, в которой уже и выполняешь jig. Если ты обратил внимание, то в пределах одного документа (т.е. без переключения) всё работает нормально.
Хотя из всего, что ты тут написал я не понял зачем это всё нужно....
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 13891
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Странное поведение Editor.Drag
« Ответ #2 : 30-06-2016, 00:16:55 »
А вот и реализация (ох уж этот VB.NET...):
Извините, вам запрещён просмотр содержимого спойлеров.

И так оно выглядит:

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

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

  • ADN Club
  • **
  • Сообщений: 62
  • Карма: 4
Re: Странное поведение Editor.Drag
« Ответ #3 : 30-06-2016, 00:42:52 »
Спасибо за код.  ;D Но там всё малость сложнее. Это я "понадёргал" по-быстрому. Но идея понятна, когда-то так и было. И не команда тогда, наверное, а lisp-функция.

Хотя из всего, что ты тут написал я не понял зачем это всё нужно....

Этой программе уже сто лет в обед, со времен ещё AutoCAD 2000i. Тогда так и было, два отдельных макроса (VBA + Lisp). Изначально она была нужна для копирования внешних ссылок между чертежами (была такая беда тогда, не копировались они через буфер) + надо было ещё скопировать соответствующие словари и Х-записи. Потом на Net всю систему переделали, под 2008-й кажется. Пользователи привыкли уже к "кнопке" - переписали и её до кучи.

Если ты обратил внимание, то в пределах одного документа (т.е. без переключения) всё работает нормально.

А с чего бы ему не работать?

Это нормально.

Почему нормально-то? На рельсы, конечно, ложится не буду, но в 2008-2010 работало. Что тут такого "криминального"?


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

  • Administrator
  • *****
  • Сообщений: 13891
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Странное поведение Editor.Drag
« Ответ #4 : 30-06-2016, 00:49:57 »
Почему нормально-то? На рельсы, конечно, ложится не буду, но в 2008-2010 работало. Что тут такого "криминального"?
Вот тебе наводка: http://forums.autodesk.com/t5/net/editor-getpoint-cancelled-automatically-after-mdiactivedocument/td-p/5527329
(примечание: Editor.GetPoint и JigPrompts.AcquirePoint - близнецы братья)
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 13891
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Странное поведение Editor.Drag
« Ответ #5 : 30-06-2016, 00:53:30 »
И не команда тогда, наверное, а lisp-функция.
Именно команда, а данные будешь передавать через статические (Shared) переменные. Смысла в создании lisp-функции не вижу.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN Club
  • **
  • Сообщений: 62
  • Карма: 4
Re: Странное поведение Editor.Drag
« Ответ #6 : 30-06-2016, 00:59:16 »
Смысла в создании lisp-функции не вижу
Чтобы пытливому юзеру не была видна  :D

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

  • Administrator
  • *****
  • Сообщений: 13891
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Странное поведение Editor.Drag
« Ответ #7 : 30-06-2016, 01:05:20 »
Чтобы пытливому юзеру не была видна  :D
Ты не обратил внимание, на флаг CommandFlags.NoHistory, который я указал для второй команды? Это именно для этой цели.
Впрочем при помощи AddCommand / RemoveCommand ты можешь добавлять/удалять команды динамически: http://adn-cis.org/forum/index.php?topic=4286.msg15988#msg15988
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN Club
  • **
  • Сообщений: 62
  • Карма: 4
Re: Странное поведение Editor.Drag
« Ответ #8 : 30-06-2016, 01:06:20 »
Ты не обратил внимание, на флаг CommandFlags.NoHistory, который я указал для второй команды?

Да, есть такой грех.

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

  • ADN Club
  • **
  • Сообщений: 62
  • Карма: 4
Re: Странное поведение Editor.Drag
« Ответ #9 : 30-06-2016, 01:20:24 »
Вроде понятно. Ладно, переделаем. Спасибо.