Référence API Python
scene — la scène existante
objets(), trouver(), vider(), gravite().
Le module scene donne accès à ce qui est déjà dans le labo, y compris posé à la souris. Tout ce qu'il change est appliqué à la fin du script, en une action annulable.
scene.objets()
Tous les objets présents, dans l'ordre de la scène. Rend une liste d'objets. Anglais : objects().
scene.trouver(type=None, materiau=None)
Les objets qui correspondent aux deux critères, tous deux facultatifs. Types acceptés : rectangle, cercle/circle, engrenage/gear, sol/ground, dessin/forme/shape/freeform, pivot, ressort/spring (et les anciens moteur, levier, came). Matériau : le nom français ou anglais. Anglais : find(type=, material=).
Erreur : Le type « bille » n'existe pas. Ceux du labo : rectangle, circle, cercle, …
scene.vider()
Vide la scène — tout, y compris ce qui est posé à la souris. Un script qui commence par scene.vider() repart d'une feuille blanche ; Ctrl+Z rend la scène entière. Anglais : clear(). Vider la scène libère aussi la caméra.
scene.gravite(valeur=9.81)
Règle la gravité en m/s², de −50 à 50. 0 : apesanteur ; 1,62 : la Lune ; 9,81 : la Terre ; 24,8 : Jupiter ; négative : tout monte. Anglais : gravity().
Erreur : La gravité va de -50 à 50 m/s² (tu as demandé 100). … Au-delà de 50, un tas d'objets ne se pose plus jamais.
Exemple
print(len(scene.objets()), "objets dans la scene")
for r in scene.trouver(type="engrenage"):
print("roue de", r.dents, "dents en", r.x, r.y)
scene.gravite(1.62) # sur la Lune
Essayer ce code dans l’atelier PythonNotes
- Un script qui ne fait que lire (des
print) ne laisse rien dans l'historique. - Après
scene.vider(), les objets rendus parscene.objets()avant l'appel sont encore utilisables pour lire, mais ils disparaîtront. - Le bouton Gravité de la barre ne connaît que 9,81 et 0 ; une gravité réglée par script reste jusqu'au prochain changement.