Про поиск пересечений гляньте, недавно тут тема была https://adn-cis.org/forum/index.php?topic=2872.msg38679#msg38679используя данное предложение я могу получить обе точки пересечения трубы и стены.
По сути вопроса - для создания проема с помощью метода Document.NewOpening(Wall, XYZ, XYZ) нужно указывать координаты углов прямоугольного проема. Эти координаты должны быть в на поверхности стены, т.е., если Вы пользуйтесь BooleanOperationsUtils.ExecuteBooleanOperation, то нужно взять поверхность получившегося solid-а, являющуюся частью стены.а как получить из солида обшиую со стеной поверхность?
Но, вообще говоря, рекомендую пересмотреть алгоритм в пользу ReferenceIntersector-а, как в той теме. BooleanOperationsUtils.ExecuteBooleanOperation может выкидывать исключения в ряде случаев и, если оборачивать в try-catch, то сильно на производительность влияет.да, я этот вариант тоже рассматриваю
используя данное предложение я могу получить обе точки пересечения трубы и стены.
далее мне нужно будет взять радиуц трубы и построить окружность (при пересечении под приамым углом) с радиусом трубы и центром в точке пересечения и потом повернуть эту окружность(плоскость) чтобы она была параллельна плоскости стены, так?
а как получить из солида обшиую со стеной поверхность?
Зачем обе? Одного пересечения будет достаточно.
можно просто 2 точки от центра под углом 45 и 225 градусов на расстоянии радиуса вычислить?
Creates a rectangular opening on a wall.
прямоугольное отверстие получилось!!Если можно подниму тему, у меня такой же вопрос стоит. Мне надо поставить семейство, но как вы тут упомянули не правильно вставляется если труба не под прямым углом или стена не под 90 градусов, тогда получается надо брать 2 точки пересечения. Но что дальше делать голова ломается.