Référence API Python
mecanique — les calculs
engrener, entraxe, rapport, vitesse_sortie, couple_sortie, masse, centre_de_masse, inertie, distance, chaine.
Le module mecanique (alias mech) regroupe les calculs. Chaque fonction appelle le moteur du labo (les mêmes formules que la vue cinématique et les fenêtres) ; aucune ne rejoue une physique approximative.
mecanique.engrener(a, b, sens=0)
Place b en prise réelle avec a : à l'entraxe exact, dans la direction sens (degrés, repère de l'écran : 0 = à droite de a, 90 = en dessous, 180 = à gauche, −90 = au-dessus), et tourne b pour mettre ses dents en phase. Rend b. Anglais : mesh(a, b, direction=0).
| Paramètre | Type | Description | Défaut |
|---|---|---|---|
a | engrenage | la roue de référence, qui ne bouge pas | obligatoire |
b | engrenage | la roue déplacée | obligatoire |
sens / direction | nombre | l'angle où poser b | 0 |
Erreurs : engrener() attend un engrenage (celui-ci est un rectangle)., Deux engrenages n'engrènent que s'ils ont le MÊME module : ici 10 et 8. …, Un engrenage ne peut pas engrener avec lui-même.
mecanique.entraxe(a, b)
La distance entre centres pour que a et b engrènent : la somme de leurs rayons primitifs. Rend un nombre (mm). Erreur si un des deux n'est pas un engrenage ou si les modules diffèrent. Anglais : center_distance.
mecanique.rapport(...)
Le rapport de transmission d'un train : dents de sortie ÷ dents d'entrée. Supérieur à 1 = réduction. Les roues du milieu ne changent rien. Accepte des roues ou des nombres de dents, en arguments séparés ou en une liste : rapport(a, b), rapport([a, b, c]), rapport([12, 24, 18, 36]). Rend un nombre. Anglais : ratio.
Erreurs : Un rapport se calcule sur au moins deux engrenages., rapport() attend un nombre de dents positif (tu as donné -3).
mecanique.vitesse_sortie(tr_min, ...)
La vitesse en sortie du train : tr_min ÷ rapport. Anglais : output_speed(rpm, ...).
mecanique.couple_sortie(nm, ...)
Le couple en sortie : nm × rapport. Ce que le train perd en vitesse, il le gagne en couple. Anglais : output_torque.
mecanique.masse(objet)
La masse en kg — celle que le labo affiche (« Masse estimée »). Sur un objet de la scène, la masse du corps réel. Anglais : mass.
mecanique.centre_de_masse(objets)
Le centre de masse d'un objet ou d'une liste d'objets, pondéré par les masses ; rend un couple (x, y). Anglais : center_of_mass.
mecanique.inertie(objet)
Le moment d'inertie en kg·m², lu sur le corps physique réel. Ne marche que sur un objet déjà construit (repris par scene.objets()) : sur un objet du script en cours, mech.inertia ne marche que sur un objet déjà dans la scène (scene.objects()). Anglais : inertia.
mecanique.distance(a, b)
La distance entre deux objets (centres) ou deux points (x, y), en mm.
mecanique.chaine(roue)
La chaîne cinématique dont roue est l'entrée. Rend un objet avec .chemin (les identifiants des roues), .vitesse_entree, .vitesse_sortie (tr/min, d'après le moteur qui entraîne la première roue), .rapport, .sens ; anglais path, input_speed, output_speed, ratio, direction. print(chaine) affiche <chaine de 3 roues, rapport 2.0>. Erreur si la roue n'engrène avec rien. Anglais : chain.
Exemple
a = engrenage(x=-160, y=0, dents=16, module=10, materiau="acier")
b = engrenage(dents=32, module=10, materiau="acier")
c = engrenage(dents=12, module=10, materiau="acier")
mecanique.engrener(a, b, sens=0)
mecanique.engrener(b, c, sens=-45)
pivot(x=a.x, y=a.y, corps=a, moteur=True, vitesse=60)
for r in (b, c): pivot(x=r.x, y=r.y, corps=r)
print("entraxe a-b :", mecanique.entraxe(a, b))
print("rapport a->c :", mecanique.rapport(a, b, c))
print("sortie :", mecanique.vitesse_sortie(60, a, b, c), "tr/min")
print("masse de b :", round(mecanique.masse(b), 2), "kg")
print("centre de masse :", mecanique.centre_de_masse([a, b, c]))
print("distance a-c :", round(mecanique.distance(a, c)))
ch = mecanique.chaine(a)
print(ch, ch.sens)
Essayer ce code dans l’atelier Python