И все же пытаюсь решить свою задачку.
Используя PointMonitorEvent я получаю практически все, что мне нужно (трэкинг линии из GetAlignmentPaths, объекты от которых они строятся из GetKeyPointEntities, тип трэкинга из Tooltips). Но не могу получить точки объектов из которых эти линии трэкинга построились. Может сможете направить в правильном направлении?
Рассматриваю следующие варианты решения:
1. Найти точку из которой построен AlignmentPath через Startpoint. К сожалению, оказалось, что кривая Alignment не имеет ни начала, ни конца. Хотя на экране и конец и начало присутствуют. Может можно как то их вычислить, ну скажем из какого-то другого события автокада? Ну, например: "автокад только-что нарисовал самостоятельно линию на экране" - может это будет иной объект, отличный от AlignmentPath?
Или может можно этот AlignentPath (Curve3d) - преобразовать в какую-то иную линию, которая уже имела бы на себе определяемые точки начала и конца?
Или может есть какие-то иные свойства кривой, кроме StartPoint, которые могут мне помочь выйти на искомые точки начала и конца?
2. Создать массив из точек трэкинга и отслеживать, находятся ли они на пересечении соответсующих KeyPointEntity и AlignmentPath. Но в этом направлении наткнулась на следующие затыки: я не могу отслеживать включена ли точка в перечень трэкинг точек. Я ловлю событие, что точка является точкой Оснэп, но как понять, что курсор удерживался над ней достаточное количество времени, чтобы она оказалась в перечне трэкинга или при повторном наведении - исчезла из него? Найти событие автокада: "нарисовал маленький плюсик на точке трэкинга" / "удалил маленький плюсик" (при включении/ выключении точки в перечень отслеживаемых объектов), или "добавил/исключил точку в перечень отслеживаемых" - не смогла. Равно не нашла: "изменил отображение отслеживаемой точки" (если при трэкинге в используемой точке ее объект не перпендикулярен трэкинглинии, то она меняет свое отображение, но как уловить это событие и точку, в которой оно происходит?). Я конечно, могу отлавливать назначение трэкингточек в ручном режиме (когда, они назначаются только через Shift), но очень бы не хотелось скатываться на этот метод. Ну, должны же быть события автокада, отслеживающие перечень трэкинг точек, он же должен их где-то "складировать" пока они отслеживаются?
Очень нужна помощь, очень благодарна заранее за наводки в нужном направлении.