Programmer avec Python
Ce qui n'existe pas (encore) en Python
Pour ne pas chercher une fonction qui n'est pas là — et savoir ce qui est prévu.
Cette page dit clairement ce qu'un script ne peut pas faire aujourd'hui. Elle est écrite d'après le code du labo, pas d'après un projet : si une fonction n'est pas dans la référence API, elle n'existe pas.
Un script construit ; il ne pilote pas
Un script tourne avant la simulation et pose sa construction d'un coup. Il n'y a donc :
| Ce qu'on pourrait attendre | État |
|---|---|
simulation.demarrer(), simulation.arreter(), attendre(2) | n'existent pas — le Play et la Pause sont les boutons de la barre |
| lire la position, la vitesse ou l'angle d'une pièce pendant la lecture | impossible — les propriétés lues par un script sont celles de la scène à l'arrêt |
| des capteurs (contact, distance, vitesse) | aucun — voir Capteurs et sondes |
| des événements (« quand la bille touche le sol… »), des comportements (un moteur qui s'arrête au bout de 3 s) | pas encore — c'est l'étape suivante prévue pour l'atelier (« Étape B : scripts de comportement ») |
objet.vitesse = …, moteur.set_speed(10) | n'existent pas — la vitesse d'un moteur se donne à la création du pivot : pivot(..., moteur=True, vitesse=10) |
lab.get_object("moteur_1"), des objets par nom | pas de noms — on garde les objets dans des variables, ou on les retrouve par scene.trouver(type=...) |
supprimer un objet (objet.supprimer()) | non — seulement scene.vider() (tout), ou ré-exécuter (remplace les objets du script) |
| changer après coup le matériau, la taille, les dents, la couleur d'un objet | non — seuls x, y, angle se règlent ; recrée l'objet avec les bons paramètres |
| régler le piston d'un ressort, sa plaque, une couronne (denture interne), les Réglages Moteur propres à un engrenage, le matériau personnalisé (densité libre) | à la souris seulement |
pinceau(), couteau() | non — ce sont des gestes ; dessin() couvre les formes libres |
| plusieurs scripts, des modules à importer, des fichiers | non — un script par scène, et import math (voir Python disponible) |
Ce qui est réservé au labo lui-même
Certaines fonctions du code sont internes : elles servent au pont entre Python et le moteur et ne sont pas faites pour être appelées. Leur nom commence par un tiret bas : _lab_creer, _lab_lire, _lab_regler, _lab_texte, _mech_*, _scene_*, _camera_*, ainsi que les classes _Objet, _Mecanique, _Scene, _Camera, _Chaine et les aides _un, _ref, _refs, _bout, _creer, _train. Elles peuvent changer sans prévenir ; l'autocomplétion ne les propose pas.
Comment faire quand même
- Mesurer : Play, Pause, Propriétés / règle — voir Capteurs et sondes.
- Déclencher : un mécanisme qui se déclenche tout seul se construit avec une came et un ressort (la catapulte), un piston, ou un verrou qu'on efface à la main pendant la lecture (le tutoriel catapulte).
- Varier : des réglages en tête de script (
VITESSE = 60), Ctrl+Entrée, Play, et on compare.