AlgoArchi : le Milwaukee Art Museum, a été réalisé en trois phases par Eero Saarinen, David Kahler, et Santiago Calatrava. (http://mam.org/ ).

Santiago Calatrava a réalisé le Quadracci Pavilion, qui a ouvert en mai 2001. La structure supérieure se présente comme un gigantesque brise-soleil articulé et mobile.


(Source : http://rackphoto.com/panos/rackoramas/mam/mam-1.html) Modèles Sketchup http://sketchup.google.com/3dwarehouse/details?mid=22dc6abf6c4c298f7df0413d9ca4c76f&prevstart=0 ou http://sketchup.google.com/3dwarehouse/details?mid=cbcbaf2096a08244c9018117fba4b5e9&prevstart=0
Mise en place des éléments.
Mettre le système à l’échelle tel que suit :

Réaliser une première boite (Box)

Convertir en Poly et éditer le pivot pour le placer à l’extrémité gauche de la boite.

Ouvrir la palette « Edit / Transform Toolbox ». Aller dans l’onglet « Hierarchy / Pivot » et activer « affect Pivot Only »

Cliquer de nouveau sur » Affect Pivot Only » quand l’opération est terminée.
Dupliquer en réseau (fonction Array)

Un dégradé de couleur a été appliqué à chaque élément pour plus de lisibilité.

Application d’une structure hiérarchique
La fonction « Select and Link » est appliquée aux barres en remontant de la 5ème vers la 1ère, créant ainsi une relation hiérarchique Parent/Enfant.

Si la première barre est déplacée, l’ensemble de la structure suit.
Application d’une condition de rotation.
La fonction « Wire Parameter » permet de déterminer des conséquences d’actions d’un élément sur un autre. Ici, on veut que lorsque la barre n°1 pivote, les autres barres pivoteront également selon un facteur que l’on détermine.
Procédure :
Sélectionner la première barre, Bouton Droit « Wire Parameters… » Cliquer.

Suivre Transform / Rotation / Y Rotation. (attention à vérifier que l’objet possède sa partie la plus longue sur l’axe X, sinon, il faut prendre un autre axe de rotation).

Valider par Clic, cliquer sur la barre n°2 et suivre la transformation :

La palette « Parameter Wiring » s’affiche

Indiquer la direction de contrôle ( de gauche à droite), compléter l’expression « Y_Rotation*-0.1 » et cliquer sur Connect.

L’expression *-0.1 signifie que la rotation en radiant se fera suivant un facteur (le 0.1) et une direction (le signe -). Tester, la première barre en rotation entraine la 2ème.
Fermer la boite de dialogue et recommencer l’opération en reliant la 1ère à la 3ème, la 1ère à la 4ème et la 1ère à la 5ème.
Tester :

A ce stade, il serait possible de dupliquer les barres, puis de les relier par un Wire Parameter de telle sorte que la première entrainera l’ensemble des autres.

Création d’un contrôleur distance.
Créer un point (Helpers/Point) et attribuer lui un « Modifier / Attribute Holder »

Sélectionner toutes les barres et appliquer un « Charactere / Create Charactere »
Nota :
Le menu Charactere n’est pas toujours activé, Il faudra alors aller le chercher dans le « Customize / Customize user Interface »

Un petit symbole apparait. Si ce n’est pas le cas, modifier le pivot pour le placer à l’extrémité gauche du dispositif.

Aller dans le menu « Charactere/Lock » pour verrouiller le système. Puis appliquer un « Attribute Holder » au système.

Sélectionner le point et aller dans « Animation / Parameter Editor » (Alt + 1).
Régler comme suit : 
1. Selected Object’s Current Modifier
2. Nommer l’attribut « Range »
3. Déterminer les valeurs de 0 à 500
4. Cliquer sur Add pour ajouter l’élément.
Un « spinner » s’est ajouté dans les attributs de l’objet Point.

Sélectionner le système de barres et ouvrir le Parameter Editor (Alt+1)
Choisir cette fois « Picked Track » et sélectionner « Attribute Holder »

Comme nom, mettre ensuite « Distance »

Puis un range de 0 à 1
Puis Add pour ajouter « l’ Attribute Holder » aux attributs de la barre.

Cliquer dans l’Attribute Holder Distance avec le Bouton Droit pour lancer le « Track View »

Retrouver la ligne du contrôleur « Distance » faire Bouton Droit et choisir « Assign Controler »

Dans la liste des controllers, choisir « Float Expression »

Une nouvelle palette s’ouvre.

On remarque qu’il va être possible de déclarer plusieurs types de variables, Scalaires et Vectorielles. L’idée est de corréler la position du point avec l’angle de rotation des barres.
Dans un premier temps, il faut déclarer une variable « Range » comme Scalaire (scalar), puis deux autres variables CoPos (position des barres) et PtPos (position du point) comme variables vectorielles.

Il faut ensuite assigner à des « controllers »
Le controller « Range » est associé à l’Attribute Holder Range dans la liste qui s’affiche.

CoPos est associé à la position XYZ du Character, c’est-à-dire à l’ensemble des barres.

Le PtPos est associé à la position XYZ du Point.

Reste maintenant à formuler les relations entre les différents éléments. Dans la boite expression, taper la relation suivante : length(CoPos – PtPos) / range

Attention les majuscules / minuscules sont différenciées, il faut faire preuve de rigueur dans la notation.
Cliquer sur « Evaluate » pour valider l’expression et « Close » pour fermer la fenêtre.
Fermer toutes la fenêtre du Track View et tester, le déplacement du Point entraine la rotation du système.

Câblage de la rotation
Cliquer Bouton Droit sur le Point. Wire Parameters, Modified Object / Attribute Holder / Custom_Attributes / Range
Vers la barre racine de l’aile :
Transform / Rotation / Y Rotation
Valider.
Maintenant, le mouvement du point modifie l’angle d’orientation de la barre.
Création de l’aile
Par simple déplacer / copier (déplacement + SHIFT) ou avec la fonction Array, réaliser 35 copies des barres.

Vérifier que le système fonctionne en déplaçant le Point, modifier éventuellement la valeur du Range pour avoir des effets plus importants.

Une copie en miroir permet d’obtenir le développé final.

Pour parfaire l’ensemble, il faudrait toutefois retailler les ailles pour s’approcher de la forme donnée par Calatrava.
Une forme est tracée dans la scène.

Sélectionner toutes les barres, aller dans Charactere / Unlock pour pouvoir travailler avec. Puis commencer à éliminer les barres entières sortant de la forme. Puis en édition de polygones, déformer les barres restantes pour les faire correspondre à la forme.

Une fois le recalage fait, une copie en miroir donne le résultat final.


On peut ensuite fixer le point à un guide avec la fonction Animation / Contraint/ Path Contraint
Ensuite la rotation du dispositif le place correctement dans l’espace. Penser à faire varier le Point dans le référentiel Local.
