Référence API Python
Les objets : lire et régler
Ce qu'on lit sur un objet (x, y, angle, rayon, masse…), et les trois choses qu'on peut régler.
Ce que rend une fonction de création
rectangle(), cercle(), engrenage(), sol(), dessin(), pivot(), axe(), ressort(), ainsi que scene.objets() et scene.trouver(), rendent des objets du labo. On les garde dans des variables, on les passe aux liaisons et aux calculs, on lit leurs propriétés.
print(objet) affiche <circle r=30 en (0, -200)> ou <rectangle 100x50 en (0, 0)>.
Ce qui se lit
| Propriété | Alias anglais | Type | Sens |
|---|---|---|---|
x, y | — | nombre | le centre, en mm |
angle | — | nombre | la rotation en degrés |
type | — | texte | "rectangle", "circle", "gear", "ground", "freeform" (un dessin), "pivot", "spring" — sur un objet de la scène, son type réel |
id | — | texte | l'identifiant interne |
rayon | radius | nombre | le rayon (primitif pour un engrenage) ; 0 sinon |
diametre | diameter | nombre | 2 × rayon |
largeur, hauteur | width, height | nombre | les dimensions ; pour un cercle, le diamètre |
masse | mass | nombre | en kg, calculée par le labo (0 pour un corps fixe, un pivot, un ressort) |
dents | teeth | entier | 0 si ce n'est pas un engrenage |
module | — | nombre | 0 si ce n'est pas un engrenage |
materiau | material | texte | "wood", "steel"… (l'identifiant anglais) |
fixe | fixed | booléen |
Lire une propriété qui n'existe pas : « vitesse » ne se lit pas sur un objet. Ce qui se lit : x, y, angle, type, id, radius, rayon, …
Ce qui se règle
Seulement x, y et angle : bille.x = 100, bras.angle = -30. Sur un objet créé dans le script, c'est sa position de départ ; sur un objet déjà dans la scène, c'est un déplacement appliqué à la fin (et annulable). Tout le reste (masse, rayon, materiau…) : « masse » se LIT mais ne se règle pas. Ce qui se règle : x, y, angle.
Exemple
roue = engrenage(x=0, y=0, dents=24, module=10, materiau="acier")
print(roue) # <gear r=120 en (0, 0)>
print(roue.rayon, roue.dents, roue.materiau, round(roue.masse, 2))
roue.x = 150 # deplacee avant meme d'etre construite
pivot(x=roue.x, y=roue.y, corps=roue)
Essayer ce code dans l’atelier PythonNotes
masselit la même valeur que « Masse estimée » dans les fenêtres du labo.- Un objet rendu par
scene.objets()garde son vrai type : un ancien objet « levier » répond"lever". - Les objets d'un run précédent ne sont plus valables dans le suivant : reprends-les par
scene.trouver().