Jig получить координаты с учетом привязки

Автор Тема: Jig получить координаты с учетом привязки  (Прочитано 8628 раз)

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

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

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

  • ADN OPEN
  • Сообщений: 17
  • Карма: 0
  • ObjectArx C++
Друзья.
Подскажите, может кто встречал в сети.
Хочу получить координаты с учетом привязки к объекту через Jig, как в нижнем левом углу.




« Последнее редактирование: 18-12-2019, 13:08:17 от Sergey P »

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
1. Начни с того, что покажи свой код.
2. В принципе если всё правильно, то ты должен получать координаты с учетом привязки.
3. В крайнем случае можешь воспользоваться AcEdInputPointMonitor. Там computedPoint должно возвращать точку с учетом привязок.
4. Видео добавляй на форум, как написано у меня в подписи.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • Сообщений: 17
  • Карма: 0
  • ObjectArx C++
Код примитивный.
чтоб получать координаты использую acquirePoint.
Он дает просто координаты перекрестия.


Код - C++ [Выбрать]
  1. AcEdJig::DragStatus Jig_text_z::sampler()
  2. {
  3.     DragStatus stat;
  4.                  
  5.                 setUserInputControls(
  6.                         (UserInputControls)
  7.                         (AcEdJig::kAccept3dCoordinates)
  8.                         );
  9.                        
  10.                         static AcGePoint3d axisPointTemp;
  11.  
  12.                         stat = acquirePoint(point);
  13.                         if (axisPointTemp != point) axisPointTemp = point;
  14.                         else if (stat == AcEdJig::kNormal) return AcEdJig::kNoChange;
  15.         return stat;
  16.  
  17. }
  18.  
  19. Adesk::Boolean Jig_text_z::update()
  20. {
  21.  
  22.                         ACHAR newtext[255];
  23.                         acutSPrintf(newtext,_T("%.3f %.3f %.3f"),point.x,point.y,point.z);
  24.                         pText->setTextString(newtext);
  25.  
  26.  
  27.                         pText->setPosition(point);
  28.  
  29.         return Adesk::kTrue;
  30. }
  31.  
  32.  

Буду копать в сторону AcEdInputPointMonitor. Спасибо.


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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Если мне не изменяет память нормально обрабатываются привязки при использовании формата acquirePoint (newPnt, oldPnt).
Но если хочешь, чтобы я потестировал, то давай проект целиком.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • Сообщений: 17
  • Карма: 0
  • ObjectArx C++
Вот проект. Но похоже AcEdInputPointMonitor еще сложновато для меня ((

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Ты такое хотел получить:



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

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

  • ADN OPEN
  • Сообщений: 17
  • Карма: 0
  • ObjectArx C++
Да! Именно!

Отмечено как Решение Sergey P 18-12-2019, 14:50:49

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Посмотри этот проект. Я сделал его под AutoCAD 2019, т.к. 2012-го у меня под руками нет. Тебе нужно будет просто изменить Jig_text_z.h на мой и добавить PointMonitor.h и PointMonitor.cpp к своему проекту.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • Сообщений: 17
  • Карма: 0
  • ObjectArx C++
Посмотри этот проект. Я сделал его под AutoCAD 2019, т.к. 2012-го у меня под руками нет. Тебе нужно будет просто изменить Jig_text_z.h на мой и добавить PointMonitor.h и PointMonitor.cpp к своему проекту.

Спасибо огромное Александр! Все работает! буду изучать.


 

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

  • ADN OPEN
  • Сообщений: 17
  • Карма: 0
  • ObjectArx C++
Посмотри этот проект. Я сделал его под AutoCAD 2019, т.к. 2012-го у меня под руками нет. Тебе нужно будет просто изменить Jig_text_z.h на мой и добавить PointMonitor.h и PointMonitor.cpp к своему проекту.

Александр, можно ли этот проект изменить так, чтобы он мог компилироваться без ошибки для 2021?

Сейчас показывает это:
JigSnap\Jig_snap\PointMonitor.h(76,28): error C3248: AcEdInputPointMonitor::monitorInputPoint: функцию, объявленную как "final", нельзя переопределить с помощью "PointMonitor::monitorInputPoint"

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Александр, можно ли этот проект изменить так, чтобы он мог компилироваться без ошибки для 2021?
Можно. Смотри прикрепленный пример.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • Сообщений: 17
  • Карма: 0
  • ObjectArx C++
Александр, можно ли этот проект изменить так, чтобы он мог компилироваться без ошибки для 2021?
Можно. Смотри прикрепленный пример.

Спасибо Огромное Александр!

Оффлайн Lemieux

  • ADN OPEN
  • ****
  • Сообщений: 379
  • Карма: 21
Прошу прощения за оффтоп. А возможно ли на .NET получить такой же эффект как на видео, где координаты отображаются рядом с курсором?

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Прошу прощения за оффтоп. А возможно ли на .NET получить такой же эффект как на видео, где координаты отображаются рядом с курсором?
Да.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Lemieux

  • ADN OPEN
  • ****
  • Сообщений: 379
  • Карма: 21
Прошу прощения за оффтоп. А возможно ли на .NET получить такой же эффект как на видео, где координаты отображаются рядом с курсором?
Да.
Александр, а не подскажите в какую сторону копать?