Aller au contenu principal

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 anglaisTypeSens
x, y—nombrele centre, en mm
angle—nombrela 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—textel'identifiant interne
rayonradiusnombrele rayon (primitif pour un engrenage) ; 0 sinon
diametrediameternombre2 × rayon
largeur, hauteurwidth, heightnombreles dimensions ; pour un cercle, le diamètre
massemassnombreen kg, calculée par le labo (0 pour un corps fixe, un pivot, un ressort)
dentsteethentier0 si ce n'est pas un engrenage
module—nombre0 si ce n'est pas un engrenage
materiaumaterialtexte"wood", "steel"… (l'identifiant anglais)
fixefixedboolé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 Python

Notes

  • masse lit 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().