Part Module/ru: Difference between revisions

From FreeCAD Documentation
(Created page with "Другой простой объект, используемый в плоских геометрических объектах, это Part Part2DObject/ru|Part Part2DOb...")
(Redirected.)
Tag: New redirect
 
(214 intermediate revisions by 6 users not shown)
Line 1: Line 1:
#REDIRECT [[Part_Workbench/ru]]
<languages/>
{{Docnav/ru
|[[OpenSCAD Module/ru|Модуль OpenSCAD]]
|[[PartDesign Workbench/ru|Верстак PartDesign]]
|IconL=Workbench_OpenSCAD.svg
|IconR=Workbench_PartDesign.svg
}}

[[Image:Workbench_Part.svg|thumb|128px|Part workbench icon]]
{{TOCright}}
== Введение ==
Возможности твердотельного моделирования FreeCAD базируются на ядре [http://ru.wikipedia.org/wiki/Open_CASCADE Open Cascade Technology] (OCCT), системе САПР профессионального качества с возможностями продвинутого создания и манипулирования трёхмерными объектами. [[Image:Workbench_Part.svg|24px]] [[Part Workbench/ru|Верстак Part]] это слой, базирующийся на библиотеках OCCT, дающие пользователям доступ к примитивам и функциям OCCT. Практически все функции двумерного и трёхмерного черчения в каждом верстаке ([[Image:Workbench_Draft.svg|24px]] [[Draft Workbench/ru|Draft]], [[Image:Workbench_Sketcher.svg|24px]] [[Sketcher Workbench/ru|Sketcher]], [[Image:Workbench_PartDesign.svg|24px]] [[PartDesign Workbench/ru|PartDesign]] и т.д.) базируются на этих функциях, предоставляемых верстаком Part. Следовательно, верстак Part считается центральным компонентом возможностей моделирования FreeCAD.

Объекты, создаваемые верстаком Part относительно просты, они предназначены для использования в булевых операциях (объединения и вырезания) для построения более сложных фигур. '''Эта парадигма моделирования известна как процесс [[constructive solid geometry/ru|конструктивной блочной геометрии]] (CSG, КБГ), и это традиционная методология, используемая в ранних системах САПР.''' С другой стороны, [[PartDesign Workbench/ru|верстак PartDesign]] предлагает более современный процесс создания фигур: он использует параметрически заданные эскизы, которые выдавливаются для формирования базовых твёрдых тел, которые потом модифицируются параметрическими трансформациями ([[feature editing/ru|редактирования свойств]]) до получения конечного объекта.

Объекты Part сложнее, чем сеточные объекты, создаваемые в [[Mesh Workbench/ru|верстаке Mesh]], поскольку они дают более сложные операции вроде когерентных булевых операций, историю модификации и параметрическое поведение.

[[Image:Part_Workbench_relationships.svg|600px]]

{{Caption|Верстак Part Workbench это базовый слой, предоставляющий чертёжные функции OCCT всем верстакам FreeCAD}}

== Инструменты ==

Инструменты модуля деталей расположены в меню {{MenuCommand|Деталь}}.

===Примитивы===

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

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

===Изменение объектов===

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

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

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

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

* [[Image:Part_ProjectionOnSurface.png|32px]] [[Part_ProjectionOnSurface/ru|Projection on surface]]: создаёт проекцию логотипа, текста или любой грани, полилинии, кромки на поверхность. С проекцией можно сделаь твёрдое тело или полилинию. {{Version|0.19}}

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

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

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

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

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

=== Измерение ===

[[File:Std Measure Menu.png|64px]] [[Std Measure Menu/ru|Measure]]: Обеспечивает линейные и угловые измерения между точками, рёбрами и гранями.

* [[Image:Part_Measure_Linear.svg|32px]] [[Part_Measure_Linear/ru|Measure Linear]] позволяет делать линейные изменения.
* [[Image:Part_Measure_Angular.svg|32px]] [[Part_Measure_Angular/ru|Measure Angular]] позволяет делать угловые измерения.
* [[Image:Part_Measure_Refresh.svg|32px]] [[Part_Measure_Refresh/ru|Measure Refresh]] обновляет измерения на экране.
* [[Image:Part_Measure_Clear_All.svg|32px]] [[Part_Measure_Clear_All/ru|Clear All]] очищает все измерения.
* [[Image:Part_Measure_Toggle_All.svg|32px]] [[Part_Measure_Toggle_All/ru|Toggle All]] показывает или скрывает все измерения.
* [[Image:Part_Measure_Toggle_3d.svg|32px]] [[Part_Measure_Toggle_3d/ru|Toggle 3D]] показывает или скрывает трёхмерные измерения.
* [[Image:Part_Measure_Toggle_Delta.svg|32px]] [[Part_Measure_Toggle_Delta/ru|Toggle Delta]] показывает или скрывает дельта-измерения.

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

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

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

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

== Настройки ==

* [[Image:Preferences-import-export.svg|32px]] [[Import_Export_Preference/ru|Предпочтение ...]] Импорт Экспорт

== Геометрические концепции OCCT ==

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

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

Полный список всех примитивов и форм находится в [http://www.opencascade.org/org/doc/ документации OCC] в разделах Geom_Geometry и TopoDS_Shape. (Альтернатива: [http://opencascade.sourcearchive.com/documentation/6.3.0.dfsg.1-1/classes.html sourcearchive.com]) и поиск '''Geom_*''' (для геометрических примитивов) и '''TopoDS_*''' (для форм). Также вы больше сможете узнать о различиях между ними. Обратите внимание, что к сожалению документация OCC не доступна в Интернете(вы должны скачать архив) и в основном направлена на программистов, а не на конечных пользователей. Но надеемся, что вы найдете здесь достаточно информации для начала.

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

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

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

[[File:Part_TopoShape_relationships.svg|600px]]

{{Caption|Класс {{incode|Part::TopoShape}} это видимый на экране геометрический объект. Практически все верстаки используют эти [[Part_TopoShape/ru|TopoShapes]] внутри себя для построения и показа кромок, граней и твёрдых тел.}}

== Написание сценариев ==

{{Emphasis|Смотри так же:}} [[Part scripting/ru|Part scripting]]

Основным структурой данных в модуле Part является [http://en.wikipedia.org/wiki/Boundary_representation BRep] тип данных из OpenCascade.
Все содержащиеся в модуле Part типы объектов и функции доступны в сценариях на [[Python/ru|Python]]. Это включает в себя геометрические примитивы, такие как Линия и Окружность (или Дуга), и целый ряд топологических фигур, таких как Вершины, Ребра, Полилинии, Грани, Тела и Составные объекты. Каждый из этих объектов можно создать несколькими способами, и для некоторых из них, особенно для топологических фигур, продвинутые операции, например булево сложение/вычитание/пересечение, так же доступны. Чтобы знать больше, изучите содержание модуля Part, описанное на странице [[FreeCAD Scripting Basics/ru|Основы написания сценариев в FreeCAD]] .

Самый базовый объект, который можно создать, это [[Feature Feature/ru|Part Feature]], имеющий простое свойство размещения {{PropertyData|Placement}} и базовые свойства определения его цвета и внешнего вида.

Другой простой объект, используемый в плоских геометрических объектах, это [[Part Part2DObject/ru|Part Part2DObject]], являющийся основой [[Sketcher_SketchObject/ru|Sketcher SketchObject]] ([[Sketcher Workbench/ru|модуль Sketcher]]) и большинства [[Draft Workbench/ru|элементов модуля Draft]].

=== Тестовый скрипт ===

Test the creation of [[Part_Primitives|Part Primitives]] with a script. {{Version|0.19}}

{{Code|code=
import parttests.part_test_objects as pto
pto.create_test_file("example_file")
}}

This script is located in the installation directory of the program, and can be examined to see how the basic primitives are built.
{{Code|code=
$INSTALL_DIR/Mod/Part/parttests/part_test_objects.py
}}

=== Примеры ===

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

{{Code|code=
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()
}}

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

{{Code|code=
import Part,PartGui
doc=App.newDocument()
}}

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

{{Code|code=
l=Part.LineSegment()
l.StartPoint=(0.0,0.0,0.0)
l.EndPoint=(1.0,1.0,1.0)
}}

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

{{Code|code=
doc.addObject("Part::Feature","Line").Shape=l.toShape()
}}

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

{{Code|code=
doc.recompute()
}}

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

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

A Line can be created also using:

{{Code|code=
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")

}}



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

{{Code|code=
import Part
doc = App.activeDocument()
c = Part.Circle()
c.Radius=10.0
f = doc.addObject("Part::Feature", "Circle")
f.Shape = c.toShape()
doc.recompute()
}}

or using:

{{Code|code=
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")

}}


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

{{Code|code=
s = f.Shape
e = s.Edges[0]
c = e.Curve
}}

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

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

== Учебники ==
* [[Import_from_STL_or_OBJ/ru|Импорт из STL или OBJ]] : Как импортировать файлы STL/OBJ в FreeCAD
* [[Export_to_STL_or_OBJ/ru|Экспорт в STL или OBJ]] : Как экспортировать в FreeCAD файлы STL/OBJ
* [[Whiffle_Ball_tutorial/ru|Whiffle Ball tutorial]] : Как использовать модуль Part

{{Docnav/ru
|[[OpenSCAD Module/ru|Модуль OpenSCAD]]
|[[PartDesign Workbench/ru|Верстак PartDesign]]
|IconL=Workbench_OpenSCAD.svg
|IconR=Workbench_PartDesign.svg
}}



{{Userdocnavi{{#translation:}}}}

{{Part Tools navi{{#translation:}}}}

[[Category:Workbenches{{#translation:}}]]

Latest revision as of 14:58, 27 April 2024

Redirect to: