Demande formule pour mettre des rectangles dans d'autres rectangles

(Cliquez-ici pour accéder à la version originale de cette discussion avec couleurs et images)







Posted by: adon

Bonjour le Forum,

Je cherche une formule afin de l'adapter à Excel, qui me permet de calculer combien de petit rectangle je mets dans un grand rectangle.

Exemple ; La formule me donnera le nombre de grand rectangle qu’il me faut pour y mettre tous mes petits rectangles :
Mon grand rectangle fait (en mm) 2000 x 1000.
J’ai 12 petits rectangles qui font 1800 x 200
Et 23 petits rectangles qui font 250 x 300

Amicalement,
Adon



Posted by: BancH

Soit a le nombre de grands rectangles cherché
xy les dimensions d'un grand rectangle
a_1 le nombre de petits rectangles
x_1y_1 les dimensions de ces mêmes rectangles
a_2 le nombre de petits rectangle d'autres dimensions
x_2y_2 les dimensions de ces rectangles,

si les petits rectangles remplissent un nombre entier de grands rectangles, alors la formule est:

a=\frac {a_1\times x_1 + a_2\times x_2}{x}
ou
a=\frac {a_1\times y_1 + a_2\times y_2}{y}

Mais dans ton exemple cette formule ne fonctionne pas car les petits rectangles ne remplissent pas un nombre entier de grands rectangles.



Posted by: BancH

J'avais pas pensé que les rectangles pouvaient être pivotés avant dêtre placés.

En fait le nombre de grands rectangles dont tu as besoin est de:
\frac{a_1x_1y_1+a_2x_2y_2}{xy}

Pour ton exemple ça donne 3.0225 grands rectangles.



Posted by: aviateurpilot

tu peux tvailler par les surface pour trouver le nombre minimal des gands rectangles qui vous faut

si x.y les dimentions du grand rectangle
et t'a n petits rectangles R_1,R_2,....,R_n
et x_k,y_k les dimention du petit rectangle R_k
et a_k le nombre des petits rectangle R_k

le nombre minimal des grand rectangle qui vous faut est
[(\sum_{k=1}^n a_kx_ky_k)/xy]+1
tu ajoute 1 dans le cas ou (\sum_{k=1}^n a_kx_ky_k)/xy n'appartien pas a N



Posted by: BancH

Citation:
Posté par aviateurpilot
tu ajoute 1 dans le cas ou (\sum_{k=1}^n a_kx_ky_k)/xy n'appartien pas a N
Et il faut aussi enlever la partie décimale.
Ou alors tu n'ajoute pas 1 et tu arrondies à l'unité supérieure (si c'est possible avec Excel).



Posted by: adon

tout d'abord merci pour vos réponses,


Pour imager tout ça:
_ J'ai dans mon stock des tôles en acier qui font 2000 mm de longueur et 1000 mm de largeur.
_ Je dois découper dans ces tôles 12 pièces qui font 1800 x 200 et 23 pièces qui font 200 x 300.
_ Combien de tôle dois je prendre de mon stock pour réaliser mes pièces ?


De tête je calculerais de la manière suivante:
_ Pour la première pièce; comme elle fait 1800 en longueur je ne peux en mettre qu'un seul en x (Longueur), et 5 en y (largeur) parceque 5 x 10 = 1000

_ En téhorie il me reste une bande de 200 x 1000 dans ma tôle que je peux me servir pour découper 3 pièce qui font 200 x 300 .

_ Avec ce raisonnement je constate qu'il me faut au moins 3 tôle pour découper mes 12 pièce de 1800 x 200 et qu'il me reste dans ma troisième tôle une partie qui fait 1800 x 600 (2 x 1800 par 2 x 200) dans laquel je peux découper encore 18 pièces de 200 x 300 (1800/200 = 9 pièces en longueur fois 600/300 pièces en largeur), ce qui est largement suffisent pour réaliser toutes mes pièces.


J'espère ne pas avoir été trop brouillon.

Amicalement,
Adon



Posted by: adon

@ BancH : Si j'applique ta formule
n=(a1.x1.y1+a2.x2.y2)/x.y
n=(4320000+1380000)/2000000
n=2.85

Je trouve 2.85 et non 3.0225; Je me suis peu être (sûrement) trompé mais dans ce cas peu t'on me corrigé ?


@ aviateurpilot : Pouvez vous appliquer mes valeurs, à titre d'exemple, avec votre formule afin de m'aider à mieux l'assimiler ?


Amicalement,
Adon



Posted by: BancH

C'est parce que tu as fait:
n=\frac{a_1x_1x_2_+a_2y_1y_2}{xy}
Mais je peux toujours faire des erreurs car je n'utilise pas de calculette.



Posted by: aviateurpilot

dans ma formule j'ai supposé
qu'il est possible de mettre une partie d'un petit rectangle d'un un grand rectangle et l'autre partie dans un autre grand rectangle ce qui ne convien pas avec l'exemple des des tôles.



Posted by: BancH

C'est la même formule que moi mais en fonction du nombre de types différents de rectangles que tu as.

\frac{\sum_{k=1}^n a_kx_ky_k}{xy}

Tu as deux sortes de petits rectangles donc n=2:

\frac{a_1x_1y_1+a_2x_2y_2}{xy}

exemple avec n=4, soit 4 sortes de petits rectangles différentes:


\frac{a_1x_1y_1+a_2x_2y_2+a_3x_3y_3+a_4x_4y_4}{xy}



Posted by: aviateurpilot

adon
est t-il possible de mettre une partie d'un petit rectangle d'un un grand rectangle et l'autre partie dans un autre grand rectangle ?



Posted by: BancH

Je ne pense pas, sinon il faudrait ensuite recoller les deux parties ensembles.

Et je ne crois pas que tu puisses trouver une formule pour Excel.



Posted by: aviateurpilot

oui banch
chaque exemple a ca formule
on peux pas faire une formule general



Posted by: adon

Excusez moi pour le retard, je suis aller félicité aviateurpilot pour sa poésie ^_-

@ aviateurpilot: Il n'est pas possible de couper les pièces en plisieurs morceaux, sinon il faudra les re souder et donc perdre de l'argent. Mais pour palier à ce problème je reste preneur du "+1",... Même mieux, je dirais à BancH qu'il est possible avec Excel d'avoir l'entier supperieur.

@ BancH: Bien vu ,... C'est moi qui m'était trompé ^_-


J'adopte vos formule et si ça marche je mettrait en ligne ma formule/macro Excel.


Merci encore pour votre aide.

Amitiés,
Adon



Posted by: BancH

Je ne sais pas comment fonctionne excel, tu peux juste entrer la formule ou tu peux faire un programme avec "Si... alors... et..." ?



Posted by: BancH

Citation:
Posté par adon
J'adopte vos formule et si ça marche je mettrait en ligne ma formule/macro Excel.

Comme l'a dit Aviateurpilot, les formules de fonctionnent pas car il faudrait resouder les tôles.



Posted by: adon

Pour avoir l'entier superieur j'utilise cette formule:
=ARRONDI.SUP(a;0)
a étant la valeur que je veux arrondir à l'entier superieur
0 pour dire que je veux une valeur absolue

Exemple:
le résultat de "=ARRONDI.SUP(1.1;0)" est 2.



Posted by: adon

Citation:
Posté par BancH
Comme l'a dit Aviateurpilot, les formules de fonctionnent pas car il faudrait resouder les tôles.


Les logiciels qu'ont possèdent font ce calcul à partir d'algorithmes codés et très bien protéger.

Le fichier Excel que je souhaite mettre en place se substituera à ces gros logiciels dans le but de nous assister dans l'approvisionnement matières.

Mais comme vous l'avez dit, aviateurpilote et toi, on risque de découper la dernière pièce. C'est là qu'intervient le "+1" qui sera notre marge d'erreur. Avec cette tôle supplémentaire on contourne le problème,... En attendant de trouver un algorithme complexe que je réaliserais avec l'aide des poètes et master de ce forum.


Amitiés,
Adon



Posted by: adon

c'est fou ce qu'un "LA" peu faire dire; je dirais même que je l'ai mis volontairement à la place d'un "LES",...

BancH, j'intègrerais des conditions (SI,... ou If Then,... en macro) dans mon programme, question d'avoir des gardes fou.


Je vous souahite bonne nuit et sûrement à demain pour reprendre la conversation là où je la laisse.

Amitiés,
Adon

P.S.: Bonne chance Aviateurpilote pour ton poème ^^



Posted by: aviateurpilot

merci adon
bonne nuit a tous











-