Есть кстати недокументированная функция acedNEntSelPEx для поиск объектов под заданной точкой. Видимость объектов она сама учитывает. Но с ней куча других проблем.А это к чему? Кстати её аналог - Editor.GetNestedEntity
Хочу получить полилинии, к которым "привазаны" мультиновыноски.Они реально "привязаны"? Т.е. например находятся в одной группе с полилиниями? Или связаны реакторами?
А это к чему?К быстрому поиску объектов на которые указывают мультивыноски.
Сомнительная быстрота, плюс все мультивыноски и полилинии должны быть видны на экране.А это к чему?К быстрому поиску объектов на которые указывают мультивыноски.
Не могу "закурвить" MleaderИ не сможешь. Он не наследник Curve:
Подскажите тогда по Intersect. Как узнать есть ли он между нимиЯ бы решал задачу совсем другим способом:
А точно нужно пересечение, а не одна крайняя точка на стрелке выноски?
А как узнать крайние точки?А точно нужно пересечение, а не одна крайняя точка на стрелке выноски?
По идее пересечение площади полилинии с точной на носике у стрелки
По идее пересечение площади полилинии с точной на носике у стрелкиГлупость.
А как узнать крайние точки?А посмотреть свойства класса MLeader?
По идее пересечение площади полилинии с точной на носике у стрелкиГлупость.А как узнать крайние точки?А посмотреть свойства класса MLeader?Код - C# [Выбрать]
Point3d p = pML.GetFirstVertex(0);
Получаю ближаюшую координату, а дальше не врублюсьА дальше оцениваешь расстояние от m до ttt0:
Код - C# [Выбрать]
var m = ((MLeader)mldrs).GetFirstVertex(0);
var p = (Polyline)pols;
var ttt0 = p.GetClosestPointTo(m, false);
Получаю ближаюшую координату, а дальше не врублюсьА дальше оцениваешь расстояние от m до ttt0:
Код - C# [Выбрать]
var m = ((MLeader)mldrs).GetFirstVertex(0);
var p = (Polyline)pols;
var ttt0 = p.GetClosestPointTo(m, false);Код - C# [Выбрать]
if (m.DistanceTo(ttt0) < delta) { // MLeader указывает на эту полилинию }
P.S.: Точки принято обозначать p, а не m.
А как сделать наоборот. Самая близкая полилиния к стрелке мультивыноске?Точно так же, только для каждой мультивыноски перебираешь все полилинии, находишь ближайшую точку на полилинии к выноске, получаешь расстояние между точками и там где расстояние минимальное и < delta - это и будет нужная полилиния.