Blender(jusqu'à 2.49)
Déplacer et gérer le positionnement
d'un objet.
 
    Début   Index
précédentMdlg:Autosmooth
Mdl: diedre uvmappé Suivant
Utiliser les grilles magnétiques
Espace monde, Espace Objet
Notions de centre du monde, de la scene, de l'objet
Relation entre l'espace local de l'objet et l'espace global du monde
      Les lampes
Comment connaître la position du curseur 3D?
Comment connaître la distance entre deux points? (1)
Comment connaître la distance entre deux points? (2, expérimental)
Ctrl-a, appliquer les transformations de Size et Rotation
Comment construire un point par rapport à un autre?
Edge length, en mode edit seulement.
Scripts python
Obj.Objet et d'Objet.Mesh
Précisions sur les relation objet/data
Fake  Objet
Echanger la position respective de deux objets
Echanger la position respective de plus de deux objets
Visibilité des axes
notion de taille
Précision des valeurs numériques

Blender offre une palette d'outils très variés qui peuvent s'adapter à la plupart des problèmes de placement dans l'espace 3d. D'une certaine manière, c'est au créateur de l'objet de préparer sa  stratégie de construction pour finalement se simplifier la tâche et obtenir le meilleur résultat possible. Un peu de réfléxion et quelques croquis peuvent économiser beaucoup de travail inutile.

Donnons nous comme objetctif un travail simple qui pourra être généralisé à l'ensemble des objets de Blender, par exemple  déplacer deux rectangles pour que leurs arêtes soient parfaitement reliées.

Envisageons quelques réponses possibles.

1/  première tactique: 
utiliser les grilles magnétiques.

On suppose que le plan de travail de Blender est celui du fichier par défaut que l'on obtient la première fois que l'on charge le logiciel.
Dans la partie supérieure de l'écran il y a, à gauche, un bouton indiquant qu'il s'agit de la fenêtre d'Info. Si on amène la souris sur le bourrelet qui se trouve juste sous le "i", il est possible de déplier cette fenêtre. Dans les anciennes versions elle ressemblait à cela:

Depuis la version 2.0, elle s'est très sérieusement étoffée. Elle est même répartie sur plusieurs sous contextes.  Mais elle conserve globalement les mêmes propriétés et celles qui nous intéressent se trouvent dans le sous-contexte View & control :
Dans cette liste de boutons ce qui nous interesse ce sont les boutons Grid.

Les rotations, les effets d'echelle et de location peuvent être annulés avec ALT-r, ALT-s et ALT-g qui sont infiniement plus rapides et precis qu'un deplacement manuel.
 

Espace monde, Espace Objet

Si on ne veut pas s'embêter à déplacer l'objet  ou si on veut travailler avec la positon réelle de l'objet, pas resituée entièrement sur l'espace monde" (ou "scene", comme on l'a lu il n'y a pas lontemps, mais la scene entière peut être sélectionnée et déplacée par rapport à l'origine du monde 3D donc je préfère cette désignation: "monde"):
 

1/ on crée un empty n'importe où

2/ on annule ses transformations de coordonnées
    avec ALT-s, ALT-r, ALT-g

3/  on positionne le curseur3d sur le l'empty en question en
     utilisant le menu SHIFT-s >> [Cur -> Sel]
     (si on est prêt à se supporter un changement de fenêtre on
      peut aussi faire, tout simplement : SHIFT-c, c'est
      beaucoup plus rapide mais on perd son point de vue;
      l'avantage reste que ça évite les  2 premières
      opérations)

4/ sélection de l'objet à traiter

5/ touche F9 pour passer dans la fenêtre d'édition

6/ bouton [Centre Cursor]


Là, miracle, le centre de l'objet a filé à l'origine du monde. Maintenant les coordonnées des sommets sont affichées par rapport à l'origine "absolue", le point [0,0,0] du monde 3d.

Complément: 
Notions de centre du monde, de la scene, de l'objet

Le centre du monde est en [0,0,0] pas de discussion possible sur la chose. Tous les objets sont positionnés par rapport à ce lieu.

Le centre de la scene peut se déterminer de la façon suivante:

 1/ séléction de tous les objets avec la touche A

 2/ utilisation du menu SHIFT-s entrée: [Cur->Sel]

Chaque ajout d'objet fait varier le centre de la scene en question. A mon humble avis le centre de la scène ne sert pas à grand chose.

Le centre de l'objet est flottant et correspond à l'utilisation que l'on veut en faire; ça peut être le point d'équilibre des sommets, on appelait ça le barycentre quand j'étais au collège.Il peut être déplacé où l'on veut. Comme il peut devenir le point par rapport auquel on fera tourner tous les sommets de l'objet, il serait préférable de nommer ce point Centre-Pivot.
Centre d'un groupe de sommets. Méthode:

1/ Passer en mode édition en utilisant le raccourci TAB
quand la souris se trouve au dessus de  la fenêtre 3D.

2/ Sélectionner les sommets dont on veut
trouver le centre (éventuellement sélectionner
tous les points avec la touches a, si on cherche le centre
géométrique de l'objet)

3/ Vérifier que l'option Rotation/Scaling Around Median
Point,  est bien  activée.

4/ Utiliser le menu SNAP, combo de touche SHIFT-S
pour  envoyer le curseur 3d vers le centre géométrique
éventuellement pour nevoyer le centre de l'objet vers ce
lieu:

5/ Sortir du mode édition : TAB

6/ Passer dans la fenêtre F9, appuyer sur le bouton [Centre Cursor]
 

Relation entre l'espace local de l'objet et l'espace global du monde
Les lampes :
Les lampes sont des objets particuliers qui ne supportent pas l'homothétie car  certaines de leur valeurs n'ont de sens  que dans l'espace  global et pas dans l'espace local de l'objet : le clipstart et clipend, pour les citer.  La règle dans ce cas-là serait d'éviter de multiplier la taille taille en utilisant le facteur Size sutout si on a l'intention d'utiliser l'option  buffer Shadow
Comment connaître la position du curseur 3D?

Cliquer View dans la barre de commande de la fenêtre 3D :

Puis View Properties

Voir aussi : Mesurer avec le python : position du curseur 3D 

Comment connaître la distance entre deux points?

Toutes les mesures avec Nkey se font par rapport au centre/pivot de l'objet.
la petite bille rose:

ou :

Donc si on veut connaître cette distance, il n'y a pas la choix: il faut  envoyer  le centre en question sur un des deux points. Pour cela il n'y a qu'une technique valide: le menu  SNAP et le déplacement, dans un premier temps, du viseur 3D (ne pas oublier de sélectionner un des deux points).

Ensuite on opère avec le bouton Centre Cursor, de la fenêtre F9/edit buttons

Mais ça ne marche pas en mode edition de data:

Donc on sort en appuyant sur tabulation et ensuite on obtient réellement la distance entre les deux points en recueillant les valeurs avec Nkey ...

... et en opérant la calcul à la main: sqrt(LocX*LocX+LocY*LocY+LocZ*LocZ+). Ce qui donne pour l'exemple sqrt(0*0+-2*-2+0*0*)=2. Coup de chance formidable dû au fait que ce plan était parfaitement parallèle au plan XY.
 

Edge length, en mode edit dans blender 2.36 version de développement  et 2.37 seulement

Les scripts 
 

pied à coulisse (ne fonctionne plus avec l'API python supérieur à Blender 2.28)
metre ruban  objet


Ctrl-a, appliquer les transformations de Size et Rotation

Ctrl-a ne résoud pas tout, mais c'est un début. Après tout  on ne cherche pas à connaître la position absolue d'un point dans l'espace  mais la position par rapport à un autre point.


Comment construire un point par rapport à un autre?

La question à 150 €: comment construire un point qui se trouverait  à exactement 5.2 unités de tel autre point. En ayant le centre pivot   ET le curseur 3D positionnés sur point de référence, la chose doit être possible:
 

1/ touche A pour tout désélectionner (ça évite de déplacer des éléments indésirables)
2/ ctrl-bouton gauche souris pour créer le point
3/ touche G pour déplacer le point en question. Les coordonnées s'affichent dans le coin gauche de l'écran
4/ enfoncer la touche Shift permet d'avoir une précision au millième d'unité sans oublier d'appuyer sur  le bouton central de la souris pour ne se déplacer que sur un axe (shift-flèche permet aussi de limiter le déplacement sur un seul axe).
5/ une fois que la distance est fixée sur un seul axe, on passe en mode de rotation par rapport au cursor avec la touche "." (le point quoi!!) du clavier normal pas celui du clavie rnumérique.
6/ on appuie sur la touche R pour poser le point où l'on veut dans l'espace. En utilisant la rotation, on est sûr qu'il sera  toujours exactement à 5.2 unités du point de référence.
Notions d'Objet.Objet et d'Objet.Mesh

L'interface de travail en 3D permet d'intervenir sur deux niveaux des objets : le niveau du conteneur qui pourrait se comparer à une sorte de coquille vide . Ces objets sont affichés dans la fenêtre OOP (raccourci : SHIFT-F9) ou dans l'Outliner (raccourci : ALTt-SHIFT-F9) avec cette apparence :

et  et au  niveau des données:

Cette division, cette séparation offre la posibilité de reproduire les mêmes objets à un certain nombre d'exemplaires juste en multipiant  les conteneurs qui partagent ses données identiques. Il est donc possible de gagner de la place en mémoire  au moins pendant la modélisation. Dans cette situation, modifer les données partagées d'un de ces objets revient à modifer toutes les copies en même temps puisqu'on intervient sur le même contenu .

En général, la copie en données partagées se fait avec le raccourci ALT-D . Le logiciel permet cependant de choisir la méthode que l'on souhaite voir appliquée par défaut , voir à ce sujet les informations sur les parametres de copies sur la page Configuration : quelques astuces  de ce site . Le nombre d'objets qui utilise les données partagées est indiqué entre le nom des données [ME] dans le cas d'un mesh, et le nom de l'objet lui-même, [OB] .Voir à ce sujet l'illustration du paragraphe Fake Objet ci-dessous .
 
 
 

ATTENTION

Si un Objet.Mesh peut être associé à plusieurs Objet.Objet, un Objet.Mesh ne peut contenir qu'un seul et unique mesh . Ce n'est pas compliqué à voir .

1/ Vider le plan de travail : 
--> passer dans la fenêtre 3d, raccourci Maj-F5 (ou Shift-F5)
--> touche a , sélection de tous les objets, 
--> touche  x , apparition d'un dialogue [Erase Selected]
--> appuyer sur entrée ou cliquer [0k]
--> recentrer le curseur 3D avec le raccourci Maj-C (ou Shift-C)
2/ Créer un plan : 
--> Barre espace
 --> Add
 --> Mesh
 --> Plane

L'objet Plane porte le nom "Plane" et le Mesh est nommé "Plane"  aussi.

3/ Copier cet objet avec le raccourci Maj-d ( ou Shift-d, donc en copie complète)  Le nouvel objet se nomme "Plane.001" et le nouveau mesh "Plane.001"


4/ Re-sélectionner le premier objet, Plane, pour qu'il soit l'objet  Actif, magenta clair . Deux objets sont sélectionnés 
5/ Joindre les deux objets : raccourci Ctrl-j

6/  Afficher la fenêter OOP en vérifiant que le bouton SCENE est enclanché (le bouton à droite de LAYER ). On voit très distinctement que le mesh Plane.001 est entouré de blanc et n'est lié à aucun Objet 
.
7/ Aller dans  la fenêtre EditButton et regarder la liste [ME], il y a bien  un  0 devant Planee.001 .

Pour mieux saisir le principe de ce line faire l'essai suivant :

et observer les changements dans la fenêtre 3D et dans la fenêtre Oops Schematic.

 

Fake Objet
L'objet  conteneur est le lien qui relie les données à la scène.  Si on coupe ce lien, les données ne sont pas immédiatement effacées . Elles restent en suspend dans la mémoire  vive jusqu'à ce que l'on fasse un sauvegarde du ficher suivi d'un chargement. C'est d'ailleurs la seule méthode pour les effacer.  Si malgré tout on souhaite conserver des données sans les voir apparaître dans la scène, il est possible de simuler l'existence d'un lien.  Un bouton est prévu à cet effet : [F]

Echanger la position respective de deux objets

   1/  Sélectionner 2 objets et seulement 2 (plus ne servirait à rien, le surplus ne ferait que compliquer les échange).
    2/ Activer [move object center only] (le bouton avec 3 points soulignés par une flêche)
    3/ Faire S(key), -(key), 1(key) et [entrée]
Echanger la position respective de plus de deux objets
Utiliser un script python, voir ici.


Visibilité des axes

Rendre les axes  visibles
 
 Fenêtre des boutons
 Mode objet
Bloc Draw
Propriété Axis

La visibilité des axe a été considérablement augmenté avec la version 2.37 de Blender :

 Fenêtre 3D
 Mode Winget


(Cliquez sur l'image pour l'agrandir)

Cependant si on souhaite qu'ils soient présents encore et dépassent de la'objet on doit prendre en considération lla relation Données/Objet . Les axes de l'objet sont calés sur des valeurs standard pour un repère orthonormé : x=y=z=1.0, donc si on veut  que les flèches dépassent, la position des vertices/sommets doit être inférieure à 1.0 et supérieure à -1.0 sur les 3 axes . 
On entre en mode édit,  on sélectionne tous les sommets :
on fait un scaling/mise à l'échelle de l'ensemble en rétrécissant .

Voir le fichier test
Rendre les axes  visibles : problème 
Si on applique un raccourci ctrl-a sur l'objet  les axes preprendrront leurs dimensions initiales. Une alternative interessante consiste à affilier un empty à l'objet . 



Notion de Taille 

Précisions sur la touche n:
Au meme titre que la rotation et le deplacement, c'est une transformation géométrique des vrais dimensions qui
ne sont accessibles qu'en mode edit et sommet par sommet.
 

En mode edit, pour plusieurs sommets sélectionner la touche n renvoie le point median. Les transformations  appliquées se résument au simple
déplacement.

En mode objet, la taille d'un plan étant toujours 2.0 x 2.0 . celle d'un cube 2.0 x 2.0 x 2.0 , le rayon d'un cercle est toujours racine carré de 2.0 , celui d'une sphere est, lui aussi, toujours racine carré de 2.0 .

Pour que ces objets puissent avoir un coté ou un rayon égal à 1.0 il faut multiplier la valeur size qui apparait dans la fenetre par 1/taille : pour le cube et le plan : 1/2.0  = 0.5, pour la sphere et le cercle : 1/ sqrt(2.0) = 0.7071

Il faut ensuite appliquer ces transformations aux sommets en utilisant le raccourci ctrl-a.

Notion de précision

La structure des sommets dans blender etant la suivante :
 

typedef struct MVert {
    float    co[3];
    short    no[3];
    char flag, mat_nr;
} MVert;

Les valeurs peuvent être choisies entre  3.4*10-38 à 3.4*1038  avec une précision  qui dépend des chiffres significatifs soit :
     de 6 chiffres pour le type float
     de 15 chiffres pour le type double
     de 17 chiffres pour le type long double 
 
précédent  Mdlg:Autosmooth
Mdl: diedre uvmappé Suivant
Vers le haut de la page    Haut de page

Les questions concernant cette page  peuvent être posées sur  :
 news://news.zoo-logique.org/3D.Blender


 

 

Livre en français
Blender : apprenez, pratiquez, Créez, livre, Ed. Campus Press, coll. Starter Kit
Blender Starter Kit

Forum
FAQ
Lexique
Didacticiels
Compilations
Blender2KT
Débuter
Modelage
Blender python
Materiaux
Lumière
Animation
API python (eng)
Archives nzn
Statistiques
Doc flash Sculptris
Galerie Sculptris

mon site de démos sur youtube