Сообщество программистов Autodesk в СНГ

ADN Club => ObjectARX => Тема начата: Sergey P от 18-12-2019, 10:15:02

Название: Jig получить координаты с учетом привязки
Отправлено: Sergey P от 18-12-2019, 10:15:02
Друзья.
Подскажите, может кто встречал в сети.
Хочу получить координаты с учетом привязки к объекту через Jig, как в нижнем левом углу.




Название: Re: Jig получить координаты с учетом привязки
Отправлено: Александр Ривилис от 18-12-2019, 11:26:52
1. Начни с того, что покажи свой код.
2. В принципе если всё правильно, то ты должен получать координаты с учетом привязки.
3. В крайнем случае можешь воспользоваться AcEdInputPointMonitor. Там computedPoint должно возвращать точку с учетом привязок.
4. Видео добавляй на форум, как написано у меня в подписи.
Название: Re: Jig получить координаты с учетом привязки
Отправлено: Sergey P от 18-12-2019, 12:08:14
Код примитивный.
чтоб получать координаты использую 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. Спасибо.

Название: Re: Jig получить координаты с учетом привязки
Отправлено: Александр Ривилис от 18-12-2019, 12:13:17
Если мне не изменяет память нормально обрабатываются привязки при использовании формата acquirePoint (newPnt, oldPnt).
Но если хочешь, чтобы я потестировал, то давай проект целиком.
Название: Re: Jig получить координаты с учетом привязки
Отправлено: Sergey P от 18-12-2019, 12:37:29
Вот проект. Но похоже AcEdInputPointMonitor еще сложновато для меня ((
Название: Re: Jig получить координаты с учетом привязки
Отправлено: Александр Ривилис от 18-12-2019, 14:09:26
Ты такое хотел получить:



?
Название: Re: Jig получить координаты с учетом привязки
Отправлено: Sergey P от 18-12-2019, 14:13:27
Да! Именно!
Название: Re: Jig получить координаты с учетом привязки
Отправлено: Александр Ривилис от 18-12-2019, 14:24:19
Посмотри этот проект. Я сделал его под AutoCAD 2019, т.к. 2012-го у меня под руками нет. Тебе нужно будет просто изменить Jig_text_z.h на мой и добавить PointMonitor.h и PointMonitor.cpp к своему проекту.
Название: Re: Jig получить координаты с учетом привязки
Отправлено: Sergey P от 18-12-2019, 14:50:46
Посмотри этот проект. Я сделал его под AutoCAD 2019, т.к. 2012-го у меня под руками нет. Тебе нужно будет просто изменить Jig_text_z.h на мой и добавить PointMonitor.h и PointMonitor.cpp к своему проекту.

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


 
Название: Re: Jig получить координаты с учетом привязки
Отправлено: Sergey P от 11-04-2020, 19:58:53
Посмотри этот проект. Я сделал его под 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"
Название: Re: Jig получить координаты с учетом привязки
Отправлено: Александр Ривилис от 11-04-2020, 21:07:28
Александр, можно ли этот проект изменить так, чтобы он мог компилироваться без ошибки для 2021?
Можно. Смотри прикрепленный пример.
Название: Re: Jig получить координаты с учетом привязки
Отправлено: Sergey P от 11-04-2020, 22:00:49
Александр, можно ли этот проект изменить так, чтобы он мог компилироваться без ошибки для 2021?
Можно. Смотри прикрепленный пример.

Спасибо Огромное Александр!
Название: Re: Jig получить координаты с учетом привязки
Отправлено: Lemieux от 13-04-2020, 12:13:28
Прошу прощения за оффтоп. А возможно ли на .NET получить такой же эффект как на видео, где координаты отображаются рядом с курсором?
Название: Re: Jig получить координаты с учетом привязки
Отправлено: Александр Ривилис от 13-04-2020, 12:15:16
Прошу прощения за оффтоп. А возможно ли на .NET получить такой же эффект как на видео, где координаты отображаются рядом с курсором?
Да.
Название: Re: Jig получить координаты с учетом привязки
Отправлено: Lemieux от 13-04-2020, 12:22:21
Прошу прощения за оффтоп. А возможно ли на .NET получить такой же эффект как на видео, где координаты отображаются рядом с курсором?
Да.
Александр, а не подскажите в какую сторону копать?
Название: Re: Jig получить координаты с учетом привязки
Отправлено: Александр Ривилис от 13-04-2020, 12:23:35
Александр, а не подскажите в какую сторону копать?
Создай тему в разделе .NET и объясни что именно ты хочешь получить - тут есть разные способы.
Название: Re: Jig получить координаты с учетом привязки
Отправлено: Lemieux от 13-04-2020, 12:28:02
Александр, а не подскажите в какую сторону копать?
Создай тему в разделе .NET и объясни что именно ты хочешь получить - тут есть разные способы.
Так я пока ничего не делаю, мне просто стало интересно возможно ли, и если возможно, то узнать хотя бы куда смотреть. А интересуюсь для того, чтобы была практика.
Название: Re: Jig получить координаты с учетом привязки
Отправлено: Александр Ривилис от 13-04-2020, 12:55:00
Александр, а не подскажите в какую сторону копать?
Создай тему в разделе .NET и объясни что именно ты хочешь получить - тут есть разные способы.
Так я пока ничего не делаю, мне просто стало интересно возможно ли, и если возможно, то узнать хотя бы куда смотреть. А интересуюсь для того, чтобы была практика.
Оффтоп прекращаем. Повторюсь. Если интересно - создай тему в разделе .NET
Название: Re: Jig получить координаты с учетом привязки
Отправлено: alsh от 22-04-2020, 16:39:29
Александр добрый день!
При компиляции в VS2019 (Win10) вашего проекта получаю ошибку

Error C1083 Cannot open include file: 'arxHeaders.h': No such file or directory
Что-то я неправильно установил...  :-\
Название: Re: Jig получить координаты с учетом привязки
Отправлено: Александр Ривилис от 22-04-2020, 16:51:45
Александр добрый день!
При компиляции в VS2019 (Win10) вашего проекта получаю ошибку

Error C1083 Cannot open include file: 'arxHeaders.h': No such file or directory
Что-то я неправильно установил...  :-\

Нет. Всё правильно. В файле Autodesk.arx-2021.props установлены мои значения для каталога с ObjectARX SDK 2021.
Необходимо в этом файле заменить строку:
Код - XML [Выбрать]
  1. <ArxSdkDir>E:\ObjectARX2021\</ArxSdkDir>
на
Код - XML [Выбрать]
  1. <ArxSdkDir>C:\Autodesk\ObjectARX_for_AutoCAD_2021_Win_64bit_dlm\</ArxSdkDir>
(если ObjectARX SDK 2021 установлен по стандартному пути)