Aller au contenu principal

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ètreTypeDescriptionDéfaut
aengrenagela roue de référence, qui ne bouge pasobligatoire
bengrenagela roue déplacéeobligatoire
sens / directionnombrel'angle où poser b0

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