Schnapz
Nouveau membre
Bonjour,
j'ai un petit problème de programmation avec VBA (pour Arena). Il s'agit d'une
fonction testant les possibilités de mettre des outils dans un buffer en temps
masqué (pour un magasin d'outil de machine).
Le but est de remplir un tableau nommé Buffer_use() avec des 0 et des 1, sachant
que les 1 correspondent à la possibilité de réaliser le placement en temps
masqué. Pour cela, j'ai créer une fonction qui compare le temps de déplacement
du bras pour mettre les outils dans le buffer avec le temps de coupe de
l'opération actuelle. Ces données sont respectivement dans des tableaux nommés
Temps_Deplac() et Temps_Op(). n_tools est le nombre d'opération dans la gamme.
La fonction que j'ai réalisé fonctionne pour un buffer ayant 4 positions (elle
peut donc placer jusqu'à 4 outils dans le buffer a la suite).
Néanmoins, le nombre de positions du buffer est variable. Pouvez-vous m'aider à
transformer cette fonction pour que cela soit prit en compte ? ( J'ai pensé à
faire une fonction récursive mais je ne m'en sors pas).
Voici la fonction telle qu'elle est actuellement :
Merci d'avance.
Schnapz.
j'ai un petit problème de programmation avec VBA (pour Arena). Il s'agit d'une
fonction testant les possibilités de mettre des outils dans un buffer en temps
masqué (pour un magasin d'outil de machine).
Le but est de remplir un tableau nommé Buffer_use() avec des 0 et des 1, sachant
que les 1 correspondent à la possibilité de réaliser le placement en temps
masqué. Pour cela, j'ai créer une fonction qui compare le temps de déplacement
du bras pour mettre les outils dans le buffer avec le temps de coupe de
l'opération actuelle. Ces données sont respectivement dans des tableaux nommés
Temps_Deplac() et Temps_Op(). n_tools est le nombre d'opération dans la gamme.
La fonction que j'ai réalisé fonctionne pour un buffer ayant 4 positions (elle
peut donc placer jusqu'à 4 outils dans le buffer a la suite).
Néanmoins, le nombre de positions du buffer est variable. Pouvez-vous m'aider à
transformer cette fonction pour que cela soit prit en compte ? ( J'ai pensé à
faire une fonction récursive mais je ne m'en sors pas).
Voici la fonction telle qu'elle est actuellement :
Code:
buffer_v = 0
counter = 1
Do Until counter = n_tools
If counter + 1 <= n_tools Then
If Temps_Deplac(counter + 1) < Temps_Op(counter) Then
Buffer_Use(counter + 1) = 1
buffer_v = 1
If counter + 2 <= n_tools Then
If Temps_Deplac(counter + 2) + Temps_Deplac(counter + 1) <
Temps_Op(counter) Then
Buffer_Use(counter + 2) = 1
buffer_v = 2
If counter + 3 <= n_tools Then
If Temps_Deplac(counter + 3) + Temps_Deplac(counter + 2)
+ Temps_Deplac(counter + 1) < Temps_Op(counter) Then
Buffer_Use(counter + 3) = 1
buffer_v = 3
If counter + 4 <= n_tools Then
If Temps_Deplac(counter + 4) +
Temps_Deplac(counter + 3) + Temps_Deplac(counter + 2) + Temps_Deplac(counter +
1) < Temps_Op(counter) Then
Buffer_Use(counter + 4) = 1
buffer_v = 4
End If
End If
End If
End If
End If
End If
End If
End If
counter = counter + buffer_v + 1
buffer_v = 0
If counter >= n_tools Then GoTo Nextstep
Loop
Nextstep:
Merci d'avance.
Schnapz.