Console de Python¶
La Console de Python est une manière rapide d’exécuter des commandes, avec accès à l’entière API Python, un historique des commandes et une complétion automatique.
C’est une bonne manière d’explorer les possibilités, qui peuvent ensuite être collées dans des scripts plus grands.
Utilisation¶
Accès à la Console de Python intégré¶
En pressant Maj-F4
dans n’importe quel type d’éditeur de Blender (Vue 3D, Timeline, etc.) vous pouvez le changer en un éditeur Console.

Dans la capture d’écran ci-dessus, vous remarquerez que, à part les raccourcis clavier habituels qui sont utilisés pour la navigation, en pressant Ctrl-Barre d'espace
vous disposez de la fonction de complétion automatique.
L’invite de commande est typique pour Python 3.x, l’interpréteur est chargé et est prêt à accepter les commandes à l’invite >>>
D’abord observez l’environnement de la Console¶
Pour vérifier ce qui est chargé dans l’environnement de l’interpréteur, tapez dir() à l’invite et exécutez-le.

Ce qui suit est un survol rapide de la sortie :
C
: accès rapide àbpy.context
.D
: accès rapide àbpy.data
.bpy
: module API Python Blender de haut niveau.
Complétion automatique à l’œuvre¶
Maintenant tapez bpy.
et ensuite pressez Ctrl-Barre d'espace
et vous verrez la fonction de complétion automatique de la Console en action.

Vous remarquerez qu’une liste de sous-modules de bpy apparaît. Ces modules encapsulent tout ce que nous pouvons faire avec l’API Python Blender et sont de très puissants outils.
Listons tout le contenu du module bpy.app.
Notez la sortie en vert au dessus de l’invite où vous avez activé la complétion automatique. Ce que vous voyez est le résultat du listing de la complétion automatique. Dans le listing ci-dessus tous sont des noms attribués à des modules, mais si vous voyez un nom se terminant par (
, alors c’est une fonction.
Nous ferons grand usage de cela pour accélérer notre apprentissage de l’API. Maintenant que vous avez compris, procédons à l’investigation de certains des modules de bpy.
Avant de jouer avec les modules...¶
Si vous regardez la Vue 3D dans la scène par défaut de Blender, vous remarquerez trois objets : Cube, Lamp et Camera.
Tous les objets existent dans un contexte et il peut y avoir divers modes dans lesquels ils opèrent.
Dans tous les cas, un objet et un seul est actif et il peut y avoir plus d’un objet sélectionné.
Tous les objets sont enregistrés comme données dans le fichier blend.
Il existe des opérateurs/fonctions qui créent et modifient ces objets.
Pour tous les scénarios listés ci-dessus (pas tous sont listés, bien entendu...) le module bpy fournit la fonctionnalité pour accéder et modifier les données.
Exemples¶
bpy.context¶
Note
Pour que les commandes ci-dessous affichent la sortie correcte, assurez-vous que vous avez sélectionné le(s) objet(s) dans la Vue 3D.

Essayez-le !¶
- bpy.context.mode
Va afficher le mode Vue 3D courant (Object, Edit, Sculpt, etc.).
- bpy.context.object ou bpy.context.active_object
Donnera accès à l’objet actif dans la Vue 3D.
Change X location to a value of 1:
bpy.context.object.location.x = 1
Déplace l’objet de la position X précédente de 0.5 unité:
bpy.context.object.location.x += 0.5
Modifie les coordonnées X, Y, Z:
bpy.context.object.location = (1, 2, 3)
La même chose que ci-dessus:
bpy.context.object.location.xyz = (1, 2, 3)
Type de donnée de la position des objets:
type(bpy.context.object.location)
Maintenant vous avez accès à beaucoup de données:
dir(bpy.context.object.location)
bpy.context.selected_objects
Vous donnera accès à une liste de tous les objets sélectionnés.
Tapez ceci et ensuite pressez sur Ctrl-Spacebar
:
bpy.context.selected_objects
To print out the name of first object in the list:
bpy.context.selected_objects[0]
Une ligne complexe... Mais ceci affiche une liste d’objets n’incluant pas l’objet actif:
[obj for obj in bpy.context.selected_objects if obj != bpy.context.object]
bpy.data¶
bpy.data
a des fonctions et attributs qui vous donne accès à toutes les données dans le fichier blend.
Vous pouvez accédez à toutes les données suivantes dans le fichier blend courant : objets, maillages, matériaux, textures, scènes, écrans, sons, scripts, etc.
C’est beaucoup de données.
Essayez-le !¶

Exercice¶
L’appui sur Entrée
deux fois affiche le nom de tous les objets appartenant à la scène Blender du nom “Scene”:
for obj in bpy.data.scenes['Scene'].objects: print(obj.name)
Supprime le lien de l’objet actif à la scène Blender nommée ‘Scene’:
bpy.data.scenes['Scene'].objects.unlink(bpy.context.active_object)
bpy.data.materials['Material'].shadows
bpy.data.materials['Material'].shadows = False
bpy.ops¶
Le système d’outils est construit autour du concept d’opérateurs. Les opérateurs sont habituellement exécutés depuis les boutons ou menus mais peuvent aussi être appelés directement de Python.
Voir bpy.ops dans la documentation de l’API pour une liste de tous les opérateurs.
Créons un ensemble de cinq Cubes dans la Vue 3D. D’abord supprimez l’objet Cube existant en le sélectionnant et en pressant X
Essayez-le !¶
Les commandes suivantes sont utilisées pour spécifier que les objets sont créés dans le calque 1. Nous définissons d’abord une variable array pour un usage ultérieur
mylayers = [False] * 20
mylayers[0] = True
Nous créons une référence à l’opérateur qui est utilisé pour créer une primitive de maillage cube:
add_cube = bpy.ops.mesh.primitive_cube_add
Now in a for loop, we create the five objects like this (in the screenshot above,
another method is used) :
Press Return
twice after entering the command at the shell prompt:
for index in range(5):
add_cube(location=(index * 3, 0, 0), layers=mylayers)
