Подробный гайд: как сделать вырез в трубе во FreeCAD — отверстия и пазы через Pocket
Гайд написан для актуальной стабильной ветки FreeCAD 1.1.x (последний патч — 1.1.4). В версии 1.1 у инструмента Pocket появились режимы направления One sided / Two sided / Symmetric — в 1.0 те же настройки выглядели как галочки «Midplane / Symmetric to plane» и тип «Two lengths», логика identical.
Разберём все типовые задачи:
| Задача | Лучший инструмент |
|---|---|
| Отверстие в одной стенке | PartDesign: Datum Plane + Pocket |
| Сквозное отверстие через обе стенки | PartDesign: Pocket «Through all» + Symmetric |
| Окно / паз | PartDesign: Pocket по прямоугольному эскизу |
| Седловой вырез под другую трубу («рыбий рот») | Part: Boolean Cut цилиндром |
| Срез трубы под 45° | PartDesign: Pocket или Part: Cut коробкой |
Способ 1. PartDesign — параметрический (рекомендуется)
Шаг 1. Создаём саму трубу
File → New, переключитесь на верстак PartDesign («Проектирование детали»).- Create body → Create sketch, плоскость — XY.
- Нарисуйте две окружности с центром в начале координат: R20 и R17 (труба Ø40, стенка 3 мм). Наложите ограничения: совпадение центров с origine и два радиуса (Constraints → Radius). Эскиз должен позеленеть (полностью определён).
- Закрыть эскиз → Pad («Выдавливание») → Length = 200 мм → OK.
Шаг 2. Отверстие Ø10 в одной стенке
На цилиндрической поверхности эскиз создать нельзя — нужна вспомогательная плоскость, касательная к трубе:
- Выделите в дереве плоскость XZ_Plane →
PartDesign → Create datum → Plane. Плоскость создастся привязанной к XZ. - В её свойствах: Attachment Offset → Position → Z = 20 мм (наружный радиус). Плоскость встанет касательно к наружной поверхности. Если ушла внутрь трубы — поменяйте знак на −20.
- Создайте на этой плоскости эскиз: окружность Ø10. Задайте положение ограничениями: по локальной X — 0 (по центру), по локальной Y — 100 мм (это высота отверстия вдоль трубы, локальная Y эскиза на XZ-плоскости = глобальная Z).
- Закрыть → Pocket («Вырез»). Настройки:
- Direction: One sided, галочка Reversed, если стрелка смотрит от трубы, а не к её оси;
- Type: Up to face → кнопка Select Face → кликните по внутренней цилиндрической грани трубы. Вырез остановится ровно на внутренней стенке — полностью параметрично, при смене толщины стенки ничего не сломается.
- Простая альтернатива: Type: Dimension, Length = 4 мм (стенка 3 мм + 1 мм запаса).
- OK — отверстие готово, в дереве появился объект Pocket, размеры можно менять в любой момент.
Шаг 3. Сквозное отверстие через обе стенки (под штифт/болт)
- Эскиз прямо на XZ_Plane (она проходит через ось трубы): окружность Ø10 на высоте 100 мм.
- Pocket → Type: Through all, Direction: Symmetric → OK. Вырез пройдёт через обе стенки. (Технически «Through all» — это карман глубиной 10 м, для труб заведомо хватает.)
Шаг 4. Окно или паз
То же, что шаг 2, но вместо окружности — прямоугольник (или паз из двух дуг и двух отрезков), например 20×30 мм с центром на высоте 100 мм. Pocket → Up to face (внутренняя грань) — окно только в ближней стенке; Through all + Symmetric — прорезь насквозь. Совет: скругляйте углы окна (Sketch → Fillet) — меньше концентраторов напряжений и проблем с печатью/фрезеровкой.
Альтернатива без эскиза: вычитаемый цилиндр
PartDesign → Create a subtractive primitive → Cylinder: Radius 5, Height 30. В свойствах Placement: Rotation — ось X, угол −90° (ось цилиндра станет горизонтальной), Position (0; −30; 100). Цилиндр пройдёт от y=−30 до y=0: ближняя стенка (−20…−17) прорежется, дальняя (+17…+20) останется целой. Быстро, но менее наглядно для правок, чем эскиз.
Массив отверстий
Выделите Pocket → PolarPattern: Axis — базовая ось Z, Angle 360°, Occurrences 6 → шесть отверстий по окружности трубы.
Способ 2. Верстак Part — булевы операции (быстро, CSG)
- Верстак Part («Деталь») →
Part → Primitives → Tube: Inner Radius 17, Outer Radius 20, Height 200. Труба создаётся стоящей на плоскости XY, ось — Z. - Инструмент-резак:
Part → Primitives → Cylinder: Radius 5, Height 60. Выделите цилиндр → вкладка Data → Placement → кнопка «…»: Rotation — Axis (0, 1, 0), Angle 90°; Position (−30; 0; 100). Цилиндр ляжет вдоль оси X и пересечёт обе стенки на высоте 100.
- Нужно отверстие только в одной стенке? Height = 25 при той же позиции: резак дойдёт до x=−5 и не тронет дальнюю стенку.
- В дереве выделите сначала Tube, затем Ctrl+клик Cylinder (порядок важен!) →
Part → Boolean → Cut. Получите объект Cut — труба с отверстием. - Всё параметрично: раскройте Cut в дереве, поменяйте радиус/позицию цилиндра — модель пересчитается.
- Для чистых граней без лишних рёбер включите
Preferences → Part/PartDesign → Automatically refine model after boolean operation(или разовоPart → Refine shape).
Частные случаи
Седловой вырез под перпендикулярную трубу (T-соединение, «рыбий рот»)
Способом 2: основная труба как выше; второй цилиндр — Radius 20 (= наружный радиус ответной трубы; для сварочного зазора возьмите 20.5–21), Height 100, Rotation: ось Y, 90°, Position (−50; 0; 200) — его ось проходит точно через торец трубы на высоте 200. Boolean Cut → торец получит седловину, труба сядет на ответную под прямым углом.
Срез под 45°
PartDesign: эскиз на XZ_Plane, замкнутый четырёхугольник с вершинами (−40; 110), (40; 190), (40; 250), (−40; 250) — нижняя кромка идёт под 45° через точку (0; 150). Pocket → Through all, Direction: Symmetric — всё выше наклонной плоскости отсекается, торец срезан под 45°.
Типичные ошибки и советы
- «Result has multiple solids» — тело PartDesign обязано оставаться одним цельным куском. Если вырез распиливает трубу на две части, Pocket откажется работать: используйте Part Cut (способ 2) или разносите части по разным Body.
- Pocket ушёл не туда — галочка Reversed; для двусторонних вырезов — Direction: Symmetric.
- Эскиз не принимается — контур должен быть замкнутым, без самопересечений и наложенных линий.
- Не привязывайте эскизы к сгенерированным граням («привязка к лицу цилиндра» и т.п.) — только к базовым плоскостям и Datum Plane. В 1.0/1.1 защита от топонологического переименования сильно улучшена, но привязка к датумам всё равно надёжнее при правках истории.
- Параметризация: дайте ограничениям имена (например,
OuterR,InnerR) и задайте глубину кармана выражениемSketch.Constraints.OuterR - Sketch.Constraints.InnerR + 1— вырез всегда будет ровно сквозь стенку. - Перед экспортом проверьте модель:
Part → Check geometry(не должно быть ошибок BOPCheck). - Экспорт: STL — для 3D-печати (
File → Export, верстак Mesh задаёт точность триангуляции), STEP — для станков и обмена с другими CAD.
Важно:
Для детали, которую будете дорабатывать, — способ 1 (Datum Plane + Pocket «Up to face»); для быстрого разового реза, седловины или разрезания трубы на части — способ 2 (Tube + Cylinder + Boolean Cut).
Мы делимся этой технической информацией, чтобы помочь вам в решении задач — используйте её с пониманием. Статья носит рекомендательный характер, поэтому, пожалуйста, применяйте описанные методы осмотрительно.