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

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

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

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: В чем отличия EntytyJig от DrawJig?
« Ответ #105 : 15-10-2016, 15:13:31 »
А не могли бы Вы пояснить физический смысл UpdateDimensions?
При изменении положения/размеров объекта необходимо изменить положение и значение динамического размера. Эта функция приводит динамические размеры в соотвествие.
И еще, я не могу понять, как задавать динамический угол, используя AlignedDimension?
Это когда я смогу добраться до PC. Только вроде тип размера ты выбрал не правильно. Он угол не измеряет.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN Club
  • ****
  • Сообщений: 254
  • Карма: 29
  • Skype: evthisrel
Re: В чем отличия EntytyJig от DrawJig?
« Ответ #106 : 15-10-2016, 15:21:41 »
Это когда я смогу добраться до PC. Только вроде тип размера ты выбрал не правильно. Он угол не измеряет.
Ааа, я что-то прикинул, что этот всемогущий размер _dim, относится к одному классу, а нет.
Теперь понял.

При изменении положения/размеров объекта необходимо изменить положение и значение динамического размера. Эта функция приводит динамические размеры в соотвествие.
Я просто сделал несколько иначе, в WorldDraw запихнул, и вот думаю, ерунды наделал и случайно работает или и так сойдет. :D

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

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

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

  • ADN Club
  • ****
  • Сообщений: 254
  • Карма: 29
  • Skype: evthisrel
Re: В чем отличия EntytyJig от DrawJig?
« Ответ #108 : 15-10-2016, 23:09:45 »
Нужна помощь, братцы. :( Чувствую, что проблемка рядом, но что-то не могу найти ее. Блок с динамическими размерами (длина и угол) - хочу чтобы все хорошо работало :)
Суть проблемы в скринкасте:

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


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

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

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

  • ADN Club
  • ****
  • Сообщений: 254
  • Карма: 29
  • Skype: evthisrel
Re: В чем отличия EntytyJig от DrawJig?
« Ответ #110 : 16-10-2016, 00:14:35 »
Сравни реализацию своего DragMe и моего. Обрати внимание, что мой зациклен.
А я и не знал, что те две строчки могут означать зацикленность, точнее не подумал о них.
У Вас используется
Код - C# [Выбрать]
  1. public PromptStatus DragMe()
а у меня использовался
Код - C# [Выбрать]
  1. public PromptResult DragMe(ObjectId blockId, out Point3d pt)
потому что я так четче вижу работу с блоком, хотя что я вижу :)
В общем, спасибо за совет.
Сейчас делаю под Ваш манер. Отпишусь о результатах.

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: В чем отличия EntytyJig от DrawJig?
« Ответ #111 : 16-10-2016, 00:16:42 »
А я и не знал, что те две строчки могут означать зацикленность, точнее не подумал о них.
while как-бы подразумевает цикл...
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN Club
  • ****
  • Сообщений: 254
  • Карма: 29
  • Skype: evthisrel
Re: В чем отличия EntytyJig от DrawJig?
« Ответ #112 : 16-10-2016, 01:03:27 »
while как-бы подразумевает цикл...
Это понятно, но в целом, в тех строках много непонятного. Косяк по невнимательности, в общем:
Код - C# [Выбрать]
  1. public PromptStatus DragMe()
Я задумался, почему во всех примерах, по которым я работал до этого использовался:
Код - C# [Выбрать]
  1. public PromptResult DragMe()
По крайней мере, из PromptResult я могу точку достать, поэтому я и подумал - оставлю как есть. Теперь понял, что слона то и не заметил.
Но вот сделал по аналогии с Вашим примером - теперь стало все слишком зацикленно :


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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: В чем отличия EntytyJig от DrawJig?
« Ответ #113 : 16-10-2016, 01:15:36 »
Что-то ты еще в моём примере не досмотрел. Утро вечера мудренее - завтра найдёшь.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN Club
  • ****
  • Сообщений: 254
  • Карма: 29
  • Skype: evthisrel
Re: В чем отличия EntytyJig от DrawJig?
« Ответ #114 : 16-10-2016, 18:43:44 »
Утро вечера мудренее - завтра найдёшь.
Спасибо, конечно, за напутствия, но вышло, что вечер вечера мудренее :)
Напишу немного о том, что я понял за эти выходные. Мало ли, кто-то еще решит разбираться с подобными делами (в общем, это гайд для неопытных типа меня):
1. Нужно иметь пример от Александра Ривилиса.
2. Нужно четко понимать, что такое DragMe, SamplerStatus, WorldDraw и OnDimensionValueChanged, а также как и в какой последовательности реализована их работа в классе, унаследованном от DrawJig.
3. Обязательно вспомнить геометрию и понимать (в зависимости от целей), как работают методы типа DistanceTo, GetVectorTo, GetAngleTo (тут лучше сразу создать отдельный метод и поэкспериметировать).
4. Для динамических размеров, в зависимости от того, какие нужны, важно понимать их классы (их можно посмотреть, используя любую утилиту) типа LineAngularDimension2 или AlignedDimension, затем важно открыть arxmgd.chm и посмотреть их свойства.
5. Важно понимать, что такое CurrentUserCoordinateSystem и для чего нужна. Вроде как все просто, но тем не менее..
В итоге, вот как вышло решить задачу из поста:

А можно было не заморачиваться и просто использовать динамический ввод:

Мне кажется, что это даже лучше выглядит :), тем не менее, разбираться было очень интересно.

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

  • ADN Club
  • ****
  • Сообщений: 254
  • Карма: 29
  • Skype: evthisrel
Re: В чем отличия EntytyJig от DrawJig?
« Ответ #115 : 17-10-2016, 23:57:02 »
Ребзя, произошла очень странная ситуация.
Я разобрался с динамическими размерами, все работало и было круто.
Потом вечером я доставил на свой 2017x64 AutoCAD английский пакет (иногда проще с позиций программирования смотреть некоторые вещи), соответственно, на компе стало два 2017 автокада (английский и русский).
И мой код с динамическими размерами перестал работать в русском, при это исправно работает в английском (см. скринкаст). Я в недоумении. Как такое могло произойти? Может, кто-то сталкивался? Заранее, спасибо за помощь.

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: В чем отличия EntytyJig от DrawJig?
« Ответ #116 : 18-10-2016, 01:37:02 »
Пойдём от обратного. Мой код в твоём AutoCAD 2017 с русской локализацией работает?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN Club
  • ****
  • Сообщений: 254
  • Карма: 29
  • Skype: evthisrel
Re: В чем отличия EntytyJig от DrawJig?
« Ответ #117 : 18-10-2016, 18:16:17 »
Пойдём от обратного. Мой код в твоём AutoCAD 2017 с русской локализацией работает?
Точно, как я не додумался Ваш код проверить. Буду дома только к ночи, сразу отпишусь.
Сразу хочу отметить, что на работе, где нет английского пакета, все работает в том же AutoCAD2017x64 на той же системе.

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: В чем отличия EntytyJig от DrawJig?
« Ответ #118 : 18-10-2016, 18:25:23 »
Честно говоря по твоему видео я не понял что происходит - слишком уж ты быстро на клавиши нажимаешь. :) Вроде переключение на другой размер происходит по нажатию любой клавиши или мне показалось?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN Club
  • ****
  • Сообщений: 254
  • Карма: 29
  • Skype: evthisrel
Re: В чем отличия EntytyJig от DrawJig?
« Ответ #119 : 18-10-2016, 18:34:27 »
Честно говоря по твоему видео я не понял что происходит - слишком уж ты быстро на клавиши нажимаешь.
Я психованный записывал просто (после проведенных часов разборок с кодом, когда разобрался, я ощутил счастье, а потом.. установил пакет английский, и код перестал работать - расстроился очень я) :). А происходит то, что ничего не вводится в динамический размер. В смысле, окошко не реагирует на нажатие клавиш (цифр).
Вроде переключение на другой размер происходит по нажатию любой клавиши или мне показалось?
Показалось, переключение через Tab, переключение работает. )
« Последнее редактирование: 19-10-2016, 14:25:39 от Максим Маркевич »