mardi 10 mars 2020

un projet plus complet : l'écurie


Démarrer un projet

Démarrer un projet commence par une idée, un besoin utile ou inutile, un dessin. En surfant sur Internet, nous sommes tombés sur une photo d’une écurie. Idéal pour en faire une sur mesure et plus adaptée aux besoins de rangement de la horde miniature de mes 2 filles.


Donc voilà la photo trouvée sur Internet. Dans un premier temps, il a fallu trouver les côtes. C’est assez simple, quoique !


Armé d’une règle et du pied à coulisse nous avons défini les mesures pour que la plupart des chevaux puissent rentrer. A ce propos, regardez-en bas à droite : Bonne Etoile, un anglo-arabe alezan de mémoire, est un peu grand et ne rentrera pas. Pauvre bête ;-)

Ensuite, on trace les axes et l’origine. On les choisit comme on veut mais il faut le faire et s’y tenir. Et puis ensuite on peut commencer.

Premier pas : la structure

Voici un début de structure avec un plancher en gris, et diverses poutres.




A chaque fois, nous avons 2 montants de mêmes couleurs. Bien sûr, il était facile de dupliquer les blocks mais, cette structure a été l’occasion de faire un petit jeu (trop horrible vous dirait mes filles) : la boucle se fait uniquement avec une variable qui prend les valeurs 0 et 1. Le petit jeu est donc de trouver les formules qui correspondent aux mesures que l’on souhaite et qui sont sur le schéma.

Les briques

Pour faire un mur, nous avons besoin de briques. Nous allons dessiner des briques biseautées, c’est à dire avec des chanfreins (n’est-ce pas un joli mot, bien que pas facile à utiliser sur les réseaux sociaux).



Voici la tête de notre brique en final. Pour arriver à ce résultat nous avons commencé par une brique parallélépipède rectangle, mot savant qui désigne un cube allongé.






Donc en mauve, notre brique de base. En bleu, la même brique légèrement tournée et en jaune, encore la même chose mais tournée dans l’autre sens.


Il nous suffit de faire INTERSECTION pour supprimer les arrêtes mauves qui dépassent. Je vous laisse faire néanmoins quelques essais, par exemple, ne faites pas INTERSECTION en premier mais UNION des 2 briques en rotation auparavant : le résultat n’est pas le même !






Nous avons nos chanfreins sur les arrêtes horizontales, réalisons ceux pour les 4 arrêtes verticales.
Le principe est simple, faire 4 blocs que nous allons retrancher (DIFFERENCE) de la brique mauve. Regarder dessous les 4 blocs en vert.



Bien sûr, il est assez simple de faire les 4 blocks, avec un ROTATE et un TRANSLATE pour chacun et de les positionner comme on veut. Pour nous amuser un peu, nous allons essayer de deviner une formule qui nous donne automatiquement ces 4 blocs : « Mais c’est trop horrible ». Surement, mais cela fait un peu travailler les neurones.


Commençons donc par placer un bloc, le tourner un peu (45 degrés) et le décaler pour qu’il masque une arrête.



Les valeurs de Z (45 degrés), de Y (5.5) et de X (2) sont trouvées par tâtonnement.

Nous allons continuer par une boucle (LOOP) avec la variable (i) qui va prendre les valeurs suivantes : -1, +1. L’idée est de se dire que les valeurs 2, 5.5 et 45° sont le résultat de formule qui utilise la variable i.


Essayons déjà en multipliant 45° par i.




Cela marche pour l’angle mais il faut aussi changer X. Multiplions i par 2 pour le TRANSLATE.



Et voilà, nous avons trouvé la première partie de notre formule. Passons à la deuxième partie.

Pour cela, nous allons faire une deuxième boucle avec la variable (j). Dans la formule précédente, nous voyons que Y ne bouge : essayons donc de modifier Y en fonction de la variable (j). Quand (j) prend la valeur +1, cela ne change pas la formule d’avant et quand (j) prend la valeur -1, et bien regardons !



Pas loin, n’est-ce pas ?

Il faut donc surement compléter la formule en déplaçant un peu X. Mettons la variable (j) dans le X du TRANSLATE et voyons le résultat.

X = (i)*(j)*2



et voilà, c’est parfait. Bien sûr, nous aurions pu réfléchir dans nos têtes pour imaginer la formule avant de la coder mais pourquoi se compliquer la vie ?
En plus, je trouve l’exercice intéressant car il permet de découvrir la formule par étape.




Maintenant il suffit de faire une petite DIFFRENCE, et nous voilà prêts, tel le petit cochon de la fable, à construire notre mur.






Le mur de briques

Le mur se fait par empilage de briques :

q une première boucle avec la variable (k) qui translate de 6 (la taille d’une brique) chaque nouvelle brique dans l’axe des Y

q une deuxième boucle avec la variable (m) qui qui translate les briques de 3 (la hauteur d’une brique) sur l’axe Z





Un peu décevant, n’est pas ? nous voulons un mur et non pas une tablette de chocolat. Pour avoir un joli, mur il faudrait décaler les briques les rangées horizontales d’une demi-longueur de brique (c’est à dire de 3).
Donc, pour chaque ligne pour laquelle la variable (m) est paire, on va rajouter le chiffre 3 à Y.  C’est à

Là qu’intervient la fonction mathématique REMAINDER OF. Cette fonction donne le reste d’une division entière (petit rappel, division entière signifie qu’il n’y a pas de virgule et qu’il peut y avoir un reste).




Pour savoir si la variable (m) est paire, il suffit de la diviser par 2 et de voir si le reste est zéro. Si m est impair, le reste sera de 1.



Donc à notre formule initiale K+6 on rajoute REMAINDER OF m÷2 (qui fait 0 ou 1 suivant que le ligne est paire ou impaire) que l’on multiplie par 3 :

q si m est paire, la formule devient K+6+0

q si m est impaire, la formule devient K+6+3


Ce que nous cherchions.

REMAINDER OF

Juste pour terminer avec REMAINDER OF, voici un autre exemple, pour voir à quoi cela peut servir. Au lieu de diviser par 2 la variable (m), nous la divisions par 3.  REMAINDER OF va prendre successivement les valeurs : 0, 1, 2, 0, 1, 2, 0, ….
Si en plus on décale de 2 au lieu de décaler chaque nouvelle brique de 3, cela donne un mur un peu différent du précédent.





Le module MUR et ROUND

Le programme précédent suffit amplement pour soi-même. Cependant, quand on veut que d’autres personnes puisse l’utiliser facilement il va falloir un peu le modifier.
En effet, pour le rendre plus simple à utiliser nous allons construire un module ou il suffira de donner la longueur du mur et sa hauteur pour avoir un beau mur aux dimensions requises.

Abandonnons pour l’instant le block précédent, et commençons à la manière accoutumée des maçons à définir le cadre du mur.




4 éléments de 4 couleurs pour bien les voir, regroupés au sein d’un module qui possède 2 variables (longueur) et (hauteur). Les TRANSLATE présents dans le module sont là pour que l’espace intérieur soit exactement.
Pour indiquer à un module qu’il doit avoir des variables, il suffit de :

q Cliquer le petit engrenage en haut à gauche du module

q Ecrire le nom de la variable : « hauteur » par exemple

q Glisser ce nom de la partie gauche de la fenêtre dans la partie droite à l’intérieur de la « machoire » INPUT.

q Recommencer autant de fois que nécessaire pour les variables suivantes.

q Cliquer à nouveau sur l’engrenage pour faire disparaître cette fenêtre de saisie.


Revenons à notre mur dans son cadre, et insérons pour le module MUR nos deux variables (longueur) et (hauteur).



Il reste maintenant à faire correspondre les variables (m) et (k) avec (longueur) et (hauteur) avec la bonne formule.
On sait que la brique vaut 6 de long, on sait que (k) est la variable du nombre de briques sur la longueur. Il faut donc faire la boucle (LOOP) « longueur ÷ 6 ». Cependant comme K doit être un entier, nous rajoutons la fonction ROUND UP qui donne l’entier immédiatement supérieur.

Pour la hauteur c’est le même principe, mais avec la variable (m) et la hauteur de brique 3. La formule est donc « hauteur ÷ 3 » avec la fonction ROUD UP.




Et voilà nos briques qui remplissent tout l’espace de notre cadre. Bien sûr, si vous changez la taille des briques, il faudra changer les formules, mais je vous laisse le soin de trouver comment.
Pour finir, supprimons le cadre et au passage les briques qui dépassent du cadre. Ainsi va s’achever le module MUR.



Dans ce module, nous avons fait le choix de rester simple dans les paramètres, c’est à dire ce que l’on peut choisir : la longueur et la hauteur. Nous aurions pu aussi mettre sous forme de paramètres : la taille des briques et le décalage d’une rangée sur l’autre. C’es surement un exercice intéressant mais n’oubliez pas que plus on met de possibilités, plus cela devient peu compréhensible pour le suivant.

Le portail et les montants


Voici la belle porte de box que mes filles vous ont préparée.



Ce module est constitué de plusieurs sous-modules. Le premier est la courbe ondulée du portail. Ce n’est pas pour rien que nous avons codé les courbes de Monsieur Bézier.





Le module d’appel à gauche et le module Bézier avec le paramètre DISPLAY à 1. Ce paramètre sera bien entendu mis à zéro pour que les chiffres qui indiquent la place des points de Bézier n’apparaissent plus.

Avouons le, il faut un certain temps pour bien placer les points. Ensuite, les formules font le reste.
La suite du programme, ne fait que rajouter la structure de la porte. En regardant les couleurs sur le dessin et les couleurs dans le code informatique, il est facile de comprendre cette partie. Un petit truc sur la courbe de Bézier : la droite entre le point 0, celui du départ, et le point 1 est la tangente au point 0. Cela permet de placer le point 1. C’est aussi vrai le point 5 : la tangente à ce point est la droite entre point 5 et point 4.

Rajoutons les gonds pour faire tourner la porte.






Au tour des planches de faire leur apparition. Pas de souci, une simple révision des LOOP.






Maintenant, nous allons passer aux barreaux.




Les barreaux sont un peu plus délicats à disposer. On pourrait les faire les une après les autres mais ce serait peu élégant. Pour chaque élément du portail, nous réalisons une boucle et la hauteur de chaque barreau est une formule. L’idéal serait que cette formule soit de type Bézier mais le module Bézier n’est pas conçu pour cela. Pour l’instant ! Peut-être un lecteur de ce livre fera un module avec la bonne formule ?

Nous avons préféré être rapide, et utiliser une formule simple de type N∧2 (N puissance 2) avec quelques coefficients choisis par essais et re-essais. Pour expliquer, le coefficient est un nombre qui est soit multiplié soit additionné dans la formule.

Le Loquet

Pour finir, notre portail, il faut un petit loquet. Nous avons fait un concours : chacun devait imaginer un loquet. En combinant les idées d'une de mes filles et les miennes, nous avions un vrai loquet. Mais comme celui de mon autre fille était le plus efficace, elle a gagné.  Voici son dessin.



Et une fois le block réalisé, le portail est fini.


Le toit de tuile

Le toit de tuile ne fait que répéter ce que nous savons déjà :

q Un module TUILE qui réalise une tuile

·      Avec un cylindre à peine conique
·      Une différence pour le rendre creux
·      Une différence pour le couper en deux

q Un module TOITURE avec 2 boucles :

·      Une pour mettre les tuiles en rangées
·      L’autre pour additionner les rangées


Le box enfin terminé


Voici, le grand jour est arrivé.




Nous pourrions encore le compléter avec des accessoires, des fenêtres à l’arrière et plein d’autres choses. Et pour être plus près de la photo prise sur Internet, il suffit de faire une boucle qui dessine et translate l’écurie. Prévoir d’aller gouter une fois RENDER lancé !

Aucun commentaire: