Autres Trouver deux fractions dont la somme vaut une fraction

GUGUSSE2

XLDnaute Occasionnel
Bonjour,

J'ai EXCEL 2007 et j'aimerai résoudre le problème suivant :

La raison :
Lorsque l'on veut usiner un engrenage par exemple (de N dents), on utilise un diviseur, appareil qui effectue i/K tours à chaque tour de manivelle;
Pour rendre les choses plus précises, devant la manivelle, on place un disque comportant des cercles de trous (exemple, plateau "A" : 15,16,17,18,19 et 20 trous).
La manivelle peut donc faire des tours complets mais aussi des fractions de tours.

exemple : 19 divisions à réaliser avec un diviseur au 1/90°.
90/19 = 4,73... = 4 tours + 0,7368 tours.
0,7368 t correspondent à 14/19.
Pour réaliser la pièce, il faudra tourner la manivelle de 4 tours + avancer de 19 espaces sur le cercle de 19 trous chaque fois que l'on voudra réaliser une dent.
(4 + 14/19) x 4 x 19 = 360° (la "division" est exacte) (le "4" correspond au nombre de degrés imposé à la broche du diviseur lorsque la manivelle fait 1 tour (360/90) ).

Mais avec ces trois plateaux (ces 18 cercles de trous), toutes les divisions ne sont pas réalisables.
Pour y remédier, on utilise la division composée (le résultat n'est pas toujours exact !) :
On effectue un certain nombre de tours "entiers" + une fraction de tour sur un cercle + (ou -) une autre fraction de tour sur un autre cercle.
Exemple :
61 divisions avec un diviseur au 1/90° : faire 1 tour + 16 espaces sur le cercle de 49 trous + 7 espaces sur le cercle de 47 trous.
(1 + 16/49 + 7/47) x 4 x 61 = 360,014 ° (la "division" est approchée).

Le problème :
(**) Le problème est donc de trouver deux fractions dont la somme (ou la différence) est égale à une fraction (la partie fractionnaire de K/N) (avec une erreur à ne pas dépasser).

(++) J'ai récupéré sur le net un programme EXCEL qui semble donner le résultat, mais beaucoup de formules manquent, il y en a partout (qui ne servent pas toutes !) et je ne comprends pas la démarche du calcul.

.
Est-ce que quelqu'un est capable de m'aider à comprendre ce programme EXCEL (++) ou connaît le moyen de résoudre le problème (**)?

Désolé d'avoir été "long" dans la présentation du problème, mais il fallait que vous assimiliez l'utilisation du diviseur avec un ou deux disques.

D'avance merci.
Cordialement,
GUGUSSE2
 

Pièces jointes

  • IndexRT.xls
    43 KB · Affichages: 16

GUGUSSE2

XLDnaute Occasionnel
Le plateau (A ou B ou C) à 6 rangées de trous. D'autres fabricants les appellent I, II et III et ils peuvent avoir plus de rangées de trous et plus de trous sur certaines rangées.
Donc, il faut préciser avec quel matériel on travaille ;
Les plateaux et leurs rangées de trous ainsi que le diviseur (son rapport de transmission).
Ensuite, une fois le nombre de divisions souhaitées "entrée", il faut avoir :
- Le(s) plateau(x) à monter sur le diviseur,
- Le nombre de tours (entiers) de manivelles à faire,
- le nombre de trous à ajouter et quel disque (noté généralement 17/28 par exemple, = parcourir 17 trous sur le plateau de 28 trous), (pour toi, trous = ligne = numérateur de la fraction et déplacement = dénominateur de la fraction)
A cela, on peut ajouter l'erreur commise sur le dernier trou.
en espérant avoir été suffisamment précis et pas trop rébarbatif.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Voilà une version sans les matrices de tests, j'ai changé les intitulés. il y a toutes les données nécessaires.
J'ai simplifié le code. Quiconque peut le modifier et rajouter des plateaux, la syntaxe est donnée dans le code. Idem pour la page, elle peut être modifiée à volonte, mais ne pas changer les appellations de celleules que j'ai utilisé.
Dans l'état ça fonctionne.
Quant à utiliser deux plateaux simultanément, là, il faudra quelqu'un de plus fort que moi.
 

Pièces jointes

  • PlateauDiviseurEngrenagesParVBA(V4).xlsm
    20 KB · Affichages: 3

eriiic

XLDnaute Barbatruc
Et ma version.
- 1 ou 2 plateaux
- Diviseur à choisir (fait à l'arrache sans me poser de question, voir si résultats corrects)
- je ne calcule que pour trouver la fraction. Si tu valides les résultats, extrapoler à 360° et calculer la tolérance devrait être un jeu d'enfant pour toi ensuite.

0 + 5/6 - 17/28 est à éviter !
Zezette épouse X te dirait "Ca dépend, ça dépasse !"
En l’absence de critères objectifs je te sors le meilleur pour les 2 : même sens et sens opposé.
Sens opposé n'apparait que si meilleur que même sens.
Comme ça tu as les 2 sous les yeux et tu peux voir si l'amélioration de la précision justifie le passage à 2 sens opposés.

J'ai prévu pour des sommes de quotient négatives. Bizarrement je n'en sors aucune.
Sûrement que less choix des série des plateaux ne doit rien au hasard :)
J'ai essayé de déboguer au mieux, mais pas impossible qu'il reste des incongruités.
Pour l'instant je me contente d'un delta inférieur pour valider la solution.
Peut-être y-a-t'il des critères supplémentaires à contrôle pour privilégier une solution ou l'autre en cas de delta égal. Tu diras...
A tester donc, possible que je sois à coté de la plaque ;)
eric

PS : l'utilisation de macro interdir le déplacement des cellules utilisées, et linsertion/suppression de lignes/colonnes sans adapter la macro
 

Pièces jointes

  • Engrenages 1.1.xlsm
    31.3 KB · Affichages: 8
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour le fil,
Eric, concernant le point "Les choix des série des plateaux ne doit rien au hasard ", j'ai regardé par curiosité tous les rapports possibles avec trois plateaux en en utilisant qu'un seul, j'ai obtenu ça :
Eng.jpg

Quand tu sais que nos aieux ont conçu ça sans ordinateur et même sans calculatrice, cela laisse rêveur. La linéarité est quasi parfaite. Alors c'est sûr, ça ne doit rien au hasard. Ils n'ont rien à nous envier sur le niveau en math .
 

eriiic

XLDnaute Barbatruc
Bonjour,

Anecdote : il n'y en avait qu'une seule dans l'atelier et personne ne voulait tomber dessus au bac.
Devine qui est tombé dessus ?
En plus elle tombait en panne, il fallait lui donner des coups de pieds pour la redémarrer. Pas stressant du tout... Du coup j'ai fait à peine la moitié de l'épreuve et ils m'ont collé 18 pour compenser :)
eric
 

GUGUSSE2

XLDnaute Occasionnel
PS : l'utilisation de macro interdit le déplacement des cellules utilisées, et insertion / suppression de lignes/colonnes sans adapter la macro
Ton programme offre de nombreux avantages. mais :

- Si l'on change le rapport, les calculs ne se mettent pas à jour. Il faut modifier la division et revenir à la valeur pour connaître les résultats !

- Si l'on ne peux pas modifier les cellules, comment modifier la valeur des plateaux ?

- Je ne suis par d'accord avec le delta que tu calcules. A quoi correspond-il ?

1573988828956.png


Je n'ai pas tout vérifié, mais ce programme est ce que j'ai vu de mieux jusqu'à présent :smt023
 

eriiic

XLDnaute Barbatruc
Bonjour,

Si l'on change le rapport, les calculs ne se mettent pas à jour.
Oui, j'ai eu des plantages excel qui m'ont fait perdre les dernières modifs.
Je les aies remises sans trop tester vue l'heure ;-). Remplace "$L$2" par "$H$2" dans :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$D$2" Then
        Me.SpinButton1.Value = [D2]: main
    ElseIf Target.Address = "$H$2" Then
        main
    End If
End Sub


Si l'on ne peux pas modifier les cellules, comment modifier la valeur des plateaux ?
Tu peux modifier les cellules mais pas déplacer celles utilisée par la macro sans la modifier.
Fixes : B:B, E2:H2 (entrées), G6:H9, L6:M9 (sorties)
Une fois tout validé je supprimerai la partie contrôles H4:I8 et M4:N8, sauf si ça peut toujours te servir (tu dis). Et on pourra voir si tu préfères une autre présentation des résultats.
Le reste tu en fais ce que tu veux.
Tu peux éditer/ajouter/retirer autant de plateaux que tu veux en B.
Le tout est qu'il n'y ait pas de cellules vides et rien mettre d'autre dans cette colonne.
Et bien sûr utiliser toutes les autres cellules.

Je ne suis par d'accord avec le delta que tu calcules. A quoi correspond-il ?
C'est la différence entre le quotient d'origine (cible en G2) et la somme des quotients calculés (G8 = G6+G7)
Théoriquement doit être proportionnel à celui pour 360°. Comme dit, je te laisse les calculs qui te sont nécessaires pour la suite, à moins que tu rencontres des difficultés

Aujourd'hui, selon le temps dispo, je regarderai si je n'ai pas de bugs dans la partie '2 déplacements en négatif'. Ne pas en trouver un seul meilleur m'interroge.
Si je n'en trouve pas je supprimerai cette recherche. Vu que le nombre de calculs est exponentiel, diviser par 2 les variables de départ est intéressant même si c'est déjà très réactif.

Les premiers contrôles te paraissent cohérents ?
eric
 
Dernière édition:

gepe01

XLDnaute Nouveau
Bonjour
Je comprends tout à fait ce problème de diviseur. Je me permet d'ajouter ma contribution à cette discussion.

Dans le feuille 1 il suffit de renseigner le nombre de dents et de lancer la macro en cliquant sur Calculer.
Les données matériel du diviseur peuvent être élargies en colonne et lignes (respecter toutefois la position initiale du tableau).
Ce calcul pourrait évoluer pour effectuer un angle de rotation précis.

Merci de votre retour
Cordialement
GP
 

Pièces jointes

  • Diviseur.xls
    45.5 KB · Affichages: 11

GUGUSSE2

XLDnaute Occasionnel
Tu peux éditer/ajouter/retirer autant de plateaux que tu veux en B.
Le tout est qu'il n'y ait pas de cellules vides et rien mettre d'autre dans cette colonne.
Et bien sûr utiliser toutes les autres cellules.
Je ne suis absolument pas à l'aise avec VBA et je ne comprend pas ce que l'on a le droit de faire aux niveau des données "nombre de trous".
Peux-tu donner quelques explications "pratiques" ?

Dans le feuille 1 il suffit de renseigner le nombre de dents et de lancer la macro en cliquant sur Calculer.
De quel programme parles-tu ?

Remplace "$L$2" par "$H$2" dans
Modification faite : la modification du rapport réactualise les calculs.

Cordialement,
GUGUSSE2.
 
Dernière édition:

eriiic

XLDnaute Barbatruc
Un exemple de code dans la macro :
VB:
cible1 = [G2].Value
elle doit trouver la cible dans G2 et nulle part ailleurs.
Si tu insères une colonne C, G2 deviendra H2 mais la macro continuera à rechercher la cible en G2 tant que tu ne l'auras pas modifiée.
Les emplacements fixes cités ne doivent donc pas bouger.

Pour ce qui est de B, la macro va relever toutes les valeurs à partir de B2 et s'en servir comme données des plateaux.
Tu y mets donc tous les plateaux (nombre de trous) qu'elle peut utiliser et rien d'autre.
Si tu laisses une cellule vide dans la liste ou un texte elle n'aimera pas.
C'est plus clair pour toi ?
 

eriiic

XLDnaute Barbatruc
Il y avait bien une petite erreur qui faisait ne plus ressortir les solutions négatives -k1 -k2
Du coup il ne semble plus y a avoir de solution de sens opposés améliorant les 2 précédentes.
Ca tombe bien, elles ne t'intéressaient que moyennement.
Je les ai laissées dans cette version des fois que tu trouves une anomalie.
Les solutions sont maintenant en 4 paquets qui ne seront plus que 2 à terme si tu confirmes.
eric
 

Pièces jointes

  • Engrenages 1.2.xlsm
    32.9 KB · Affichages: 11

GUGUSSE2

XLDnaute Occasionnel
Pour ce qui est de B, la macro va relever toutes les valeurs à partir de B2 et s'en servir comme données des plateaux.
Tu y mets donc tous les plateaux (nombre de trous) qu'elle peut utiliser et rien d'autre.
Si tu laisses une cellule vide dans la liste ou un texte elle n'aimera pas.
C'est plus clair pour toi ?
Ce qui veux dire que je peux "réécrire" la colonne "B" à partir de "B2" avec les valeurs que je veux, même si je dépasse la case "B19" ou si je ne vais pas jusque là, vrai ?

Expliques moi à quoi correspondent les 4 colonnes de résultats (je vois "même sens + 1 tour" et "2" sur la ligne "tours" ! !)/.
1574075269031.png

Comment calcules-tu de "delta" ?
 
Dernière édition:

eriiic

XLDnaute Barbatruc
Bonjour,

Ce qui veux dire que je peux "réécrire" la colonne "B" à partir de "B2" avec les valeurs que je veux, même si je dépasse la case "B19" ou si je ne vais pas jusque là, vrai ?
Tout à fait, tu y mets ce que tu veux, dans l'ordre que tu veux, tant que ce sont des nombres. La macro s'adaptera.

Expliques moi à quoi correspondent les 4 colonnes de résultats (je vois "sens positif et des valeurs en rouge !)/.
Même sens et sens opposés concerne le signe des quotients : ++ , -- , +-
En rouge ce sont les négatifs, tu as demandé additions ou différences
positif/négatif concerne le signe de la somme. Au final on a avancé ou reculé.
Le fond rouge correspond à une somme négative. C'est pour alerter qu'il faudra faire un tour de plus que la partie entière puisque le résultat se soustraira du nombre de tours.

Comment calcules-tu de "delta" ?
Ca n'a pas changé depuis que tu as déjà demandé...
eric
 

Discussions similaires

Statistiques des forums

Discussions
311 707
Messages
2 081 746
Membres
101 812
dernier inscrit
trufu