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

ADN Club => AutoLisp / VisualLISP и DCL => Тема начата: BearDyugin от 20-03-2018, 07:14:39

Название: Проекция точки на поверхность 3D тела?
Отправлено: BearDyugin от 20-03-2018, 07:14:39
Что-то похожее для 3D Solid можно придумать, как это с кривыми реализовано?
Код - Auto/Visual Lisp [Выбрать]
  1. (vlax-curve-getClosestPointTo curve-obj givenPnt [extend])
Название: Re: Проекция точки на поверхность 3D тела?
Отправлено: BearDyugin от 20-03-2018, 07:24:14
Ну вот, как обычно, пока вопрос писал, ответ почти нашёл
http://www.theswamp.org/index.php?PHPSESSID=334a02bab583d6cba65a0242834bc1d7&topic=39238.15

Там есть решение на Lisp, но похоже оно не очень удобное, там упоминается что на ARX или NET это сделать проще. Конечно больше интересен NET, чтоб получить функцию не особо зависящею от версий AutoCAD

Ваши мысли?
Название: Re: Проекция точки на поверхность 3D тела?
Отправлено: Александр Ривилис от 20-03-2018, 10:00:56
Не совсем то, но для начала пойдёт: http://adn-cis.org/poluchenie-normali-k-grani-3d-tela-s-pomoshhyu-brep-.net-api.html
Название: Re: Проекция точки на поверхность 3D тела?
Отправлено: Александр Ривилис от 20-03-2018, 10:11:04
А это то что нужно, но ARX: Как получить пересечение прямой и твердого тела? (http://adn-cis.org/kak-poluchit-peresechenie-pryamoj-i-tverdogo-tela.html)
Впрочем, переделать под .NET не должно быть слишком сложной процедурой.
Название: Re: Проекция точки на поверхность 3D тела?
Отправлено: Александр Ривилис от 20-03-2018, 15:56:49
Сделал пример и для .NET: Как получить пересечение прямой и твердого тела в NET? (http://adn-cis.org/kak-poluchit-peresechenie-pryamoj-i-tverdogo-tela-v-net.html)
Название: Re: Проекция точки на поверхность 3D тела?
Отправлено: BearDyugin от 20-03-2018, 19:08:01
ОТРЕЗОК, ЛУЧ, ПРЯМАЯ
А если у нас только одна точка?
Название: Re: Проекция точки на поверхность 3D тела?
Отправлено: Александр Ривилис от 20-03-2018, 19:38:09
А если у нас только одна точка?
Проекция точки подразумевает саму точку и направление проекции (т.е. вектор) и соответственно получить вторую точку ты можешь по одной точке и вектору направления, ну а потом при желании построить отрезок.