Net. Определить над каким размером находится курсор
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Net. Определить над каким размером находится курсор

Net. Определить над каким размером находится курсор

Ответ
Поиск в этой теме
Непрочитано 27.04.2015, 22:39 #1
Net. Определить над каким размером находится курсор
Modis
 
Липецк, Москва
Регистрация: 12.06.2010
Сообщений: 534

Всем доброго времени суток.
Название темы не совсем верно отображает суть вопроса, но ничего более подходящего не смог придумать.
Мне не сколько нужен код, сколько нужна просто идея.
И так - есть два размера как на приложенной картинке. Я провожу "над ними" курсором. Мне нужно программно определить над каким из них находится курсор. В данном случае - над левым или правым?
Заранее благодарен за идеи

Миниатюры
Нажмите на изображение для увеличения
Название: Без имени-1.png
Просмотров: 45
Размер:	2.5 Кб
ID:	148631  

Просмотров: 3204
 
Непрочитано 28.04.2015, 07:20
#2
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от Modis Посмотреть сообщение
над левым или правым?
над верхним
gomer вне форума  
 
Непрочитано 28.04.2015, 09:30
#3
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,611


Я так понимаю, Вас во всех поисковиках забанили?
http://adn-cis.org/kak-poluchit-koor...shi-v-psk.html - C++
http://forums.autodesk.com/t5/net/cu...s/td-p/1330283 - C#
Boxa вне форума  
 
Автор темы   Непрочитано 28.04.2015, 12:54
#4
Modis


 
Регистрация: 12.06.2010
Липецк, Москва
Сообщений: 534


Цитата:
Сообщение от Boxa Посмотреть сообщение
Я так понимаю, Вас во всех поисковиках забанили?
http://adn-cis.org/kak-poluchit-koor...shi-v-psk.html - C++
http://forums.autodesk.com/t5/net/cu...s/td-p/1330283 - C#
Разве я спрашивал в посте - как узнать координаты курсора?

Я просил помощи в другом вопросе. Даже не просил никаких кодов, а просил идею!

Ну, в принципе, я уже сам придумал вариант: получаю stretchpoints размера. Делаю отрезок, соединив 3 и 4 точки (точки размерной линии). Затем методами Curve.GetClosestPointTo(Point3d) и Point3d.DistanceTo(Point3d) получаю список расстояний до размеров. С математической точки зрения - до какого размера это расстояние наименьшее, тот и является искомым.
Да, забыл сказать - это все происходит в DrawJig

Вот остался только еще нерешенный вопрос - как обработать вариант (не подходящий по ситуации) когда курсор оказывается как бы сбоку? Т.е. левее левого или правее правого (если забыть про 3D и посмотреть на приложенную выше картинку)

Offtop: З.Ы. Я прям аж соскучился по остроумным ответам людей, даже не вникших в суть вопроса )))
Modis вне форума  
 
Непрочитано 28.04.2015, 13:22
#5
trir


 
Регистрация: 18.12.2010
Сообщений: 5,107


У размера есть Bounds
Цитата:
Public Overridable ReadOnly Property Bounds As Autodesk.AutoCAD.DatabaseServices.Extents3d?
Остаётся лишь определить расстояние до Bounds
trir вне форума  
 
Непрочитано 28.04.2015, 14:08
#6
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


Цитата:
Сообщение от Modis Посмотреть сообщение
Я провожу "над ними" курсором.
Что значит "над ними"? Курсор находится выше (по оси Y) в текущей пользовательской системе координат? Или в мировой СК? Или в СК экрана? Или курсор "над размером" в том смысле, что какой-то из элементов размера находится в прицеле курсора?
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic)
Do$ вне форума  
 
Автор темы   Непрочитано 28.04.2015, 14:26
#7
Modis


 
Регистрация: 12.06.2010
Липецк, Москва
Сообщений: 534


Цитата:
Сообщение от Do$ Посмотреть сообщение
Что значит "над ними"? Курсор находится выше (по оси Y) в текущей пользовательской системе координат? Или в мировой СК? Или в СК экрана? Или курсор "над размером" в том смысле, что какой-то из элементов размера находится в прицеле курсора?
Даже не знаю как правильно объяснить =)
Это значит, что если я удлиню размерные линии размера (как звучит-то коряво) до бесконечности (ну или очень далеко), то курсор окажется между ними. Т.е. если я из курсора отложу перпендикуляры на эти выносные линии, то эти перпендикуляры буду прямо противоположны по направлению друг к другу
Не знаю как понятней объяснить. Просто в этом случае не важно какая СК. Ну и естественно - это речь не про случай, что какой-то из элементов размера находится в прицеле курсора)

Как я уже писал выше - в принципе решение я нашел. Оно работает. Осталось только придумать как обработать вариант, когда курсор "не находится ни над одним размером"
Modis вне форума  
 
Непрочитано 28.04.2015, 14:35
#8
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406


Цитата:
Сообщение от Modis Посмотреть сообщение
Просто в этом случае не важно какая СК
Вообще-то это критично. Для разных систем координат результат может быть совершенно неожиданным - вплоть до того, что надо будет сравнивать не те координаты.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 28.04.2015, 14:45
#9
Modis


 
Регистрация: 12.06.2010
Липецк, Москва
Сообщений: 534


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Вообще-то это критично. Для разных систем координат результат может быть совершенно неожиданным - вплоть до того, что надо будет сравнивать не те координаты.
Пока-что полет нормальный)
Не считая неотвеченного вопроса выше и маленького глюка (на видео видно, что один размер "убежал") вариант работает. И СК вроде роли сильно не играет...
Миниатюры
Нажмите на изображение для увеличения
Название: mpdimbreak.gif
Просмотров: 31
Размер:	312.1 Кб
ID:	148737  
Modis вне форума  
 
Непрочитано 28.04.2015, 14:52
#10
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,611


Какой вопрос, такой и ответ. Gomer уже намекнул, что "над" может быть совсем разным, "над" это по оси X? Y? или Z? Или может относительно вида?
Я понял "над" по своему. И исходя из этого ответил на Ваш вопрос. Единственная сложность в вашем вопросе, ИМХО, это получение координат курсора, сравнить координаты курсора с предельными координатами каждого элемента в размере (с учетом системы координат) не велика проблема. Если я правильно помню, база чертежа может быть доступна из jig класса, так что сложностей не вижу.
Цитата:
Сообщение от trir Посмотреть сообщение
У размера есть Bounds
А если размеры частично накладываются или пересекаются? Или "внутри" большого , нарисовано несколько маленьких?

Последний раз редактировалось Boxa, 28.04.2015 в 15:36. Причина: Дополнил
Boxa вне форума  
 
Непрочитано 28.04.2015, 15:34
#11
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


Цитата:
Сообщение от Modis Посмотреть сообщение
Даже не знаю как правильно объяснить =)
Это явный признак того, что задача до конца не осознана
Цитата:
Сообщение от Modis Посмотреть сообщение
Т.е. если я из курсора отложу перпендикуляры на эти выносные линии, то эти перпендикуляры буду прямо противоположны по направлению друг к другу
Так а почему бы не реализовать это в коде? Пространство имен Autodesk.AutoCAD.Geometry содержит некоторые очень полезные объекты для таких "построений".
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic)
Do$ вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Net. Определить над каким размером находится курсор



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как определить ширину полосы отвода для прокладки водопровода?Или по каким нормативным документам определяется ширина полосы отвода? kess35 Инженерные сети 24 18.10.2023 02:54
Разработка ПОС, искусство проектирования Tyhig Технология и организация строительства 117 25.11.2021 17:38
Каким образом можно определить необходимость устройства ветрозащиты в навесной вентилируемой фасадной системе? Aragorn Конструкции зданий и сооружений 15 02.05.2018 18:35
Каким размером должно быть заложено отверстие под воздуховод? niger66 Инженерные сети 1 19.12.2012 20:20
По каким справочникам можно определить базовую цену проектирования электрообогрева трубопроводов mvart Поиск литературы, чертежей, моделей и прочих материалов 4 14.06.2010 18:57