Здравствуйте, уважаемые форумчане!
Есть очень интересная задача: необходимо определить несколько поверхностей твердого тела solid, не имеющего дерева построений.
Исходные данные: есть модель, содержащая только solid, например, болт (или гайка).
У модели нет ни каких данных о построении, просто твердое тело, но мы точно знаем, что строится она от начала координат в положительных четвертях. Головка болта лежит в нулях, при этом шестигранная часть головки в отрицательных координатах, а цилиндрическая часть болта с резьбовой частью в положительных координатах по "x".
Необходимо:
1. определить самую крайнюю поверхность цилиндрической части - торец болта;
2. определить ближайшую цилиндрическую поверхность от торца болта.
(в случае с гайкой: определить крайнюю плоскую поверхность гайки и внутреннюю цилиндрическую поверхность.)
Искомые поверхности выделены на картинке ниже.
Задача состоит в автоматизации простановки резьбы на изолированных моделях. Скрипт создает изолированную модель от мастер-модели, а далее в изолированной необходимо проставить резьбу. Хотелось бы уйти от работы совместно с пользователем (как вариант можно на данном этапе вывести приглашение пользователю выбрать поочередно интересующие нас поверхности, после чего скрипт все остальное сделает сам: проставит резьбу какую надо), но к сожалению я не знаю есть ли методы, позволяющие производить анализ геометрии...
Например, можно ли организовать некое сканирование геометрии модели в определенном направлении (ось x), с постоянной проверкой на тип поверхности и наличие геометрии (второе для определения крайней поверхности модели)?
Или, например, можно ли получить доступ к коллекции всех поверхностей модели, что бы перебирать каждую поверхность и пытаться определить где эта поверхность расположена в пространстве, а там сравнивая координаты попытаться понять, что это за поверхность?