Моделирование трубки (pipe) в OpenCascade (комментарии к странице) https://quaoar.su/blog/ CAD developer's blog. Fri, 11 Dec 2015 11:38:07 +0300 en-ru MaxSite CMS (http://max-3000.com/) Copyright 2024, https://quaoar.su/blog/ VKarpov к "Моделирование трубки (pipe) в OpenCascade" https://quaoar.su/blog/page/postroenie-trubki-v-open-cascade-technology#comment-21 https://quaoar.su/blog/page/postroenie-trubki-v-open-cascade-technology#comment-21 Wed, 16 Dec 2015 12:35:39 +0300 none@none.com (VKarpov) Читать Ваши статьи -- одно удовольствие. Конечно, это все нужно прорабатывать, но я засомневался во фразе "По сравнению с предыдущим случаем здесь налицо переменный радиус сечения вдоль траектории. Само сечение при этом остается круговым, т.е. симметрия трубки не нарушена (иначе это уже не трубка). Проблема перестает быть тривиальной. Утилита GeomFill_Pipe оказывается непригодной, нам нужен другой подход."

Вроде бы такая ситуация покрывается

GeomFill_Pipe (const Handle< Geom_Curve > &Path;, const TColGeom_SequenceOfCurve &NSections;)

Create a pipe with N sections. The section evoluate from First to Last Section

хотя нужно аккуратно попробовать.

Еще раз спасибо, особенно за две последние статьи. И еще, хотелось бы получить комментарий про GeomFill_TrihedronLaw. Что такое GeomFill_Frenet, что такое GeomFill_CorrectedFrenet?

]]>
Dmitrii к "Моделирование трубки (pipe) в OpenCascade" https://quaoar.su/blog/page/postroenie-trubki-v-open-cascade-technology#comment-182 https://quaoar.su/blog/page/postroenie-trubki-v-open-cascade-technology#comment-182 Wed, 24 Oct 2018 12:59:16 +0300 none@none.com (Dmitrii) Не знаю как решить вопрос с построением вдоль траектории не имеющей скруглений. Я использую BRepOffsetAPI_MakePipe, но та же проблема присутствует в BRepFill_Pipe и BRepFill_PipeShell.

Если траектория не имеет скруглений, например, состоит из двух перпендикулярных линий имеющих общую точку, то OCCT перестает ориентировать нормаль профиля по траектории (далее приложу картинки). Одним из решений является создание скруглений в местах соединения прямых. Это хорошо обсудили тут: https://stackoverflow.com/questions/47163841/pythonocc-opencascade-create-pipe-along-straight-lines-through-points-profile/48491990

Но что, если мне нужен НЕ скругленный угол?!

Я хочу так: https://images2018.cnblogs.com/blog/534255/201804/534255-20180426211455845-1730615366.png

Но имею это: https://images2018.cnblogs.com/blog/534255/201804/534255-20180426211454207-1361314237.png

Как добиться такого результата? Я взял картинки из статьи в блоге (https://www.cnblogs.com/opencascade/p/8955053.html), но непонятно, как автор добился такого результата.

]]>
Quaoar к "Моделирование трубки (pipe) в OpenCascade" https://quaoar.su/blog/page/postroenie-trubki-v-open-cascade-technology#comment-184 https://quaoar.su/blog/page/postroenie-trubki-v-open-cascade-technology#comment-184 Thu, 25 Oct 2018 21:10:50 +0300 none@none.com (Quaoar) В принципе авторы cn-блога дают рецепт такого моделирования. Они приводят скрипт Draw, состоящий из четырех команд:

1) mksweep: Инициализирует инструмент BRepOffsetAPI_MakePipeShell траекторией, по которой будет двигаться профиль.

2) addsweep: Инициализирует профиль (сечение), который будет двигаться вдоль траектории.

3) setsweep: Определяет эволюцию профиля в ходе его протягивания вдоль траектории. Ключ "FR" означает репер Френе.

4) buildsweep. Выполняет оператор. Ключ "C" предписывает обрабатывать стыки стратегией "Extend & Intersect".

Попробовал повторить в коде на простом профиле и траектории. Вроде получилось. Можете посмотреть код функции MISC_TestSweep1 на свалке экспериментальных команд: https://gitlab.com/ssv/AnalysisSitus/blob/master/src/cmdMisc/cmdMisc.cpp

Картинка: http://quaoar.su/imgs/blog/test-sweep1.png

]]>
Михаил к "Моделирование трубки (pipe) в OpenCascade" https://quaoar.su/blog/page/postroenie-trubki-v-open-cascade-technology#comment-186 https://quaoar.su/blog/page/postroenie-trubki-v-open-cascade-technology#comment-186 Thu, 01 Nov 2018 15:37:48 +0300 none@none.com (Михаил) А есть способ получить призму по профилю со "спиленными" под углом концами? Т.е. грубо средний сегмент трубы из картинки http://quaoar.su/imgs/blog/test-sweep1.png без первого и третьего.

]]>
Quaoar к "Моделирование трубки (pipe) в OpenCascade" https://quaoar.su/blog/page/postroenie-trubki-v-open-cascade-technology#comment-187 https://quaoar.su/blog/page/postroenie-trubki-v-open-cascade-technology#comment-187 Thu, 01 Nov 2018 16:35:50 +0300 none@none.com (Quaoar) Если сечение трубки не должно быть круговым, то самый простой способ -- протянуть призму из "косого" сечения, например, так:

Код функции MISC_TestSweep2: https://gitlab.com/ssv/AnalysisSitus/blob/master/src/cmdMisc/cmdMisc.cpp#L1079

Результат: http://quaoar.su/imgs/blog/test-sweep2.png

Или способ "в лоб": строим трубку с ортогонально нанизанным сечением, после чего отсекаем хвосты булевой операцией для формирования нужных скосов.

]]>