Part Module/ru

Введение
Возможности твердотельного моделирования FreeCAD базируются на ядре Open Cascade Technology (OCCT), системе САПР профессионального качества с возможностями продвинутого создания и манипулирования трёхмерными объектами. Верстак Part это слой, базирующийся на библиотеках OCCT, дающие пользователям доступ к примитивам и функциям OCCT. Практически все функции двумерного и трёхмерного черчения в каждом верстаке ( Draft, Sketcher,  PartDesign и т.д.) базируются на этих функциях, предоставляемых верстаком Part. Следовательно, верстак Part считается центральным компонентом возможностей моделирования FreeCAD.

The objects created with the Part Workbench are relatively simple; they are intended to be used with boolean operations (unions and cuts) in order to build more complex shapes. This modeling paradigm is known as the constructive solid geometry (CSG) workflow, and it was the traditional methodology used in early CAD systems. On the other hand, the PartDesign Workbench provides a more modern workflow to constructing shapes: it uses a parametrically defined sketch, that is extruded to form a basic solid body, which is then modified by parametric transformations (feature editing), until the final object is obtained.

Part objects are more complex than mesh objects created with the Mesh Workbench, as they permit more advanced operations like coherent boolean operations, modifications history, and parametric behaviour.



Инструменты
Инструменты модуля деталей расположены в меню.

Примитивы
Эти инструменты создают примитивные объекты.


 * [[Image:Part_Box.svg|32px]] Куб: Рисует прямоугольный параллелепипед с указанными размерами
 * [[Image:Part_Cylinder.svg|32px]] Цилиндр: Рисует цилиндр с указанными размерами
 * [[Image:Part_Sphere.svg|32px]] Сфера: Рисует сферу с указанными размерами
 * [[Image:Part_Cone.svg|32px]] Конус: Рисует конус с указанными размерами
 * [[Image:Part_Torus.svg|32px]] Тор: Рисует тор (кольцо) с указанными размерами
 * [[Image:Part_Primitives.svg|32px]] Создать примитивы: Инструмент добавления любого из определённых геометрических примитивов
 * [[Image:Part_Shapebuilder.svg|32px]] Построитель форм: Инструмент создания более сложных форм из различных параметрических геометрических примитивов

Изменение объектов
Это инструменты для изменения существующих объектов. Они позволяют вам выбирать, какой объект вы будете изменять.


 * [[Image:Part_Extrude.svg|32px]] Выдавить: Вытягивает плоские грани объекта
 * [[Image:Part_Revolve.svg|32px]] Вращать: Создает объект вращением одного объекта вокруг оси
 * [[Image:Part_Mirror.svg|32px]] Зеркальное отражение: Отражает выбранные объекты на данной зеркальной плоскости
 * [[Image:Part_Fillet.svg|32px]] Скругление: Скругляет ребра объекта
 * [[Image:Part_Chamfer.svg|32px]] Фаска: Делает фаску на гранях объектов
 * [[Image:Part_RuledSurface.svg|32px]] Создать линейчатую поверхность: Этот инструмент создает линейчатую поверхность между двумя линиями или краями выбранных выше.
 * [[Image:Part_Loft.svg|32px]] Лофт: Выполняет лофтинг от одного профиля к другому
 * [[Image:Part_Sweep.svg|32px]] Сдвиг: Развёртывает один или более профилей вдоль заданной трассы


 * [[Image:Part_CompOffsetTools.png|48px]] Offset tools:
 * [[Image:Part_Offset.svg|32px]] Смещение: Создаёт увеличенную копию оригинального объекта
 * [[Image:Part_Offset2D.svg|32px]] 2D Offset: Создает параллельный провод на определенном расстоянии от оригинала или увеличивает/сжимает плоскую грань.


 * [[Image:Part_Thickness.svg|32px]] Толщина: Назначает толщину поверхностям формы.


 * [[Image:Part_ProjectionOnSurface.png|32px]] Projection on surface: Project a logo, text or any face,wire,edge to a surface. With the projection part it is possible to create a solid or wire.


 * [[Image:Part_Compound.svg|48px]] Compound Tools:
 * [[Image:Part_Compound.svg|32px]] Make compound: Создаёт объект, соединяющий в себе выбранные объекты.
 * [[Image:Part_ExplodeCompound.svg|32px]] Explode Compound: Tool to split up compounds of shapes
 * [[Image:Part Compound‏‎Filter.svg|32px]] Compound Filter: The CompoundFilter can be used to extract the individual pieces.


 * [[Image:Part_Booleans.svg|32px]] Boolean: Производит булевы операции над объектами
 * [[Image:Part_Fuse.svg|32px]] Объединение: Сплавляет (объединяет) два объекта
 * [[Image:Part_Common.svg|32px]] Пересечение: Извлекает общую часть (пересечение) двух объектов
 * [[Image:Part_Cut.svg|32px]] Обрезать: Обрезает (вычитает) один объект из другого


 * [[Image:Part_CompJoinFeatures.png|48px]] Join features: Сложные сопряжения для объектов со стенками (Например, труб)
 * [[Image:Part_JoinConnect.svg|32px]] Connect: Соединяет внутренности объектов
 * [[Image:Part_JoinEmbed.svg|32px]] Embed: Внедряет объект со стенками внутрь другого такого же объекта
 * [[Image:Part_JoinCutout.svg|32px]] Cutout: Создаёт вырез в стенке объекта для другого объекта со стенками


 * [[Image:Part_CompSplittingTools.png|48px]] Splitting tools:
 * [[Image:Part_BooleanFragments.svg|32px]] Boolean fragments:делает все части, которые могут быть получены с помощью логических операций между объектами
 * [[Image:Part SliceApart.svg|32px]] Slice a part: инструмент для разделения фигур путем пересечения с другими формами
 * [[Image:Part_Slice.svg|32px]] Slice: Разбивает объект на части путем пересечения с другим объектом
 * [[Image:Part_XOR.svg|32px]] XOR: удаляет пространство, разделенное четным числом объектов (симметричная версия Cut)


 * [[Image:Part Defeaturing.svg|32px]] Defeaturing:
 * [[Image:Part_Section.svg|32px]] Section: Создает сечение, как пересечением секущей плоскости и объекта
 * [[Image:Part_CrossSections.svg|32px]] Поперечные сечения...: Создаёт одно или более поперечных сечений через выбранную форму
 * [[Image:Part Attachment.svg|32px]] Attachment: утилита для прикрепления одного объекта к другому.

Measure
Measure: Allows linear and angular measurement between points, edges, and faces.


 * [[Image:Part_Measure_Linear.svg|32px]] Measure Linear allows you to make linear measurements.
 * [[Image:Part_Measure_Angular.svg|32px]] Measure Angular allows you to make angular measurements.
 * [[Image:Part_Measure_Refresh.svg|32px]] Measure Refresh updates the measurements on screen.
 * [[Image:Part_Measure_Clear_All.svg|32px]] Clear All Clears all measurements.
 * [[Image:Part_Measure_Toggle_All.svg|32px]] Toggle All shows or hides all measurements.
 * [[Image:Part_Measure_Toggle_3d.svg|32px]] Toggle 3D shows or hides 3D measurements.
 * [[Image:Part_Measure_Toggle_Delta.svg|32px]] Toggle Delta shows or hides delta measurements.

Прочие инструменты

 * [[Image:Part_Import.svg|32px]] Импорт: Этот инструмент позволяет добавить в текущий документ файл *.IGES, *.STEP, *.BREP.
 * [[Image:Part_Export.svg|32px]] Экспорт: Этот инструмент позволяет экспортировать деталь в формате *.IGES, *.STEP, *.BREP.
 * Part_BoxSelection.svg BoxSelection: Добавляет к выделению грани фигур, соприкасающихся с прямоугольным выделением.
 * [[Image:Part_ShapeFromMesh.svg|32px]] Создание формы из сетки: Создаёт форму из сетки.
 * Part_PointsFromMesh.svg Points from mesh: Создаёт объект формы из точек сетки.
 * Convert to solid: Преобразует форму в твердое тело.
 * Обратная фигура: Отражает нормали всех граней выбранного объекта.


 * создать копию:
 * [[Image:Part_SimpleCopy‎.svg|32px]] Создать простую копию: Создаёт простую копию выбранного объекта.
 * Part_TransformedCopy.svg Create transformed copy: creates a transformed copy of the selected object.
 * Part_ElementCopy.svg Create shape element copy: creates a copy from an element (vertex, edge, face) of the selected object.
 * [[Image:Part RefineShape.png|32px]] Уточнить форму: Очищает поверхности удалением ненужных линий.


 * [[Image:Part_CheckGeometry.svg|32px]] Проверка геометрии: Проверяет геометрию выбранных объектов на ошибки.

Preferences

 * [[Image:Preferences-import-export.svg|32px]] Preference ... Import Export

Геометрические концепции OCCT
В терминологии OpenCascade геометрические примитивы и (топологические) формы различны. Геометрическим примитивом может быть точка, линия, окружность, плоскость и т.д. , или даже более сложные типы, такие как кривая B-сплайна или поверхность. Формой может быть вешина, ребро, сеть, грань, твердое тело или соединение всего этого. Геометрические примитивы не созданы специально для того чтобы отображаться на 3D сцене, они используются в качестве строительной геометрии форм. Для примера, ребро можно построить из линии или же из части окружности.

В общем, геометрические примитивы это "бесформенные" строительные блоки, а топологические формы это реальные объекты, построенные на них.

Полный список всех примитивов и форм находится в документации OCC в разделах Geom_Geometry и TopoDS_Shape. (Альтернатива: sourcearchive.com) и поиск Geom_* (для геометрических примитивов) и TopoDS_* (для форм). Также вы больше сможете узнать о различиях между ними. Обратите внимание, что к сожалению документация OCC не доступна в Интернете(вы должны скачать архив) и в основном направлена на программистов, а не на конечных пользователей. Но надеемся, что вы найдете здесь достаточно информации для начала.

Геометрические типы на самом деле можно разделить на две основные группы: кривые и поверхности. Из кривых (линия, окружность, ...) вы непосредственно можете строить ребра, из поверхностей (плоскость, цилиндр, ...) могут быть построены грани. Например, такой геометрический примитив как линия - бесконечен, т.е. он задается только вектором направления в то время, как его форма должна быть представлено чем-то ограниченым обладающим начальной и конечной точкой. Также и box -- твердое тело -- которое может быть создано из шести ограниченых плоскостей.

От ребра или грани, вы также можете вернутся к геометрическим примитивам из которых они состоят.

Таким образом, из форм вы можете построить очень сложные детали или, или наоборот, извлечь все субформы из созданой сложной формы.



Написание сценариев
Part scripting

Основным структурой данных в модуле Деталей является BRep тип данных из OpenCascade. Все содержащиеся в модуле Деталей типы объектов и функции доступны в сценариях на Python. Это включает в себя геометрические примитивы, такие как Линия[Line] и Окружность[Circle] (или Дуга[Arc]), и целый ряд TopoShapes, таких как Вершины[Vertexes], Ребра[Edges], Сетки[Wires], Грани[Faces], Тела[Solids] и Составные объекты[Compounds]. Каждый из этих объектов, можно создать несколькими способами, и для некоторых из них особенно для TopoShapes, существуют продвинутые операции например логическое сложение/вычитание/пересечение которые также доступны. Чтобы знать больше изучите содержание модуля Деталей, описанное на странице Основы написания сценариев в FreeCAD.

The most basic object that can be created is a Part Feature, which has a simple property, and basic properties to define its color and appearance.

Another simple object used in 2D geometrical objects is Part Part2DObject, which is the base of Sketcher SketchObject (Sketcher), and most Draft elements.

Test script
Test the creation of Part Primitives with a script.

This script is located in the installation directory of the program, and can be examined to see how the basic primitives are built.

Примеры
Чтобы создать элемент - линию перейдите в консоль Python и введите:

Давайте по подробней, по шагам рассмотрим пример выше:

загружает модуль деталей и создает новый документ

Линия на самом деле - отрезок, следовательно задаем начальную и конечную точку.

Это добавляет объект типа Деталь[Part] в документ и назначает форму представления отрезка в свойстве 'Shape' добавленного объекта. Важно понять, здесь мы использовали геометрический примитив (the Part.lineSegment) чтобы создать TopoShape в конце (используя toShape метод). Только Формы могут быть добавлены в документ. В FreeCAD, геометрические примитивы используются как "строительные конструкций" для Форм.

Обновили документ. Это также должно полготовить визуальное представление нового объекта-Детали.

Заметим что Линия[Line] Segment может быть создана специфическим способом, заданием её начальной и конечной точки напрямую, пример Part.LineSegment(point1,point2) или же мы можем задать линию по умолчанию и задать её свойства позже, как мы и сделали здесь.

A Line can be created also using:

окружность может быть создана схожим образом:

or using:

Опять же заметим, мы использовали окружность (геометрический примитив) чтобы создать из неё форму. Конечно мы можем получить доступ к нашей строительной геометрии потом, выполнив:

Здесь мы извлекаем форму нашего объекта f, долее забираем выводим список ребер, в нашем случае будет только одна, потому что мы создали форму из одного оеружности, поэтому мы получим только одну запись в списке ребер, и мы выводим кривую. Каждое ребро это кривая, которая является геометрическим примитивом на котором оно основано.

Читайте главу Topological data scripting чтобы узнать больше.

Учебники

 * Импорт из STL или OBJ : Как импортировать файлы STL/OBJ в FreeCAD
 * Экспорт в STL или OBJ : Как экспортировать в FreeCAD файлы STL/OBJ
 * Whiffle Ball tutorial : Как использовать модуль Part