Руководство: Традиционное моделирование методом CSG (КБГ)
- Введение
- Открываем для себя FreeCAD
- Работа с FreeCAD
- Первый взгляд на все верстаки
- Традиционное моделирование методом CSG (КБГ)
- Традиционное двумерное черчение
- Моделирование для проектирования продукта
- Подготовка для 3D печати
- Создание двумерных чертежей
- Моделирование BIM
- Использование электронных таблиц
- Создание анализа методом конечных элементов
- Создание визуализаций (рендеринга)
- Написание скриптов на Python
- Сообщество
КБГ (рус.) CSG (англ.) расшифровывается как Конструктивная Блочная (Твёрдотельная) Геометрия и описывает фундаментальный способ работы с твёрдотельной 3D-геометрией. Он включает в себя создание сложных объектов путём добавления или удаления частей из твёрдых тел с помощью булевых операций, таких как объединение, вычитание или пересечение.
Как уже говорилось ранее в этом руководстве, FreeCAD поддерживает различные типы геометрии. Однако предпочтительным и наиболее практичным типом для проектирования реальных 3D-объектов во FreeCAD является твёрдотельная геометрия BREP (англ.) Граничное Представление (рус.), которое в основном обрабатывается в верстаке Part. Граничное Представление определяет 3D-объекты, указывая их пространственные границы. Ключевыми аспектами Граничного Представления являются: грани - элементы поверхности объекта; рёбра - граничные линии, где встречаются две грани; и вершины - точки, где сходятся рёбра.
Граничное Представление обладает рядом преимуществ. Во-первых, он определяет поверхности с помощью математических уравнений, обеспечивая точное и аккуратное моделирование. Такая точность очень важна для инженерных приложений, где требуются точные размеры. Кроме того, Граничное Представление обеспечивает гладкие и детализированные поверхности, в отличие от полигональных сеток (рус.) (англ.), которые аппроксимируют криволинейные поверхности с помощью фасеток. Это похоже на разницу между векторными изображениями, которые масштабируются без потери качества, и растровыми изображениями, которые при увеличении могут выглядеть пиксельными. Граничное Представление сохраняет полную топологическую информацию об объекте, включая отношения между гранями, рёбрами и вершинами, что необходимо для таких сложных операций, как булевы вычисления и фильтрация.
Слева - сетчатое представление, а справа - Граничное Представление
Полигональные сетки состоят из вершин, рёбер и граней, которые образуют треугольники или четырёхугольники. Сетки проще и быстрее в визуализации, но им не хватает точности. При увеличении или печати в большом масштабе сетки демонстрируют гранёные поверхности, а не гладкие кривые. В Граничном Представлении, напротив, используются кривые и поверхности, определённые математически, что обеспечивает превосходную точность и гладкость. Модели Граничного Представления предпочтительны для приложений САПР, где требуется точность.
В FreeCAD геометрия на основе Граничног Представления управляется OpenCasCade (англ.), программной библиотекой с открытым исходным кодом. Основным интерфейсом между FreeCAD и ядром OpenCasCade является верстак Part, который служит основой для большинства других верстаков, предоставляя основные инструменты для создания и манипулирования объектами Граничног Представления. Верстак Part включает инструменты для создания примитивов, таких как базовые формы, например, кубы, цилиндры и сферы. В нём также есть инструменты для выполнения логических (булевых) операций, таких как слияние, пересечение и вычитание фигур, а также инструменты для перемещения, поворота, масштабирования и клонирования объектов.
Хотя другие верстаки FreeCAD, такие как PartDesign и Surface, предлагают более продвинутые инструменты для построения и работы с геометрией, они опираются на базовый верстак Part. Понимание внутренней работы объектов Part и умение пользоваться основными инструментами Part будет полезно. Часто эти простые инструменты могут решить проблемы, с которыми более сложные инструменты не могут справиться эффективно.
Для иллюстрации использование верстака Part мы будем моделировать этот стол, используя лишь операции Граничного Представления (за исключением винтов, для которых мы используем одно из расширений, и размеров, которые мы рассмотрим в следующей главе):
Давайте создадим новый документ (Ctrl+N или меню Файл → Новый) для проектирования нашего стола. Изначально документ называется « Безымянный» на вкладке «Модель» в комбинированной панели просмотра. Если сохранить документ (Ctrl+Shift+S или меню Файл → Сохранить как) как «table.FCStd», то документ будет переименован в «table», что более чётко определяет наш проект. В качестве единиц измерения длины мы будем использовать миллиметры (мм). Не стесняйтесь менять единицы измерения с помощью меню, расположенного в правом нижнем углу, в зависимости от ваших предпочтений.
Теперь можно переключиться на верстак Part и начать создавать нашу первую ножку стола.
- Нажмите кнопку
Куб.
- Выберите куб, затем установите следующие свойства (на вкладке Данные):
- Длина: 80 мм
- Ширина: 80 мм
- Высота: 750 мм
- Скопируйте куб, нажав Ctrl+C, затем Ctrl+V (или меню Правка → Копировать и Вставить). Вы не увидите никаких изменений в 3D-виде, потому что второй объект накладывается на первый. Вы можете сказать, что новый куб был вставлен, потому что в представлении дерева теперь отображается объект под названием Куб001.
- Выберите Куб001 в дереве проекта.
- Измените положение Куб001, отредактировав его свойство Размещение (Placement) на вкладке Данные (нажмите стрелку рядом с Положение(Position), чтобы развернуть):
- Положение x: 8 мм
- Положение y: 8 мм
Теперь вы должны увидеть два высоких куба, один из которых смещён на 8 мм относительно другого в направлениях X и Y:
- Теперь мы можем вычесть один куб из другого, чтобы получить L-образную ножку стола: Выберите исходный куб, часть которого останется после операции Вырезать. Затем с нажатой клавишей Ctrl выберите Куб001, который будет вычитаться из первого. Обратите внимание, что порядок выделения определяет результат операции Вырезать. Нажмите кнопку
Вырезать:
Вновь созданный объект под названием Cut содержит два куба, которые мы использовали в качестве операндов. На самом деле эти два куба всё ещё находятся в документе, просто они были скрыты и сгруппированы под объектом Cut в дереве проекта. Вы всё ещё можете выбрать их, развернув стрелку рядом с объектом Cut. При желании их можно снова сделать видимыми, кликнув по значкам глаз рядом с ярлыками объектов, в меню правой кнопки мыши или изменив их свойства.
Вы также можете выполнять вырезание и другие булевы операции с помощью Булевых операций.
- Теперь создадим три другие ножки стола, сделав шесть дополнительных копий нашего исходного куба. Поскольку он всё ещё скопирован в буфер обмена, вы можете просто вставить его (Ctrl+V) 6 раз. Измените положение каждого нового куба следующим образом:
- Куб002: x: 0, y: 800 мм
- Куб003: x: 8 мм, y: 792 мм
- Куб004: x: 1200 мм, y: 0
- Куб005: х: 1192 мм, у: 8 мм
- Куб006: x: 1200 мм, y: 800 мм
- Куб007: х: 1192 мм, у: 792 мм
- Теперь выполним ещё три операции вырезания, выбрав сначала куб-хозяин, а затем куб, который нужно отрезать. Теперь у нас есть четыре объекта Cut:
Вместо того чтобы дублировать базовый куб шесть раз, мы могли бы продублировать все ножки три раза, скопировав и вставив объект Cut, созданный выше из наших первых двух кубов, и повернув каждую вырезанную ножку в правильную позицию. В FreeCAD часто есть несколько способов добиться одного и того же результата. Это важно помнить, потому что в разных контекстах вам может показаться проще или эффективнее использовать разные техники.
- Теперь мы сделаем отверстия для винтов, используя ту же операцию Вырезать. Поскольку нам нужно 8 отверстий (по два в каждой ножке), мы могли бы сделать 8 объектов для вычитания. Однако давайте рассмотрим другой способ. Мы можем сделать 4 цилиндра, каждый из которых пересекает пару ножек. Итак, давайте создадим их с помощью инструмента
„“'Цилиндр'„“. Вы можете создать один цилиндр и продублировать его три раза. Придайте каждому цилиндру радиус 6 мм. На этот раз нам нужно повернуть цилиндры с помощью свойства Размещение (Placement) на вкладке Данные (Примечание: измените свойство Ось перед установкой Угла, иначе поворот не будет применён):
- Цилиндр: высота: 1300 мм, угол: 90°, ось: x: 0, y: 1, z: 0, положение: x: -10 мм, y: 40 мм, z: 720 мм
- Цилиндр001: высота: 1300 мм, угол: 90°, оси: x: 0, y: 1, z: 0, положение: x: -10 мм, y: 840 м, z: 720 мм
- Цилиндр002: высота: 900 мм, угол: 90°, ось: x: -1, y: 0, z: 0, положение: x: 40 мм, y: -10 мм, z: 700 м
- Цилиндр003: высота: 900 мм, угол: 90°, ось: x: -1, y: 0, z: 0, положение: x: 1240 мм, y: -10 мм, z: 700 мм
Вы заметите, что цилиндры выходят за пределы ножек стола. Это связано с тем, что, как и во всех трёхмерных приложениях на основе твёрдого тела, булевы операции во FreeCAD иногда не работают, когда грани объектов являются копланарными (совпадают). Мы можем избежать возможных ошибок, поместив концы цилиндров за пределы поверхностей ножек.
- Теперь давайте выполним вычитание, чтобы создать отверстия в ножках стола. Выберите первую ножку; затем с нажатой клавишей Ctrl выберите один из пересекающих её цилиндров и нажмите кнопку Обрезать. В ножке будет создано отверстие, а цилиндр будет скрыт. Вы можете найти его в дереве проекта, развернув новый объект выреза ножки.
- Выберите другую ножку, пересекающуюся с этим скрытым цилиндром, и повторите операцию. На этот раз выберите цилиндр в режиме просмотра дерева проекта, так как в 3D-виде он скрыт. (В качестве альтернативы можно снова сделать цилиндр видимым и выбрать его в 3D-виде). Повторите эту операцию для остальных ножек, пока в каждой из них не будет по два отверстия:
Как видите, теперь каждая нога описывается серией нескольких операций, вложенных в дереве проекта. Вся геометрия, которую мы создали, остаётся параметрической, и вы можете в любой момент изменить любой параметр любой из прежних операций. В FreeCAD мы называем эту серию историей моделирования, так как в ней записана история выполненных операций.
Ещё одна особенность FreeCAD заключается в том, что понятие 3D-объекта и понятие 3D-операции имеют тенденцию сливаться в одно целое. Обрезать относится к операции, а также к 3D-объекту, полученному в результате этой операции. В FreeCAD его иногда называют конструктивным элементом, а не объектом или операцией.
Теперь давайте спроектируем столешницу. Это будет простая прямоугольная призма, поэтому начнем с другого Куба и изменим его размеры на вкладке Данные следующим образом:
- Куб: длина: 1260 мм, ширина: 860 мм, высота: 80 мм, положение: x: 10 мм, y: 10 мм, z: 670 мм.
На вкладке Вид вы можете придать ему коричневатый цвет, похожий на цвет дерева, изменив свойство Shape Appearance (Внешний вид формы):
Теперь, когда наши пять объектов завершены, самое время дать им более описательные имена, чем Cut015. Щёлкнув правой кнопкой мыши по каждому объекту в дереве проекта (или нажав F2 при выделенном объекте), вы можете переименовать их во что-то более значимое. Правильное именование объектов может быть не менее важным, чем способ их моделирования.
- Теперь мы вставим несколько винтов с помощью дополнения. Fasteners - это чрезвычайно полезное дополнение, разработанное одним из членов сообщества FreeCAD. Вы можете найти его в репозитории FreeCAD addons. Установить верстак с дополнением очень просто! Смотрите Менеджер дополнений для получения дополнительной информации.
- После установки Верстака Fasteners (Крепёж) и перезапуска FreeCAD выберите Fasteners (Крепёж) в выпадающем списке верстаков. Давайте добавим винт в одно из отверстий, которые мы смоделировали выше. Сначала выделите круглый край отверстия в одной из ножек стола:
- Затем выберите один из болтов, представленных в верстаке Fasteners Workbench. В этом упражнении мы будем использовать болт с шестигранной головкой с фланцами EN 1665, тяжёлой серии. Винт будет вставляться в отверстие и выравниваться по нему, а его диаметр будет автоматически соответствовать размеру нашего отверстия. Иногда необходимо изменить ориентацию болта, используя его свойство Invert:
- Повторите это для остальных семи отверстий, и наш стол готов!
Как уже говорилось, вы можете добиться одного и того же результата, выполнив разные шаги. Чтобы продемонстрировать это, давайте создадим один и тот же стол, используя другую методологию. Помните, что не существует правильного или неправильного способа - только индивидуальный творческий подход.
Мы приступим к работе аналогичным образом, создав куб со следующими размерами: длина 80 мм, ширина 8 мм и высота 750 мм.
- Создайте куб, нажав кнопку
Куб и установите следующие свойства (на вкладке Данные):
- Длина: 80 мм
- Ширина: 8 мм
- Высота: 750 мм
- Далее мы создадим
„“'Цилиндр'„“ со следующими свойствами::
- радиус: 6 мм, высота: 100 мм, угол: 90°, ось: x: 1, y: 0, z: 0, положение: x: 40 мм, y: 40 мм, z: 720 мм
- Далее мы применим операцию Обрезать. Выделите куб; затем, удерживая клавишу Ctrl, выделите цилиндр. Помните, что порядок важен, чтобы определить, какой из них останется. Затем нажмите кнопку
Обрезать.
- Затем скопируем и вставим вырезанный объект, нажав Ctrl+C,затем Ctrl+V (или меню Правка → Копировать и Вставить):
- угол: 90°, ось: x: 0, y: 0, z: 1, положение: x: 8 мм
- Выделите два объекта и примените инструмент
Объ единить. Теперь два объекта объединены, и у нас получилась L-образная ножка стола.
- Скопируйте и вставьте объединенную ножку, расположив её следующим образом.
- угол: 90°, оси: x: 0, y: 0, z: 1, положение y: 800 мм.
- Выберите две ножки и создайте
'Сгруппировать.
- Скопируйте и вставьте группу, расположив её следующим образом:
- угол: 180°, оси: x:0, y:0, z:1, положение x: 1200 мм, y: 800 мм. У нас есть ножки.
Давайте создадим столешницу.
- Создайте куб и измените его свойства следующим образом:
- Длина: 752 мм
- Ширина: 1184 мм
- Высота: 784 мм
- Положение x: 8 мм, y: 8 мм, z: 670 мм.
Теперь продолжайте добавлять винты в верстаке Fasteners (Крепёж), как и раньше.
Внутренняя структура объектов Part
Как мы видели выше, в FreeCAD можно выделять не только целые объекты, но и их части, например, круглый край нашего отверстия под винт. Сейчас самое время взглянуть на то, как строятся внутренние объекты Part. Каждый рабочий стол, создающий геометрию Part, будет основываться на них:
- Вершины: это точки (обычно конечные), на которых строится всё остальное. Например, линия имеет две вершины.
- Грани: Грани могут иметь форму линий, дуг, эллипсов или NURBS кривых Безье. Обычно они имеют две вершины, но в некоторых особых случаях - только одну (например, замкнутый круг).
- Кривые: - это последовательность рёбер, соединённых своими конечными точками. Кривая может содержать рёбра любого типа, и она может быть замкнутой или нет.
- 'Грани: грани могут быть плоскими или изогнутыми. Они могут быть определены одной замкнутой кривой, образующей границу грани, или несколькими, если грань имеет отверстия.
- Оболочки: Оболочки - это группы граней, соединённых своими краями. Они могут быть открытыми или закрытыми.
- Твёрдые тела: замкнутая оболочка может быть превращена в твёрдое тело. Твёрдые тела несут в себе понятие внутреннего и внешнего. Многие верстаки полагаются на это, чтобы убедиться, что создаваемые ими объекты можно построить в реальном мире.
- Соединения: соединения объединяют другие формы одного или нескольких типов в один объект.
В трёхмерном виде можно выделить отдельные вершины, рёбра или грани. Выделение любого из них выделяет весь объект.
Примечание о совместном проектировании
Вы можете посмотреть на стол, показанный выше, и подумать, что его конструкция не очень удачна. Кажется, что ножки не очень надёжно прикреплены к столешнице! Возможно, вы захотите добавить укрепляющие элементы или придумаете другие усовершенствования. Вот тут-то и становится интересным обмен опытом. Вы можете загрузить файл, созданный в ходе этого упражнения, по ссылке ниже и изменить его, чтобы сделать лучше. Затем, если вы поделитесь этим улучшенным файлом, другие смогут сделать его ещё лучше или использовать ваш хорошо продуманный стол в своих проектах. Ваш дизайн может натолкнуть на другие идеи других людей, и, возможно, вы внесёте свой вклад в улучшение мира...
Загрузки
- Файл, созданный в этом упражнении: https://github.com/yorikvanhavre/FreeCAD-manual/blob/master/files/table.FCStd
Читать далее









