Part Module/ru: Difference between revisions
No edit summary |
(Redirected.) Tag: New redirect |
||
(357 intermediate revisions by 10 users not shown) | |||
Line 1: | Line 1: | ||
#REDIRECT [[Part_Workbench/ru]] |
|||
CAD возможности FreeCAD бизируются на ядре [http://en.wikipedia.org/wiki/Open_CASCADE OpenCasCade] . Модуль частей в FreeCAD открывает доступ к объектам и функциям OpenCasCade. OpenCascade это CAD ядро професионального уровня, это выражается в возможностях продвинутого манипулирование 3D геометрическим манипулированием и объектами. Объекты-детали, в отличии от [[Mesh Module/ru|Полигиональных]] объектов, являются более сложными, и следовательно дают доступ к более мощным операциям, таким как последовательные логические операции, изменение и истории и параметров построения. |
|||
[[Image:Part example.jpg]] |
|||
Пример Детали сформированной в FreeCAD |
|||
=== Инструменты === |
|||
Инструменты, модуля деталей расположены в меню '''Part''' которое появляется при загрузке модуля Деталей. |
|||
{{Part Tools}} |
|||
=== Логические операции === |
|||
[[Image:Part_BooleanOperations.png|500px|left|An example of union (Fuse), intersection (Common) and difference (Cut)]] |
|||
{{clear}} |
|||
Вот примеры объединения(слияния), пересечения (получение общего) и вычитание (обрезание) |
|||
=== Объяснение концепции === |
|||
В терминологии OpenCasCade, мы различаем геометрические примитивы и (топологические) формы. Геометрическим примитивом может быть точка, линия, окружность, полоскость и.т.д. , или даже более сложные типы, такие как кривая B-сплайна или поверхность. Формой может быть вешина, ребро, сеть , грань, твердое тело или смеьсь всех предыдущих форм. Геометрические примитивы не созданы специально для того чтобы отображаться на 3D сцене, они используются в качестве строительной геометрии форм. Для примера, ребро можно построить из линии или же из части окружности. |
|||
Мы могли бы сказать, подводя итоги, что геометрические примитивы "бесформенные" строительные блоки, а формы реальная пространственная геометрия построенная с их помощью. |
|||
Чтобы получить полный список объектов что к ним относится обратитесь к [http://www.opencascade.org/org/doc/ документации OCC] в разделах Geom_Geometry и TopoDS_Shape. Также вы больше сможете узнать о различиях геометрических объектов и форм. Обратите внимание что к сожалению документация OCC не доступна в Интернете(вы должны скачать архив) и в основном направлена на програмистов, а не на конечных пользоваетелей. Но надеемся что вы найдете здесь достаточно информации , что бы стартовать от этого. |
|||
Геометрические типы на самом деле можно разделить на две основные группы: кривые и поверхности. Из кривых (линия, окружность, ...) вы непосредственно можете строить ребра, из поверхностей (плоскость, цилиндр, ...) могут быть построены грани. Например, такой геометрический примитив как линия - бесконечен, т.е. он задается только вектором направления в то время, как его форма должна быть представлено чем-то ограниченым обладающим начальной и конечной точкой. Также и box -- твердое тело -- которое может быть создано из шести ограниченых плоскостей. |
|||
От ребра или грани, вы также можете вернутся к геометрическим примитивам из которых они состоят. |
|||
Таким образом, из форм вы можете построить очень сложные детали или , или наоборот, извлечь все субформы из созданой сложной формы. |
|||
=== Написание сценариев === |
|||
Основным структурой данных в модуле Деталей является [http://en.wikipedia.org/wiki/Boundary_representation BRep] тип данных из OpenCascade. Все содержащиеся в модуле Деталей типы объектов и функции доступны в сценариях на python. Это включает в себя геометрические примитивы, такие как Линия[Line] и Окружность[Circle] (или Дуга[Arc]), и целый ряд TopoShapes, таких как Вершины[Vertexes], Ребра[Edges], Сетки[Wires], Грани[Faces], Тела[Solids] и Составные объекты[Compounds]. Каждый из этих объектов, можно создать несколькими способами, и для некоторых из них особенно для TopoShapes, существуют продвинутые операции например логическое сложение/вычитание/пересечение которые также доступны. Чтобы знать больше изучите содержание модуля Деталей, описанное на странице [[FreeCAD Scripting Basics|Основы написания сценариев в FreeCAD]] . |
|||
=== Примеры === |
|||
Чтобы создать элемент - линию перейдите в консоль Python и введите: |
|||
import Part,PartGui |
|||
doc=App.newDocument() |
|||
l=Part.Line() |
|||
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.Line() |
|||
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.line) чтобы создать TopoShape в конце (используя toShape() метод). Только Формы могут быть добавлены в документ. В FreeCAD, геометрические примитивы используются как "строительные конструкций" для Форм. |
|||
doc.recompute() |
|||
Обновили документ. Это также должно полготовить визуальное представление нового объекта-Детали. |
|||
Заметим что Линия[Line] может быть создана специфическим способом, заданием её начальной и конечной точки напрямую, пример Part.Line(point1,point2) или же мы можем задать линию по умолчанию и задать её свойства позже, как мы и сделали здесь. |
|||
окружность может быть создана схожим образом: |
|||
import Part |
|||
doc = App.activeDocument() |
|||
c = Part.Circle() |
|||
c.Radius=10.0 |
|||
f = doc.addObject("Part::Feature", "Circle") |
|||
f.Shape = c.toShape() |
|||
doc.recompute() |
|||
Опять же заметим, мы использовали окружность (геометрический примитив) чтобы создать из неё форму. Конечно мы можем получить доступ к нашей строительной геометрии потом, выполнив: |
|||
s = f.Shape |
|||
e = s.Edges[0] |
|||
c = e.Curve |
|||
Здесь мы извлекаем форму нашего объекта f, долее забираем выводим список ребер, в нашем случае будет только одна, потому что мы создали форму из одного оеружности, поэтому мы получим только одну запись в списке ребер, и мы выводим кривую. Каждое ребро это кривая, которая является геометрическим примитивом на котором оно основано. |
|||
Читайте главу [[Topological data scripting]] если хотите знать больше. |
|||
{{docnav|Mesh Module/ru|Drawing Module}} |
|||
{{languages | {{en|Part Module/en}} {{es|Part Module/es}} {{pl|Part Module/pl}} {{se|Part Module/se}} }} |
|||
[[Category:User Documentation]] |
Latest revision as of 14:58, 27 April 2024
Redirect to: