В чем отличия EntytyJig от DrawJig?

Автор Тема: В чем отличия EntytyJig от DrawJig?  (Прочитано 93121 раз)

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

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: В чем отличия EntytyJig от DrawJig?
« Ответ #15 : 08-08-2016, 13:44:00 »
Хотелось бы. ) Думаю, со временем пойму.
Просто в некоторых случаях (на определенных блоках) смотрится совсем не очень.
Ну если приведёшь код, то будет понятно в чем проблема. Скорее всего скрываешь не тот блок.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Максим МаркевичАвтор темы

  • ADN Club
  • ****
  • Сообщений: 254
  • Карма: 29
  • Skype: evthisrel
Re: В чем отличия EntytyJig от DrawJig?
« Ответ #16 : 08-08-2016, 13:46:32 »
Ну если приведёшь код, то будет понятно в чем проблема. Скорее всего скрываешь не тот блок.
Я уже привел (#12). :)
Добавляю подкорректированный, как я считаю, код, который позволяет манипулировать блоком, как в посте #8:
Спойлер

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: В чем отличия EntytyJig от DrawJig?
« Ответ #17 : 08-08-2016, 16:23:56 »
Я уже привел (#12). :)
И где же ты там прячешь блок? Я уже не говорю, что у тебя там есть куча странностей, типа ненужных  blockRef.Dispose();

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

Оффлайн Максим МаркевичАвтор темы

  • ADN Club
  • ****
  • Сообщений: 254
  • Карма: 29
  • Skype: evthisrel
Re: В чем отличия EntytyJig от DrawJig?
« Ответ #18 : 08-08-2016, 16:35:29 »
И где же ты там прячешь блок?
Так я же и говорю, что ничего не вышло. :-\
Я уже не говорю, что у тебя там есть куча странностей, типа ненужных  blockRef.Dispose();
Работал с примером из поста #1 данной темы. Там был Dispose(), вот я и оставил. Полного понимания работы каждой строчки нет, отсюда и странности.

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: В чем отличия EntytyJig от DrawJig?
« Ответ #19 : 08-08-2016, 16:51:02 »
Так я же и говорю, что ничего не вышло. :-\
Для то, чтобы скрыть вставленный в базу примитив необходимо использовать свойство Visible (устанавливать его в false).
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Максим МаркевичАвтор темы

  • ADN Club
  • ****
  • Сообщений: 254
  • Карма: 29
  • Skype: evthisrel
Re: В чем отличия EntytyJig от DrawJig?
« Ответ #20 : 08-08-2016, 17:35:14 »
Для то, чтобы скрыть вставленный в базу примитив необходимо использовать свойство Visible (устанавливать его в false).
Сделано. В первой транзакции после первого Jig (перед добавлением нового DBOObject) добавил false, а потом во втором Jig в WorldDraw добавил true и все так, как надо. Спасибо!

Оффлайн Владимир Шу

  • ADN Club
  • *****
  • Сообщений: 624
  • Карма: 158
    • ПГСу Бложик
Re: В чем отличия EntytyJig от DrawJig?
« Ответ #21 : 09-08-2016, 09:56:21 »
А есть ли способ заставить работать ОРТО режим при ввод в коде опубликованном в этом посте ?
Добавление UserInputControls.GovernedByOrthoMode в  методе MyBlockJig2.Sampler() к нужному результату не приводят
На всякий случай вот код метода:
Код - C# [Выбрать]
  1.         protected override SamplerStatus Sampler(JigPrompts prompts)
  2.         {
  3.             var jigOpts = new JigPromptPointOptions("\nEnd point: ") as JigPromptPointOptions;
  4.             jigOpts.UserInputControls =
  5.                 (UserInputControls.Accept3dCoordinates |
  6.                  UserInputControls.NullResponseAccepted |
  7.                  UserInputControls.GovernedByOrthoMode);
  8.  
  9.             jigOpts.Message = "Select a point:";
  10.  
  11.             var jigRes = prompts.AcquirePoint();
  12.            
  13.  
  14.             var pt = jigRes.Value;
  15.             if (pt == Pt2)
  16.                 return SamplerStatus.NoChange;
  17.             Pt2 = pt;
  18.             if (jigRes.Status == PromptStatus.OK)
  19.                 return SamplerStatus.OK;
  20.             return SamplerStatus.Cancel;
  21.         }

Оффлайн Максим МаркевичАвтор темы

  • ADN Club
  • ****
  • Сообщений: 254
  • Карма: 29
  • Skype: evthisrel
Re: В чем отличия EntytyJig от DrawJig?
« Ответ #22 : 09-08-2016, 10:08:10 »
А есть ли способ заставить работать ОРТО режим при ввод в коде опубликованном в этом посте ?
Добавление UserInputControls.GovernedByOrthoMode в  методе MyBlockJig2.Sampler() к нужному результату не приводят
Дело в том, что у меня построение происходит по 2м точкам, поэтому орто и не работает (как мне кажется). Вот если использовать совет Александра Ривилиса:
Для определения угла поворота можно воспользоваться не AcquirePoint, а AcquireAngle, чтобы было больше похоже на то, как это делает AutoCAD при вставке блока.
То, думаю, будет работать. Пока сам не пробовал, потому что все эти вопросы затевались для другого блока, а этот - просто что-то первое простое, что пришло в голову.
Я в дальнейшем возился с подобными блоками:



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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: В чем отличия EntytyJig от DrawJig?
« Ответ #23 : 09-08-2016, 11:03:47 »
Boxa.Shu
Насколько я помню орто возможно только тогда, когда задана базовая точка, т.е.
Код - C# [Выбрать]
  1. jigOpts.BasePoint = [базовая точка];
  2. jigOpts.UseBasePoint = true;
« Последнее редактирование: 09-08-2016, 11:42:09 от Александр Ривилис »
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Владимир Шу

  • ADN Club
  • *****
  • Сообщений: 624
  • Карма: 158
    • ПГСу Бложик
Re: В чем отличия EntytyJig от DrawJig?
« Ответ #24 : 09-08-2016, 12:23:08 »
Насколько я помню орто возможно только тогда, когда задана базовая точка, т.е.

Я видел эту и эту ссылки, код пробовал по  всякому, орто запустить не получилось, сообщения объявленное в jigOpts.Message не выводятся (я сильно сомневаюсь что    evthisrel менял код метода MyBlockJig2.Sampler под новый блок и у него в видео из 22 сообщения видно, что сообщение не выводится):

Код - C# [Выбрать]
  1.            
  2.             var jigOpts = new JigPromptPointOptions("\nEnd point: ") as JigPromptPointOptions;
  3.             jigOpts.BasePoint = Pt1;
  4.             jigOpts.UseBasePoint = true;
  5.             jigOpts.UserInputControls =
  6.                 (UserInputControls.Accept3dCoordinates |
  7.                  UserInputControls.NullResponseAccepted |
  8.                  UserInputControls.GovernedByOrthoMode);
  9.            
  10.             //jigOpts.BasePoint = Pt1;
  11.             //jigOpts.UseBasePoint = true;
  12.             jigOpts.Message = "\nSelect a point:";
  13.  
  14.             var jigRes = prompts.AcquirePoint();

ЗЫ.
Поправил ссылки. Недопоняли мы друг друга с движком форума и он лишний заголовок добавил. =(

Оффлайн Максим МаркевичАвтор темы

  • ADN Club
  • ****
  • Сообщений: 254
  • Карма: 29
  • Skype: evthisrel
Re: В чем отличия EntytyJig от DrawJig?
« Ответ #25 : 09-08-2016, 12:33:23 »
Я видел эту и эту ссылки
Boxa.Shu, извини, что-то ссылки твои не открываются, не мог бы ты подкорректировать?
я сильно сомневаюсь что    evthisrel менял код метода MyBlockJig2.Sampler под новый блок и у него в видео из 22 сообщения видно, что сообщение не выводится
Да, ты прав. Сообщение не выводится. И я не разобрался, почему.

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: В чем отличия EntytyJig от DrawJig?
« Ответ #26 : 09-08-2016, 12:33:47 »
Вставляй нормально ссылки. Или сам попробуй по ним перейти.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: В чем отличия EntytyJig от DrawJig?
« Ответ #27 : 09-08-2016, 12:39:03 »
сообщения объявленное в jigOpts.Message не выводятся (я сильно сомневаюсь что    evthisrel менял код метода MyBlockJig2.Sampler под новый блок и у него в видео из 22 сообщения видно, что сообщение не выводится):
А должно было выводится? Откуда prompts.AcquirePoint() знать о существовании jigOpts ???
Может быть должно быть как-то так:
Код - C# [Выбрать]
  1. var jigRes = prompts.AcquirePoint(jigOpts);
вместо
Код - C# [Выбрать]
  1. var jigRes = prompts.AcquirePoint();

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

Оффлайн Владимир Шу

  • ADN Club
  • *****
  • Сообщений: 624
  • Карма: 158
    • ПГСу Бложик
Re: В чем отличия EntytyJig от DrawJig?
« Ответ #28 : 09-08-2016, 12:42:08 »
Откуда prompts.AcquirePoint() знать о существовании jigOpts
Так, разобрался. Перегрузки этого метода я и не посмотрел... все заработало. Спасибо.

Оффлайн Максим МаркевичАвтор темы

  • ADN Club
  • ****
  • Сообщений: 254
  • Карма: 29
  • Skype: evthisrel
Re: В чем отличия EntytyJig от DrawJig?
« Ответ #29 : 09-08-2016, 12:50:08 »
А должно было выводится? Откуда prompts.AcquirePoint() знать о существовании jigOpts
Спасибо!
Насколько я помню орто возможно только тогда, когда задана базовая точка
Получается, нет, достаточно только того, что Boxa.Shu дописал (точнее, я не задавал базовую точку, а просто дописал опцию, и все работает с орто):
Код - C# [Выбрать]
  1. UserInputControls.GovernedByOrthoMode