Pathfinder Studio, le successeur de Propagation
Pour que ça marche aussi avec les modes de propagation périphérique il faut scinder DecaleTop et Decale!Left en DecaleTopY, DecaleTopZ, et pareil pour le Left :
If Y1 = 1 Then
Shp2.ZOrder msoSendToBack
DecaleTopY = 37.5
ElseIf Y1 = -1 Then
DecaleTopY = -37.5
End If
If Z1 = -1 Then
Shp2.ZOrder msoSendToBack
DecaleTopZ = 13.5
DecaleLeftZ = -13.5
ElseIf Z1 = 1 Then
Shp2.ZOrder msoSendToBack
DecaleTopZ = -13.5
DecaleLeftZ = 13.5
End If
' positionnement par rapport au dernier cube
Shp2.Top = Shp1.Top + DecaleTopY + DecaleTopZ
Shp2.Left = Shp1.Left + DecaleLeftY + DecaleLeftZEt bien voilà ! Vous ne vous arrêtez plus !
Avez vous essayé une grande taille ? Les coordonnées de départ devrait être en fonction de sa propre position dans le volume et en fonction de la taille de ce volume sinon en bordure d'écran les shapes vont se supperposer.
Sur ma version de votre programme, le shape finale je le place aux coordonnées de B2 en ayant figé la première ligne et première colonne.
De même, j'ai mis un Apllication.ScreenUpDating = false au début de code.
J'ai également dans la procédure calcul, supprimer la mise en couleur des adresses de chemin si ce n'est pas la feuille "grille" qui est active.
j'ai "réussi" à créer mon tableau X,Y,Z reprenant les données des différentes grilles, il me reste plus qu'à gérer la "prise de vu" et les changements du code pour la vision de face, de droite et de dessus.
Que de changement et d'évolution depuis le début de votre projet ! Bravo à vous et merci pour le clin d'œil sur la feuille "explications" !
@ bientôt
LouReeD
Voici les 3 vues !
Bon c'est un peu figé, du fait que je suis parti en dur sur une grille de 10 x 10 x 10.
Il me reste à trouver où se trouve les différentes tailles, comme cela je pourrai mettre en variables les différentes boucles !
Je trouve que c'est pas mal afin d'avoir une vue différente su le parcours est compliqué. Avec le tableau représentant la zone complète, on peut "facilement" faire les 3 vues manquantes !
Et comme je prends les données de la feuilles Grille, il n'est pas nécessaire de relancer la fabrique du chemin.
Le fichier :
@ bientôt
LouReeD
Bravo pour cette possibilité de générer 3 vues différentes et pour le soin apporté à la présentation !
Il ne me reste plus qu'a m'en inspirer pour avoir une version où l'on pourrait modifier les dimensions de la grille.
Une remarque aussi : lire les données dans les grilles est bien plus long que de ré effectuer un nouveau calcul pathfinding (une fois la feuille lue une première fois).
Pour ma part je me suis rendu compte d'une boulette dans mon code
Private Sub obAlgo222_Click()
Dim Sum#
Grid.Names("Algorithm").RefersTo = 222
FrameRandom222.Visible = True
FrameRandom211.Visible = False
On Error Resume Next
Sum = Application.WorksheetFunction.Sum(Grid.Range("Z_1"))
If Sum <> Int(Sum) Then Grid.Cells.ClearContents: Exit Sub
If Application.WorksheetFunction.Max(Grid.Range("Z_1")) > 32767 Then Grid.Cells.ClearContents
End SubEn voici sa version corrigée :
Private Sub obAlgo222_Click()
Dim Sum#
Grid.Names("Algorithm").RefersTo = 222
FrameRandom222.Visible = True
FrameRandom211.Visible = False
On Error GoTo Finish
Sum = Application.WorksheetFunction.Sum(Grid.Range("Z_1"))
If Sum <> Int(Sum) Then Grid.Cells.ClearContents: Exit Sub
If Application.WorksheetFunction.Max(Grid.Range("Z_1")) > 32767 Then Grid.Cells.ClearContents
Finish:
End SubShame on me !@+
Bonjour,
Cette histoire d'effacement de grille je pensais que c'était voulu...
Je sais que la lecture de feuille est longue, pour optimiser je devrait faire une récupération de données par couche, ici il n'y aurait alors que 10 accès.
Le soucis à mon niveau vu ma programmation, je ne comment faire avec votre "chemin", je ne suis pas arrivé à comprendre la structure de ce dernier.
Mais pas de crainte, c'est juste pour moi et le fun !
A vous les téléchargements !
@ bientôt
LouReeD