Part Module/ru
Введение
Возможности твердотельного моделирования FreeCAD базируются на ядре Open Cascade Technology (OCCT), системе САПР профессионального качества с возможностями продвинутого создания и манипулирования трёхмерными объектами. Верстак Part это слой, базирующийся на библиотеках OCCT, дающие пользователям доступ к примитивам и функциям OCCT. Практически все функции двумерного и трёхмерного черчения в каждом верстаке ( Draft, Sketcher, PartDesign и т.д.) базируются на этих функциях, предоставляемых верстаком Part. Следовательно, верстак Part считается центральным компонентом возможностей моделирования FreeCAD.
Объекты, создаваемые верстаком Part относительно просты, они предназначены для использования в булевых операциях (объединения и вырезания) для построения более сложных фигур. Эта парадигма моделирования известна как процесс конструктивной блочной геометрии (CSG, КБГ), и это традиционная методология, используемая в ранних системах САПР. С другой стороны, верстак PartDesign предлагает более современный процесс создания фигур: он использует параметрически заданные эскизы, которые выдавливаются для формирования базовых твёрдых тел, которые потом модифицируются параметрическими трансформациями (редактирования свойств) до получения конечного объекта.
Объекты Part сложнее, чем сеточные объекты, создаваемые в верстаке Mesh, поскольку они дают более сложные операции вроде когерентных булевых операций, историю модификации и параметрическое поведение.
Верстак Part Workbench это базовый слой, предоставляющий чертёжные функции OCCT всем верстакам FreeCAD
Инструменты
Инструменты модуля деталей расположены в меню Деталь.
Примитивы
Эти инструменты создают примитивные объекты.
- Куб: Рисует прямоугольный параллелепипед с указанными размерами
- Цилиндр: Рисует цилиндр с указанными размерами
- Сфера: Рисует сферу с указанными размерами
- Конус: Рисует конус с указанными размерами
- Тор: Рисует тор (кольцо) с указанными размерами
- Создать примитивы: Инструмент добавления любого из определённых геометрических примитивов
- Построитель форм: Инструмент создания более сложных форм из различных параметрических геометрических примитивов
Изменение объектов
Это инструменты для изменения существующих объектов. Они позволяют вам выбирать, какой объект вы будете изменять.
- Выдавить: Вытягивает плоские грани объекта
- Вращать: Создает объект вращением одного объекта вокруг оси
- Зеркальное отражение: Отражает выбранные объекты на данной зеркальной плоскости
- Скругление: Скругляет ребра объекта
- Фаска: Делает фаску на гранях объектов
- Создать линейчатую поверхность: Этот инструмент создает линейчатую поверхность между двумя линиями или краями выбранных выше.
- Лофт: Выполняет лофтинг от одного профиля к другому
- Сдвиг: Развёртывает один или более профилей вдоль заданной трассы
- Инструменты смещения:
- Смещение 3D: Создаёт увеличенную копию оригинального объекта
- 2D смещение: Создает параллельный провод на определенном расстоянии от оригинала или увеличивает/сжимает плоскую грань. introduced in version 0.17
- Толщина: Назначает толщину поверхностям формы.
- Projection on surface: создаёт проекцию логотипа, текста или любой грани, полилинии, кромки на поверхность. С проекцией можно сделаь твёрдое тело или полилинию. introduced in version 0.19
- Соединить:
- Сделать соединение: Создаёт объект, соединяющий в себе выбранные объекты.
- Разъединить соединение: Инструмент расщепления соединения фигур
- Фильтр соединений: Фильтр соединений может использоваться для выделения отдельных частей.
- Boolean: Производит булевы операции над объектами
- Объединение: Сплавляет (объединяет) два объекта
- Пересечение: Извлекает общую часть (пересечение) двух объектов
- Обрезать: Обрезает (вычитает) один объект из другого
- Join features: Сложные сопряжения для объектов со стенками (Например, труб) introduced in version 0.16
- Connect: Соединяет внутренности объектов introduced in version 0.16
- Embed: Внедряет объект со стенками внутрь другого такого же объекта introduced in version 0.16
- Cutout: Создаёт вырез в стенке объекта для другого объекта со стенками introduced in version 0.16
- Splitting tools: introduced in version 0.17
- Boolean fragments: создаёт все фрагменты, которые могут быть получены булевыми операциями между объектами introduced in version 0.17
- Slice a part: инструмент для разделения фигур путем пересечения с другими фигурами
- Slice: разбивает объект на части путем пересечения с другим объектом introduced in version 0.17
- XOR: удаляет пространство, общее для чётного числа объектов (симметричная версия Cut) introduced in version 0.17
- Defeaturing: introduced in version 0.18
- Section: Создает сечение, как пересечением секущей плоскости и объекта
- Поперечные сечения...: Создаёт одно или более поперечных сечений через выбранную форму
- Attachment: утилита для прикрепления одного объекта к другому.
Измерение
File:Std Measure Menu.png Measure: Обеспечивает линейные и угловые измерения между точками, рёбрами и гранями.
- Measure Linear позволяет делать линейные изменения.
- Measure Angular позволяет делать угловые измерения.
- Measure Refresh обновляет измерения на экране.
- Clear All очищает все измерения.
- Toggle All показывает или скрывает все измерения.
- File:Part Measure Toggle 3d.svg Toggle 3D показывает или скрывает трёхмерные измерения.
- Toggle Delta показывает или скрывает дельта-измерения.
Прочие инструменты
- Импорт: Этот инструмент позволяет добавить в текущий документ файл *.IGES, *.STEP, *.BREP.
- Экспорт: Этот инструмент позволяет экспортировать деталь в формате *.IGES, *.STEP, *.BREP.
- BoxSelection: Добавляет к выделению грани фигур, соприкасающихся с прямоугольным выделением. introduced in version 0.19
- Создание формы из сетки: Создаёт форму из сетки.
- Points from mesh: Создаёт объект формы из точек сетки. introduced in version 0.19
- Convert to solid: Преобразует форму в твердое тело.
- Обратная фигура: Отражает нормали всех граней выбранного объекта.
- создать копию:
- Создать простую копию: Создаёт простую копию выбранного объекта.
- Create transformed copy: creates a transformed copy of the selected object. introduced in version 0.19
- Create shape element copy: creates a copy from an element (vertex, edge, face) of the selected object. introduced in version 0.19
- Уточнить форму: Очищает поверхности удалением ненужных линий.
- Проверка геометрии: Проверяет геометрию выбранных объектов на ошибки.
Настройки
- Предпочтение ... Импорт Экспорт
Геометрические концепции OCCT
В терминологии OpenCascade геометрические примитивы и (топологические) формы различны. Геометрическим примитивом может быть точка, линия, окружность, плоскость и т.д. , или даже более сложные типы, такие как кривая B-сплайна или поверхность. Формой может быть вешина, ребро, сеть , грань, твердое тело или соединение всего этого. Геометрические примитивы не созданы специально для того чтобы отображаться на 3D сцене, они используются в качестве строительной геометрии форм. Для примера, ребро можно построить из линии или же из части окружности.
В общем, геометрические примитивы это "бесформенные" строительные блоки, а топологические формы это реальные объекты, построенные на них.
Полный список всех примитивов и форм находится в документации OCC в разделах Geom_Geometry и TopoDS_Shape. (Альтернатива: sourcearchive.com) и поиск Geom_* (для геометрических примитивов) и TopoDS_* (для форм). Также вы больше сможете узнать о различиях между ними. Обратите внимание, что к сожалению документация OCC не доступна в Интернете(вы должны скачать архив) и в основном направлена на программистов, а не на конечных пользователей. Но надеемся, что вы найдете здесь достаточно информации для начала.
Геометрические типы на самом деле можно разделить на две основные группы: кривые и поверхности. Из кривых (линия, окружность, ...) вы непосредственно можете строить ребра, из поверхностей (плоскость, цилиндр, ...) могут быть построены грани. Например, такой геометрический примитив как линия - бесконечен, т.е. он задается только вектором направления в то время, как его форма должна быть представлено чем-то ограниченым обладающим начальной и конечной точкой. Также и box -- твердое тело -- которое может быть создано из шести ограниченых плоскостей.
От ребра или грани, вы также можете вернутся к геометрическим примитивам из которых они состоят.
Таким образом, из форм вы можете построить очень сложные детали или , или наоборот, извлечь все субформы из созданой сложной формы.
Класс Part::TopoShape
это видимый на экране геометрический объект. Практически все верстаки используют эти TopoShapes внутри себя для построения и показа кромок, граней и твёрдых тел.
Написание сценариев
Смотри так же: Part scripting
Основным структурой данных в модуле Part является BRep тип данных из OpenCascade. Все содержащиеся в модуле Part типы объектов и функции доступны в сценариях на Python. Это включает в себя геометрические примитивы, такие как Линия и Окружность (или Дуга), и целый ряд топологических фигур, таких как Вершины, Ребра, Полилинии, Грани, Тела и Составные объекты. Каждый из этих объектов можно создать несколькими способами, и для некоторых из них, особенно для топологических фигур, продвинутые операции, например булево сложение/вычитание/пересечение, так же доступны. Чтобы знать больше, изучите содержание модуля Part, описанное на странице Основы написания сценариев в FreeCAD .
Самый базовый объект, который можно создать, это Part Feature, имеющий простое свойство размещения ДанныеPlacement и базовые свойства определения его цвета и внешнего вида.
Другой простой объект, используемый в плоских геометрических объектах, это Part Part2DObject, являющийся основой Sketcher SketchObject (модуль Sketcher) и большинства элементов модуля Draft.
Тестовый скрипт
Тест создания примитивов Part с помощью скрипта. introduced in version 0.19
import parttests.part_test_objects as pto
pto.create_test_file("example_file")
Этот скрипт расположен в каталоге установки программы, и может быть изучен, чтобы узнать, как строятся базовые примитивы.
$INSTALL_DIR/Mod/Part/parttests/part_test_objects.py
Примеры
Чтобы создать элемент - линию перейдите в консоль Python и введите:
import Part,PartGui
doc=App.newDocument()
l=Part.LineSegment()
l.StartPoint=(0.0,0.0,0.0)
l.EndPoint=(1.0,1.0,1.0)
doc.addObject("Part::Feature","Line").Shape=l.toShape()
doc.recompute()
Давайте по подробней, по шагам рассмотрим пример выше:
import Part,PartGui
doc=App.newDocument()
загружает модуль деталей и создает новый документ
l=Part.LineSegment()
l.StartPoint=(0.0,0.0,0.0)
l.EndPoint=(1.0,1.0,1.0)
Линия на самом деле - отрезок, следовательно задаем начальную и конечную точку.
doc.addObject("Part::Feature","Line").Shape=l.toShape()
Это добавляет объект типа Деталь[Part] в документ и назначает форму представления отрезка в свойстве 'Shape' добавленного объекта. Важно понять, здесь мы использовали геометрический примитив (the Part.lineSegment) чтобы создать TopoShape в конце (используя toShape() метод). Только Формы могут быть добавлены в документ. В FreeCAD, геометрические примитивы используются как "строительные конструкций" для Форм.
doc.recompute()
Обновили документ. Это также должно полготовить визуальное представление нового объекта-Детали.
Заметим что Линия[Line] Segment может быть создана специфическим способом, заданием её начальной и конечной точки напрямую, пример Part.LineSegment(point1,point2) или же мы можем задать линию по умолчанию и задать её свойства позже, как мы и сделали здесь.
Линия так же может быть создана с помощью:
import FreeCAD
import Part
DOC = FreeCAD.newDocument()
def mycreateLine(pt1, pt2, objName):
obj = DOC.addObject("Part::Line", objName)
obj.X1 = pt1[0]
obj.Y1 = pt1[2]
obj.Z1 = pt1[2]
obj.X2 = pt2[0]
obj.Y2 = pt2[1]
obj.Z2 = pt2[2]
DOC.recompute()
return obj
line = mycreateLine((0,0,0), (0,10,0), "LineName")
окружность может быть создана схожим образом:
import Part
doc = App.activeDocument()
c = Part.Circle()
c.Radius=10.0
f = doc.addObject("Part::Feature", "Circle")
f.Shape = c.toShape()
doc.recompute()
или с помощью:
import FreeCAD
import Part
DOC = FreeCAD.newDocument()
def mycreateCircle(rad, objName):
obj = DOC.addObject("Part::Circle", objName)
obj.Radius = rad
DOC.recompute()
return obj
circle = mycreateCircle(5.0, "CircleName")
Опять же заметим, мы использовали окружность (геометрический примитив) чтобы создать из неё форму. Конечно мы можем получить доступ к нашей строительной геометрии потом, выполнив:
s = f.Shape
e = s.Edges[0]
c = e.Curve
Здесь мы извлекаем форму нашего объекта f, долее забираем выводим список ребер, в нашем случае будет только одна, потому что мы создали форму из одного оеружности, поэтому мы получим только одну запись в списке ребер, и мы выводим кривую. Каждое ребро это кривая, которая является геометрическим примитивом на котором оно основано.
Читайте главу Topological data scripting чтобы узнать больше.
Учебники
- Импорт из STL или OBJ : Как импортировать файлы STL/OBJ в FreeCAD
- Экспорт в STL или OBJ : Как экспортировать в FreeCAD файлы STL/OBJ
- Whiffle Ball tutorial : Как использовать модуль Part
- Начинающим
- Установка: Загрузка, Windows, Linux, Mac, Дополнительных компонентов, Docker, AppImage, Ubuntu Snap
- Базовая: О FreeCAD, Интерфейс, Навигация мыши, Методы выделения, Имя объекта, Настройки, Верстаки, Структура документа, Свойства, Помоги FreeCAD, Пожертвования
- Помощь: Учебники, Видео учебники
- Верстаки: Std Base, Arch, Assembly, CAM, Draft, FEM, Inspection, Mesh, OpenSCAD, Part, PartDesign, Points, Reverse Engineering, Robot, Sketcher, Spreadsheet, Surface, TechDraw, Test Framework
- Примитивы: Куб(Параллелограмм), Конус, Цилиндр, Сфера, Тор, Полый цилиндр,Примитивы, Связующие формы
- Создание и правка: Выдавливание, Построение фигуры вращения, Отражение, Скругление, Фаска, Создать плоскость из граней, Ruled Surface, Профиль, Sweep, Section, Cross sections, 3D Offset, 2D Offset, Создать полый объект, Projection on surface, Прикрепление
- Булевы операции: Соединить, Разорвать связь, Compound Filter, Булевы операции, Cut, Fuse, Common, Connect, Embed, Cutout, Boolean fragments, Slice apart, Slice, XOR
- Измерительные: Measure Linear, Measure Angular, Measure Refresh, Clear All, Toggle All, Toggle 3D, Toggle Delta