Aller au contenu principal

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 lectureimpossible — 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 nompas 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 objetnon — 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 fichiersnon — 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.