Part Module/fr: Difference between revisions

From FreeCAD Documentation
(Created page with "Passons en revue l'exemple python ci-dessus étape par étape:")
(Created page with "charge l'établi pièce et crée un nouveau document")
Line 54: Line 54:
doc=App.newDocument()
doc=App.newDocument()
</syntaxhighlight>
</syntaxhighlight>
loads the Part module and creates a new document
charge l'établi pièce et crée un nouveau document
<syntaxhighlight>
<syntaxhighlight>
l=Part.Line()
l=Part.Line()

Revision as of 20:45, 8 December 2013

Les capacités CAO de FreeCAD sont basées sur le noyau OpenCasCade. L'établi pièce de FreeCAD permet d'accéder et utiliser les objets et les fonctions OpenCascade. OpenCascade est un noyau CAO de niveau professionnel, qui contient des fonctions avancées de manipulation de géométrie 3D et d'objets. Les objets pièces, contrairement aux objets maillages, sont beaucoup plus complexes, et permettent donc des opérations beaucoup plus avancées, telles que les opérations booléennes logiques, l'historique des modifications ou encore des comportements paramétriques.

Exemple de forme réalisée à l'aide de l'établi pièce

Les outils

Les outils de l'établi pièce sont situés dans le menu Pièce qui apparait lorsque l'on charge l'établi pièce.

Template:Part Tools/fr

Opérations booléennes

Un exemple d'addition (Union), d'intersection et de différence (Soustraction)
Un exemple d'addition (Union), d'intersection et de différence (Soustraction)

Un exemple d'addition (Union), d'intersection et de différence (Soustraction)

Explication des concepts

Dans la terminologie OpenCascade, nous faisons la distinction entre les primitives géométriques et les formes (topologiques). Une primitive géométrique peut être un point, une ligne, un cercle, un plan, etc. ou même certains types plus complexes, comme une courbe B-Spline ou une surface. Une forme (shape en anglais) peut être un sommet, une arête, un fil, une face, un solide ou un composé d'autres formes. Les primitives géométriques ne sont pas faites pour être affichées directement sur la scène 3D, mais plutôt pour être utilisées comme géométrie de construction des formes. Par exemple, une arête peut être construite à partir d'une ligne ou d'une partie de cercle.

On pourrait donc dire, pour résumer, que les primitives géométriques sont des blocs de construction "informes", et que les formes sont les véritables entités géométriques spatiales construites sur ces blocs.

Pour obtenir une liste complète de tous ces éléments, se référer à la documentation OCC et rechercher Geom_Geometry et TopoDS_Shape. Là, vous pourrez également en savoir plus sur les différences entre les objets géométriques et les formes. À notre grand regret, la documentation OCC n'est malheureusement pas disponible en ligne (vous devez télécharger une archive) et est principalement destiné aux programmeurs et non aux utilisateurs finaux. Mais espérons que vous trouverez suffisamment d'informations pour commencer ici.

Les types géométriques peuvent en fait être divisés en deux groupes principaux: les courbes et les surfaces. Sur les courbes (ligne, cercle, ...) vous pouvez directement créer une arête, sur les surfaces (plan, cylindre, ...) une face peut être construite. Par exemple, la ligne primitive géométrique est illimitée, c'est à dire qu'elle est définie par un vecteur de base et un vecteur directeur tandis que la forme associée (et représentée) doit être quelque chose de limité par un début et de fin. Et un cube - un solide - peut être créée par six plans limités.

En contrepartie, il est également possible, depuis une arête ou une face, de revenir à sa primitive géométrique.

Ainsi, en se basant sur les formes, vous pouvez construire des pièces très complexes ou, dans l'autre sens, extraire tous les sous-formes dont est faite une forme plus complexe.

Les scripts

La structure principale de données utilisée dans l'établi pièce est le type de données BRep d'OpenCascade. Presque tous les contenus et les types d'objets de l'établi pièce sont maintenant disponibles pour les scripts python. Cela inclut les primitives géométriques, telles que les lignes (Line) et les cercles (Circle ou Arc), et l'ensemble des TopoShapes, tels que les vertex, arêtes, fils, faces, solides et composés. Pour chacun de ces objets, plusieurs méthodes de création existent, et pour certains d'entre eux, en particulier les TopoShapes, des opérations avancées telles que les opérations booléennes union / soustraction / intersection sont également disponibles. Explorez le contenu de l'établi pièce, tel que décrit dans la page Les bases du langage de script de FreeCAD, pour en savoir plus.

Exemples

Pour créer un élément ligne, passer à la console Python et taper:

 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()

Passons en revue l'exemple python ci-dessus étape par étape:

 import Part,PartGui
 doc=App.newDocument()

charge l'établi pièce et crée un nouveau document

 l=Part.Line()
 l.StartPoint=(0.0,0.0,0.0)
 l.EndPoint=(1.0,1.0,1.0)

Line is actually a line segment, hence the start and endpoint.

 doc.addObject("Part::Feature","Line").Shape=l.toShape()

This adds a Part object type to the document and assigns the shape representation of the line segment to the 'Shape' property of the added object. It is important to understand here that we used a geometric primitive (the Part.Line) to create a TopoShape out of it (the toShape() method). Only Shapes can be added to the document. In FreeCAD, geometry primitives are used as "building structures" for Shapes.

 doc.recompute()

Updates the document. This also prepares the visual representation of the new part object.

Note that a Line can be created by specifying its start and endpoint directly in the constructor, for example Part.Line(point1,point2), or we can create a default line and set its properties afterwards, as we did here.

A circle can be created in a similar way:

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

Note again, we used the circle (geometry primitive) to construct a shape out of it. We can of course still access our construction geometry afterwards, by doing:

 s = f.Shape
 e = s.Edges[0]
 c = e.Curve

Here we take the shape of our object f, then we take its list of edges. In this case there will be only one because we made the whole shape out of a single circle, so we take only the first item of the Edges list, and we takes its curve. Every Edge has a Curve, which is the geometry primitive it is based on.

Head to the Topological data scripting page if you would like to know more.

Mesh Module
Drawing Module