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

ADN Club => AutoCAD .NET API => Тема начата: andy_pu от 29-04-2015, 13:38:06

Название: Как ограничить пользовательский выбор вектором?
Отправлено: andy_pu от 29-04-2015, 13:38:06
Добрый день, уважаемые коллеги!
Подскажите, пожалуйста, возможно ли при пользовательском запросе расстояния (GetDistance) или числа двойной точности(GetDouble) ограничить перемещение мыши вектором? Как при включенном режиме "Орто", но только по одной из осей?
Спасибо!
Название: Re: Как ограничить пользовательский выбор вектором?
Отправлено: Дмитрий Загорулькин от 29-04-2015, 18:30:07
Перемещение мыши - это вряд ли. А вот отрисовывать, например, резиновую линию - это можно.
Название: Re: Как ограничить пользовательский выбор вектором?
Отправлено: Александр Ривилис от 29-04-2015, 18:49:07
возможно ли
Да. Это возможно. Средствами ObjectARX проще, но и при помощи .NET можно.
Название: Re: Как ограничить пользовательский выбор вектором?
Отправлено: andy_pu от 29-04-2015, 18:59:33
Спасибо за ответы, наверное я неправильно выразился. Курсор двигается как хочет, но точка выбора двигается только по одной из осей. Как, например, когда нажимаешь на одну из осей Гизмо, объект передвигается только по этой оси. Вот нужно чтобы дистанция от базовой точки высчитывалась только по одному вектору
Название: Re: Как ограничить пользовательский выбор вектором?
Отправлено: Александр Ривилис от 29-04-2015, 19:03:10
Вот нужно чтобы дистанция от базовой точки высчитывалась только по одному вектору
А вот так (насколько я знаю) нельзя. Ты должен вместо GetDistance в этом случае использовать GetPoint и находить итоговое расстояние с проекцией на вектор (ось). С GetDouble понятно что ты такого не получишь никак. Вообще-то он от тебя число требует.

А вот с мышью можно:

Как реализовать Windows хук с использованием acedRegisterFilterWinMsg в .NET (http://adn-cis.org/kak-realizovat-windows-xuk-s-ispolzovaniem-acedregisterfilterwinmsg-v-.net.html)
Название: Re: Как ограничить пользовательский выбор вектором?
Отправлено: andy_pu от 29-04-2015, 19:13:20
Спасибо, Александр, как всегда в точку и исчерпывающе!
Название: Re: Как ограничить пользовательский выбор вектором?
Отправлено: Александр Ривилис от 29-04-2015, 19:18:35
Пожалуйста. Хук будешь делать?
Название: Re: Как ограничить пользовательский выбор вектором?
Отправлено: andy_pu от 29-04-2015, 22:50:04
попробую варианты, которые Вы предложили, и с проекцией, и с хуком - практика покажет, который подойдёт лучше