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

ADN Club => AutoCAD .NET API => Тема начата: valtur1983 от 03-12-2021, 18:30:01

Название: Определение координат позиции курсора по щелчку мыши
Отправлено: valtur1983 от 03-12-2021, 18:30:01
Доброго здравия форумчане!

Необходимо рекурсивно получать координаты курсора, когда пользователь нажимает лев.кнопку мыши, выход из процедуры по правому клику. Смотрел методы в Editor, но как я понял там Методы только по выбору примитивов пользователем. Подскажите какой метод может это реализовать?
Название: Re: Определение координат позиции курсора по щелчку мыши
Отправлено: Александр Ривилис от 03-12-2021, 18:35:00
Необходимо рекурсивно получать координаты курсора
1. Ты не понимаешь что такое рекурсия. Видимо речь шла о циклическом запросе.
2. Что имеется в виду под координатами курсора? Это могут быть координаты в модели/листе AutoCAD или координаты курсора в Windows окне AutoCAD (они ограничены количеством пикселей этого окна)
Скорее всего тебе нужно Editor.GetPoint() - возвращает координаты точки указания в ПСК (UCS).
Название: Re: Определение координат позиции курсора по щелчку мыши
Отправлено: valtur1983 от 03-12-2021, 18:40:09
1. Ну да циклический вызов процедуры
2. Суть. В пространстве Модели у пользователя запрашивается указать точки (сами точки не начерчены). Пользователь кликает в Моделе в определенных местах. Необходимо считать координаты где он щелкает мышкой. Координаты пространства модели нужны.
Название: Re: Определение координат позиции курсора по щелчку мыши
Отправлено: Александр Ривилис от 03-12-2021, 18:53:19
Необходимо считать координаты где он щелкает мышкой. Координаты пространства модели нужны.
Тогда я был прав:
Скорее всего тебе нужно Editor.GetPoint() - возвращает координаты точки указания в ПСК (UCS).
Возможно потребуется еще и преобразование ПСК->МСК (зависит о того что ты дальше с этими точками собираешься делать).
Название: Re: Определение координат позиции курсора по щелчку мыши
Отправлено: valtur1983 от 04-12-2021, 08:31:35
Спасибо то что надо!

Но появилась проблема, как отработать правый щелчок мышки для выхода из цикла. При нажатии на нее не могу отловить отладчиком Status выбора (на экране появляется сообщение "Неверная точка." и прога просит указать верную точку. При нажатии Esc формируется выход (PromptStatus.Cancel). Как бы и для щелчка правой кнопки сформировать подобный статус.

Просто стандартные функции акада вроде как по умолчанию воспринимают правый щелчок как останов процедуры.
Название: Re: Определение координат позиции курсора по щелчку мыши
Отправлено: valtur1983 от 04-12-2021, 09:56:30
Разобрался,

Надо использовать AllowNone=true в классе PromptPointOptions