Площадь соприкосновения

Автор Тема: Площадь соприкосновения  (Прочитано 2321 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн enotАвтор темы

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Площадь соприкосновения
« : 11-12-2018, 12:28:26 »
Есть ли метод АПИ для решения следующей задачи:

Получить поверхность соприкосновения двух кубов?




При пересечении кубов можно было бы получить пересечение так:
BooleanOperationsType.Intersect

Но как быть в случае соприкосновения (аналогично как пространство соприкасается со стеной к примеру)





Отмечено как Решение enot 11-12-2018, 14:52:58

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Площадь соприкосновения
« Ответ #1 : 11-12-2018, 13:01:16 »
Интересный вопрос. Площадь соприкосновения равна половине разности между суммой площадей и площадью объединённого тела в случае если тела именно касаются друг друга, а не пересекаются.
Посмотри вот эту тему: https://forums.autodesk.com/t5/revit-api-forum/check-intersection-between-solid-objects/td-p/7466728
Там описан метод определения того, что два тела касаются друг-друга.
P.S.: Это моё предположение, которое нужно проверять.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Игнатович

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Re: Площадь соприкосновения
« Ответ #2 : 11-12-2018, 14:35:19 »
Да, вопрос интересный, RevitAPI для такого случая полезных методов не предоставляет.

Но можно получить границы обеих поверхностей и воспользоваться какой-нибудь сторонней библиотекой для работы с 2D геометрией (ну, или самому написать, если есть время и желание, алгоритмы гуглятся). Хороший пример библиотеки - NetTopologySuite

Оффлайн enotАвтор темы

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: Площадь соприкосновения
« Ответ #3 : 11-12-2018, 14:51:42 »
P.S.: Это моё предположение, которое нужно проверять.
Судя по всему, вы попали в точку
Еще буду тестить, но первые пробы полностью подтверждают
Площадь соприкосновения равна половине разности между суммой площадей и площадью объединённого тела
Александр Ривилис, очень рад вашему ответу

Оффлайн enotАвтор темы

  • ADN OPEN
  • *****
  • Сообщений: 525
  • Карма: 2
Re: Площадь соприкосновения
« Ответ #4 : 11-12-2018, 15:06:15 »
какой-нибудь сторонней библиотекой
В динамо такое пересечение определяется )  так что может и стоит попробовать подключить динамовские библиотеки и как то поработать с ними, а может и нет)