Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Géométrie constructive des solides avec pyvista

Objets géométriques élémentaires

Commençons par construire une sphère et affichons la :

import pyvista
sphere = pyvista.Sphere()
sphere.plot()

Vérifiez que la sphere s’affiche bien !

Construisons maintenant une sphère en spécifiant son rayon (radius) et son centre (center):

sphere = pyvista.Sphere(radius=3, center=(0, 0, 1))
sphere.plot()
### BEGIN SOLUTION
cube = pyvista.Cube()
cube.plot()
### END SOLUTION
### BEGIN SOLUTION
cube = pyvista.Cube(center=(1, 0, 0), x_length=3, y_length=4, z_length=2)
cube.plot()
### END SOLUTION
### BEGIN SOLUTION
cylinder = pyvista.Cylinder(
    center=(1, 0, 0), direction=(0, 0, 1), height=10, radius=0.5
)
cylinder.plot()
### END SOLUTION
### BEGIN SOLUTION
cone = pyvista.Cone(direction=(0, 0, 1), resolution=24)
cone.plot()
### END SOLUTION

Des maillages, des couleurs et des scènes

Observez de près les objets que que nous avons construit ci-dessus. Vous constaterez que ce sont des surfaces en trois dimensions obtenues en combinant une multitude de petites surfaces plates, telles que des triangles. On les appelle des maillages (mesh).

Voici comment afficher un maillage en couleur :

sphere = pyvista.Sphere()
sphere.plot(color="red")

Pour afficher plusieurs maillages avec des couleurs différentes, il faut les insérer dans une scène. Cette scène permettrait aussi de spécifier d’autres éléments, comme la position par défaut de la caméra, etc.

cube = pyvista.Cube(center=(-1, 0, 0))
sphere = pyvista.Sphere(center=(1, 0, 0))

scene = pyvista.Plotter()
scene.add_mesh(cube, color="green")
scene.add_mesh(sphere, color="red")
scene.show()

Construction de nouveaux objets par opérations booléennes

Nous allons maintenant construire de nouveaux objets en combinant le cube et la sphère.

cube = pyvista.Cube().triangulate().subdivide(3)
sphere = pyvista.Sphere(radius=0.65)

Calculons maintenant la différence entre le cube et la sphère et affichons la :

objet = cube.boolean_difference(sphere)
objet.plot(color="lightblue")

C’est un exemple d’opération booléenne entre figures géométriques. De la même manière, on pourrait calculer la différence entre la sphère et le cube :

objet = sphere.boolean_difference(cube)
objet.plot(color="lightblue")

l’union entre le cube et la sphère :

objet = cube.boolean_union(sphere)
objet.plot(color="lightblue")

ou leur intersection :

objet = cube.boolean_intersection(sphere)
objet.plot(color="lightblue")

Pour l’union ou la différence, on peut utiliser les opérateurs + et - comme ci-dessous:

objet = cube - sphere
objet.plot()

Transformations géométriques

Une fois un objet construit, il est possible de lui appliquer des transformations géométriques: translations, rotations, homothéties.

Voici la réunion du cube et d’une copie translatée :

objet = cube + cube.translate([2, 0, 0])
objet.plot()

la réunion du cube et d’une rotation du cube de 45 degrés selon l’axe vertical :

objet = cube + cube.rotate_z(30)
objet.plot()

la réunion du cube et d’une copie translatée et de taille multipliée (scale) par .5 :

objet = cube + cube.translate([2, 0, 0]).scale(0.5)
objet.plot()

Exercices

Extrusion

L’extrusion est un procédé puissant pour construire une forme tridimensionnelle à partir d’une forme plane, par analogie à une extrusion mécanique. Pensez au boudin obtenu en pressant un tube de pâte dentifrice, à travers son orifice rond.

Objets virtuels créés par extrusion d’une même section suivant trois modes: rectiligne,
circulaire ou gauche (crédits: Wikipedia).

Objets virtuels créés par extrusion d’une même section suivant trois modes: rectiligne, circulaire ou gauche (crédits: Wikipedia).

Export et impression 3D

Une fois que l’on a construit un objet, on peut le sauvegarder (save), par exemple dans le format stl pour impression 3D:

objet.save("objet.stl")

Cela va créer un fichier objet.stl dans le même dossier que le carnet Jupyter. Vous pouvez choisir n’importe quel autre nom.

Impression avec Prusa

  1. Téléchargez l’outil de Prusa depuis: https://www.prusa3d.com/page/prusaslicer_424/

  2. Ouvrez le dossier où a été téléchargé le fichier.

  3. Depuis le navigateur de fichier, désarchiver l’archive.

  4. Faitez un clic droit sur le fichier PrusaSlicer-2.8.1+linux-x64-newer-distros-GTK3-202409181416.AppImage -> Propriétés -> Permissions -> Autoriser l’exécution du fichier.

  5. Exécutez ce fichier.

Impression avec Cura

  1. Téléchargez la version Linux.AppImage de Cura depuis le site web.

  2. Ouvrez le dossier ou a été téléchargé le fichier

  3. Faitez un clic droit sur le fichier -> Propriétés -> Permissions -> Autoriser l’exécution du fichier

  4. Clic sur le fichier pour lancer l’application