Имеется поверхность из 3DFACE на отдельном слое.Это один 3DFACE или их много и поверхность создана из них?
3DFACE целая сеть и поверхность создана из нихЗначит сначала по координатам X и Y точки нужно найти ту 3DFACE, на которую эта точка проецируется, а затем выполнить проекцию, т.е. найти пересечение вертикальной прямой проходящей через точку (X,Y,0) и плоскости совпадающей с плоскостью 3DFACE (надеюсь, что у 3DFACE только три вершины, т.к. в противном случае она не плоская). Это элементарная задача аналитической геометрии. Специальных готовых алгоритмов для её решения в AutoLisp/VisualLisp нет. Так что нужно их самому написать или поискать в интернете.
Наверно, лучше использовать набор.Не обижайтесь, но это самый худший алгоритм из всех, которые можно было бы придумать. Даже объяснять не буду насколько он будет ненадежный, медленный и т.д.
Т.е. рисуем точку, потом выбираем ее (setq ptn (ssget "_CP" pt_list)). pt_list - список плоских (x y) координат вершин текущего треугольника.
Если ptn не nil, то точка попала в текущий треугольник.
По книге Ласло,
"Вычислительная геометрия и компьютерная графика на С++"
Если надо найти треугольник в который попадает точка, то лучше сначала искать в r-дереве...Согласен, но не видел готового алгоритма R-Tree на Autolisp, что означает или необходимость его написать (вряд ли эта задача по плечу 1958) или использовать готовые алгоритмы на .NET или ObjectARX.
Пять раз просмотрел ваше видео про форматирование, но ничего не разглядел.Вы первый. :)