Chapitre 24-1
Blocs et Instances

1 – Les Blocs

2 – Les Instances

Retour au sommaire principal

Retour au sommaire principal

# 1 – LES BLOCS

Les modèles et dessins de 3D Turbo sont conçus avec des entités graphiques décrites au Chapitre "Les Entités Graphiques".

Il est souvent nécessaire de pouvoir utiliser plusieurs fois les mêmes entités ou groupes d’entités (objets) et, au cours du projet, de leur en substituer d’autres, ou de les modifier toutes de manière identique.

Le système des Blocs offre la possibilité de créer des objets dits « Instances » qui restent dépendantes de leur Bloc géniteur (appelé aussi Bloc Père). Toute modification du géniteur sera répercutée sur ses instances, et un autre géniteur peut être associé à des instances existantes, ce qui les transformera instantanément, en respectant leur position et leurs dimensions.

## 1 - Définition d'un BLOC

Un Bloc est un groupe d'entités et de propriétés qui est mémorisé sous un nom unique qui l'identifie.

Il est possible de créer des Blocs constitués d'entités provenant de calques différents.

Un Bloc peut contenir absolument n’importe quels types et quantité d’entités géométriques, 3D, 2D ou mixtes 2D/3D, de cotations, d’objets pères et fils. Mais un Bloc contient toujours :

- un super-objet qui regroupe l’ensemble et porte le nom du Bloc.

- Un Liaison Référentielle (snap) servant de référentiel de positionnement et de dimensionnement.

Ces 2 éléments sont créés automatiquement, s’ils n’ont pas été créés manuellement par l’utilisateur.

Les Blocs apparaissent sous la forme d’Objets de Bureau résidant sur le Bureau de 3D Turbo. Pour les distinguer des Objets Géométriques qui sont bordés d’un filet noir, les Blocs sont bordés d’un filet rouge :

| <- Blocs <- Objets Géométriques

Les blocs se manipulent exactement de la même manière que les autres objets bureau. Ils forment cependant un groupe séparé et peuvent être manipulés globalement de manière indépendante des autres objets de bureau.

Avant de poursuivre la lecture du présent chapitre, il est recommandé d’avoir parfaitement assimilé le chapitre 24 – Les Objets auquel le présent chapitre fait continuellement référence

## 2 - Propriétés des BLOCS

Nom d'un Bloc :

Chaque Bloc est identifié par un nom unique dans l'ensemble des Blocs du projet en cours. Ce nom fait le lien permanent entre le Bloc et ses Instances. Pour cette raison, le caractère # est interdit dans la syntaxe des noms de Bloc.

Il est recommandé d’utiliser des caractères MAJUSCULES pour nommer les Blocs, afin de les différentier clairement. Mais ceci ne constitue pas une obligation.

Composition d'un Bloc :

Un Bloc est composé de n’importe quel type et quantité d’entités graphiques, de cotation et d’objets, compactés sous la forme d’un Objet de Bureau.

Super-Objet :

L’ensemble des entités devant former un Bloc sont regroupées automatiquement (s’il elles ne le sont pas déjà au moment de sa création) dans un objet global (dit Super-Objet) dont le nom sera identique à celui du Bloc.

Référentiel de positionnement :

Chaque Bloc est équipé d’un référentiel de positionnement, sous la forme d’une Liaison référentielle portée par le Super-Objet. Ce référentiel sera choisi de manière à refléter les caractéristiques privilégiées de l’objet : point de référence dit Point Chaud, orientation et calage par rapport aux axes X,Y,Z.. Le nom de ce référentiel sera obligatoirement : *i_snap

Point Chaud :

Chaque Bloc contient un Point Chaud , qui est le point par lequel le bloc sera tenu lors d’une instanciation interactive. Il est recommandé que ce point chaud soit aussi, logiquement, l’origine du Référentiel de positionnement.

## 3 – CREATION d’un BLOC

#### Les outils de création d’un Bloc :

Les Blocs peuvent être créés :

1) À partir de la Sélection courante via le menu contextuel de la fenêtre de travail,

| en choisissant l’item « Créer un Bloc avec la Sélection ». Le Bloc nouvellement créé apparaît dans le coin haut gauche du Bureau :

2) À partir de l’objet courant sélectionné dans le Gestionnaire d’Objets

| en choisissant l’item « Créer un Bloc avec l’Objet ». Le Bloc nouvellement créé apparaît dans le coin haut gauche du Bureau :

3) À partir d’un Objet de Bureau existant via le menu contextuel des Objets de Bureau :

| en choisissant l’item « Convertir en Bloc». Le Bloc nouvellement créé apparaît dans le coin haut gauche du Bureau :

|  | 1 - Créer un Bloc à partir de la Sélection

Pour créer un bloc à partir de la Sélection :

Sélectionner un ensemble d’entités graphiques dans le projet en mode Sélection de Points. La sélection peut être inter-calques.

Dérouler le menu contextuel de la fenêtre de travail et choisir l’item

.

| La fenêtre de composition du nom du Bloc est présentée. Elle affiche la liste des Blocs visibles dans le projet. En cliquant dans cette liste, on transfère le nom choisi dans le champ d’édition. Entrer ou compléter le nom du Bloc de manière à ce que ce nom soit unique. La fenêtre refuse tout nom existant déjà. Cliquer sur OK pour confirmer la création ou Annuler pour l’abandonner Si un super-objet ne couvre pas la sélection, il est automatiquement créé. Si le super-objet ne porte pas une liaison référentielle, une liaison (*i_snap) est créée automatiquement, avec pour origine, le point chaud de la sélection.

##### À propos des liaisons référentielles des Blocs :

La création automatique d’une liaison référentielle *i_snap sur un Bloc ne crée probablement pas une liaison représentative de l’attitude de l’objet dans l’espace.

C’est pourquoi il est souhaitable que cette liaison soit créée manuellement par l’opérateur à l’aide de l’onglet « Snaps » de l’éditeur d’objets. En effet, si des Blocs représentent des objets similaires pouvant se substituer l’un à l’autre, (par exemple une représentation simplifiée et une représentation complète, ou des représentations équivalentes) ces Blocs devraient porter des liaisons référentielles orientées de manière similaire.

Les liaisons référentielles servent au repérage de la position et à la mesure des facteurs d’échelle à appliquer aux Instances, car les Instances peuvent être repositionnées par translation et rotation et leurs dimensions modifiées par homothétie.

##### À propos du contenu géométrique d’un Bloc:

Le contenu géométrique d’un Bloc peut provenir d’un ensemble de calques. Cependant, lors de l’instanciation de ce Bloc, toute la géométrie sera déposée dans le calque courant. Il peut donc être utile d’éviter l’usage du type de trait « du calque » pour les vecteurs d’un Bloc.

Un bloc peut contenir des cotations disposées dans les diverses vues envisagées pour les instances de ce Bloc.

Un Bloc ne peut pas contenir moins de 3 Points. Toute tentative de création d’un bloc avec moins de 3 points sera refusée avec le message :

##### À propos de la structure des Objets dans un Bloc :

Au moment de la création d’un Bloc, sa géométrie peut avoir été organisée en Objets.

Il est souhaitable qu’un Objet global (dit Super-Objet) couvre la totalité de la géométrie.

Le nom de ce Super-Objet sera utilisé lors de la création du Bloc, à moins qu’il ne soit modifié ultérieurement pour raison d’homonymie. Si aucun Super-Objet n’est détecté, il sera automatiquement créé. Son nom sera celui donné au Bloc. Etant automatiquement créé, il sera doté d’une liaison référentielle créée également automatiquement. Cette liaison ne représente donc pas forcément ni le meilleur point chaud, ni les meilleurs axes de références. C’est pourquoi il est souhaitable que le Super-Objet et sa liaison référentielle soient créés par l’opérateur.

Un Bloc peut être composite, c’est-à-dire que certains des objets le composant sont eux-mêmes des Instances.

Par exemple, dans la scène ci-dessous, les 4 chaises sont elles-mêmes des Blocs instanciés. La création d’un Bloc « SALLE A MANGER » va donc entraîner les instances des Chaises dans le Bloc.

La création d’une salle de restaurant par instanciation du Bloc « SALLE A MANGER » va réintroduire le Bloc CHAISE dans les instances

Il sera alors possible

| Soit de ne changer que les chaises

| Soit de changer l’ensemble entier ;

Les Blocs composites sont donc des ensembles d’objets géométriques et d’objets instances. La combinaison de ces 2 types d’objets dans un Bloc est sans limite et permet la création de Blocs sophistiqués.

|  | 2 - Créer un Bloc à partir de l’Objet Courant

Rappel : l’Objet Courant est l’objet sélectionné dans la liste des Objets du calque courant : |

Pour créer un bloc à partir de l’objet courant :

Dérouler le menu contextuel de la fenêtre du Gestionnaire d’Objets et choisir l’item :

| La fenêtre de composition du nom du Bloc est présentée. Elle affiche la liste des Blocs visibles dans le projet. En cliquant dans cette liste, on transfère le nom choisi dans le champ d’édition. Entrer ou compléter le nom du Bloc de manière à ce que ce nom soit unique. La fenêtre refuse tout nom existant déjà. Cliquer sur OK pour confirmer la création ou Annuler pour l’abandonner Si un super-objet ne couvre pas la sélection, il est automatiquement créé. Si le super-objet ne porte pas une liaison référentielle, une liaison (*i_snap) est créée automatiquement, avec pour origine, le point chaud de la sélection.

|  | 3 - Créer un Bloc à partir d’un Objet de Bureau

Pour créer un Bloc à partir d’un Objet de Bureau :

Dérouler le menu contextuel de l’Objet de Bureau et sélectionner l’item

L’objet choisi est dupliqué en un nouveau Bloc.

| La fenêtre de composition du nom du Bloc est présentée. Elle affiche la liste des Blocs visibles dans le projet. En cliquant dans cette liste, on transfère le nom choisi dans le champ d’édition. Entrer ou compléter le nom du Bloc de manière à ce que ce nom soit unique. La fenêtre refuse tout nom existant déjà. Cliquer sur OK pour confirmer la création ou Annuler pour l’abandonner Si un super-objet ne couvre pas la sélection, il est automatiquement créé. Si le super-objet ne porte pas une liaison référentielle, une liaison (*i_snap) est créée automatiquement, avec pour origine, le point chaud de la sélection.

## 2 – MODIFIER un BLOC

Pour modifier le contenu d’un Bloc :

Instancier ce Bloc dans un calque vide,

Geler l’instance ainsi créée,

Modifier ce qui doit l’être à l’aide des outils de modélisation / dessin,

Détruire le Bloc d’origine,

Recréer un Bloc.

## 3 – MAINTENANCE DES BLOCS

#### Destruction d’un Bloc

Pour détruire définitivement un Bloc 3 méthodes sont possibles :

| Appeler son menu contextuel et choisir la rubrique Effacer. ou
| Cliquer-Glisser le Bloc dans la poubelle. Il n’y a pas de Annuler/Refaire (Undo/Redo) sur la destruction des blocs

| ou Cliquer-Glisser le Bloc depuis le Gestionnaire de Blocs dans la poubelle.

Si le Bloc est instancié dans le projet courant, le dialogue suivant est affiché :

Il n’y a, en principe, pas d’inconvénient à détruire un bloc déjà instancié, car les instances sont fonctionnellement indépendantes de leur Bloc père. Le seul risque est de perdre la définition d’un Bloc dans le projet. Cependant, un bloc peut toujours être reconstruit à partir d’une de ses instances. Enfin la substitution des instances d’un bloc par un autre bloc nécessite la présence du bloc original pour s’effectuer. Si le Bloc original n’existe plus, il ne sera plus possible de remplacer ses instances.

#### Destruction de tous les Blocs

Pour détruire définitivement tous les Blocs,

| cliquer dans l’un d’eux avec la touche Alt et glisser les dans la poubelle. Cette procédure est identique à celle des Objets géométriques.

#### Enregistrement des Blocs

Les Blocs s’enregistrent à trois endroits :

1) dans le document courant lors d’un Enregistrer ou Enregistrer-sous.
2) dans l’environnement courant lorsqu’on quitte 3D Turbo.

3) dans un fichier Bibliothèque

Les Blocs sont rechargés au lancement de 3D Turbo et à l’ouverture d’un document.

Les Blocs mémorisés dans un fichier Bibliothèque deviennent des Objets normaux, mais toujours équipés de leurs principales caractéristiques : le référentiel et le point chaud.

Il suffit de les re-glisser sur le Bureau et de les convertir en Blocs.

# 2 – LES INSTANCES

Le système d’objets instanciés de 3D Turbo est particulièrement puissant car il s’applique à n‘importe quelles entités, qu’elles soient 3D ou 2D.

## 1 - Définition d'unE INSTANCE

Une Instance est un objet copie d’un Bloc ou copie d’une autre instance de même type, résidant dans un calque.

Une Instance est donc un Objet dans un calque qui :

1) est typé "Instance" et dont le nom commence par *i_xxxxxxxxx . Seul un objet père (niveau 0) peut être typé instance, ce qui permet à ses fils d'être de n'importe quel type (spline, ...). Un objet fils n'est donc jamais une instance.

2) détient un point Chaud, qui est le premier point de cet objet.

3) détient une liaison référentielle (snap) nommée "*i_snap" pour le positionnement par rotation (ce snap est issu du Bloc père)

4) référence un Père d'instance ( un "Bloc" ). Cette référence se fait par la racine du nom du Bloc père

| Si le Bloc père porte le nom Chaise, ses instances porteront les noms *i_Chaise#001 *i_Chaise#002 *i_Chaise#003 ….. Inversement, pour retrouver le nom du Bloc père d’une instance, il faut retirer le préfixe *i_ et le postfix de série #xxx Une instance nommée *i_Brique#050 est donc la 50 ième copie du Bloc nommé Brique. Les instances sont des objets normaux. On peut donc les manipuler comme tels, les renommer, etc.. avec les avantages et inconvénients décrits ci-après.

## 2 - Propriétés des INSTANCES

Un objet Instance hérite des propriétés de son Bloc père.

#####

##### Composition d'une Instance :

Une Instance est composée de n’importe quel type et quantité d’entités graphiques, de cotation et d’objets, compactés sous la forme d’un Objet dans un calque.

##### Super-Objet :

L’ensemble des entités formant une Instance sont dans un objet père de niveau 0 (dit Super-Objet) dont le nom est dérivé du nom de son Bloc père.

##### Référentiel de positionnement :

Chaque instance est équipée d’un référentiel de positionnement, sous la forme d’une Liaison référentielle portée par le Super-Objet. Ce référentiel est hérité du Bloc père. Le nom de ce référentiel est obligatoirement : *i_snap

##### Point Chaud :

Chaque Instance contient un Point Chaud, hérité de son Bloc père, qui est le point par lequel l’objet sera tenu lors des opérations interactives. Ce point chaud est aussi, habituellement, l’origine du Référentiel de positionnement.

Les utilisateurs avertis auront compris qu’une Instance est, en somme, un Objet normal dont on a encadré les caractéristiques.

##### Une instance est un objet classique !

Par conséquent, il est parfaitement possible de créer une instance de toutes pièces avec les fonctions de création et d’édition d’objet et de création de snap, totalement indépendamment d’un Bloc, dès lors qu’on en respecte les caractéristiques.

En corollaire, un objet de type "instance" perd son type instance :

• Si on le re-type autrement manuellement.

• Si on enlève manuellement le préfixe *i_ de son nom.

• Si on le gèle ( ce qui le re-type Géométrique et enlève le préfixe *i_ )

• Dans certaines transformations (Symétrie, Retournement,...)

Le grand intérêt des instances de 3D Turbo est que :

1) La dépendance au Bloc père est faible. Si le bloc Père n'existe plus, ses instances continuent d’exister et peuvent même se cloner !

2) Les instances se comportent (à quelques exceptions près) comme des objets normaux.

3) Elles sont à la fois 3D et 2D

4) Et mieux encore : il est possible de reconstruire un Bloc père égaré à partir d'une de ses instances !.

##### Un objet classique substituable !

À la différence des objets classiques qui sont permanents, les Instances peuvent être instantanément remplacées / substituées par un autre Bloc Cette substitution s’effectue sur demande de l’opérateur. Elle est quasi-instantanée, même si les instances concernées ont été transformées par rotation et/ou homothétie.

Il n’y a d’intérêt à utiliser les Instances à la place des Objets Géométriques, que si on a l’intention de les remplacer massivement pour quelque raison que ce soit, par exemple :

- insérer un type d’huisserie ou de mobilier, et les substituer par d’autres,

- ou insérer des versions simplifiées d’un objet en cours d’étude, et les substituer par une version détaillée en fin d’étude,

- ou insérer des versions d’un objet et les substituer par un objet similaire,

- ou insérer des versions d’un Bloc 2D coté et enrichi d’une certaine manière, et les substituer par le même coté et enrichi différemment.

## 3 – CREATION d’ INSTANCES

Les Instances étant des objets normaux, elles se créent de la même manière que les objets. Seules certaines opérations, expliquées ci-après, sont interdites sur les Instances.

#### Création d’une Instance à partir d’un Bloc

Pour créer une instance d’un Bloc, Cliquer/Glisser le Bloc dans le fenêtre de travail et le positionner de la manière habituelle.

#### Création d’une Instance à partir du Gestionnaire de Blocs

Pour créer une instance d’un Bloc, Cliquer/Glisser l’image Bloc dans le fenêtre de travail et le positionner de la manière habituelle.

#### Création d’ Instances multiples

Les façons de créer de multiples Instances sont nombreuses et correspondent globalement aux possibilités de duplication d’objets normaux, à savoir :

Par collage si le contenu du Presse-Papier est une/des instances,

Par collage multiple sur sélection si le contenu du presse Papier est une instance,

Par duplication d'un objet instance existant,

Par duplication rythmée d'un objet instance existant,

Par duplication le Long de... d'un objet instance existant,

Etc..

NOTA: Les Symétries et les Retournements détruisent l'état d'instance.

## 4 – MODIFICATION d’ INSTANCES

##### Modifications géométriques

Les fonctions qui modifient les instances sont, globalement, toutes les fonctions de transformation. Si la modification n’est pas possible, le dialogue suivant en informe l’opérateur :

| Translation | autorisée si la sélection ne contient que des instances complètes ou des parties d’une seule instance.
| Rotation 2D | autorisée si la sélection ne contient que des instances complètes ou des parties d’une seule instance.
| Rotation 3D | autorisée si la sélection ne contient que des instances complètes ou des parties d’une seule instance.
| Homothétie | autorisée si la sélection ne contient que des instances complètes ou des parties d’une seule instance. et si les 3 facteurs d'échelles sont identiques, positifs et non nuls
| Symétrie Retournement | Autorisée mais les objets résultants perdent le statut d'instance
| Alignements de cote | Interdit
| Alignements sur grille | Interdit
| Alignement sur Direction | Interdit
| Projection sur Direction | Interdit
| Froissage | Interdit
| Coupe | Autorisée mais les objets coupés perdent le statut d'instance
| Coupe multiple | Autorisée mais les objets coupés perdent le statut d'instance
| Profil de coupe intégré | Autorisée mais les objets coupés perdent le statut d'instance
| Profil de coupe non intégré | Autorisée

Toutes autres constructions sur un objet instance restent autorisées, mais sont perdues en cas de substitution du Bloc père. (Coupe, création-effacement de vecteurs, tronçonnage, intersection, modification de facettes, de cotations,...).

Les Objets fils d'une instance restent des objets normaux. Il n'est pas recommandé de les manipuler en dehors de leur père instance.

Les modifications partielles ou modifications des fils d'une instance (effacement,…) sont permises mais perdues en cas de substitution.

Les modifications partielles ou modifications des fils d'une unique instance (sauf l’effacement) sont répercutées intégralement sur toutes les instances de la même famille.

##### Geler des Instances

Geler des instances c’est leur faire perdre leur statut d’instance et leur faire gagner le statut d’objets normaux.

Pour geler toutes les instances d’un même type (c’est à dire issues d’un même père) :

Sélectionner une instance parmi celles que l’on souhaite geler,

Dérouler le menu contextuel du Gestionnaire d’Objets et choisir « Geler les instances »

| àà |  |  |

Toutes les Instances de même génération appartenant au groupe de visualisation sont transformées en objet géométrique normal.

Cette fonction peut être annulée par Undo / Redo

Les Instances gelées étant devenues des objets normaux, elles ne peuvent plus être substituées.

Il est tout à fait possible de redonner son statut d’instance à une instance gelée. Il suffit de la renommer (à l’aide de l’item « Renommer… » du menu contextuel) en insérant devant son nom le préfixe *i_ .

##### Pour geler seulement quelques instances d’un même type :

Procéder comme précédemment mais choisir le menu dynamique « Geler les instances Sélectionnées ».

##### Substituer des Instances

Substituer une instance signifie remplacer son contenu par le contenu d’un autre Bloc, ou du même Bloc modifié. Cette fonction justifie à elle seule l’existence des Instances.

Pour substituer une instance par un Bloc :

- Sélectionner une des instances à substituer dans le Gestionnaire d’Objets.

- Dérouler le menu contextuel du Gestionnaire d’Objets et choisir l’item «Changer le Bloc Père par… »

- Dans le menu listant tous les Blocs présents dans le projet, choisir celui qui servira à la substitution.

Cette fonction ne peut pas être annulée ou refaite par Undo / Redo

| Avant la substitution

Pendant la substitution ( si elle dure plus de 1 seconde ! )

Après la substitution |

Les instances peuvent avoir été modifiées par translation, rotation et homothétie.

La substitution préserve ces modifications comme le montrent les exemples ci-dessous.

#####

##### Substituer les Instances sélectionnées

Pour substituer des instances choisies par un Bloc :

- Sélectionner les instances à substituer dans le Gestionnaire d’Objets.

- Dérouler le menu contextuel du Gestionnaire d’Objets et choisir l’item «Dans les Instances Sélectionnées»

- Dans le menu listant tous les Blocs présents dans le projet, choisir celui qui servira à la substitution.

## 5 – RECONSTRUCTION D’un BLOC

Pour reconstruire un Bloc à partir d’une de ses instances, procéder comme suit :

- Mettre l’instance dans une position significative à l’aide des outils de rotation, translation,…

- Geler l’instance

- Sélectionner l’instance

- Créer un Bloc avec la Sélection.

## 6 – Fusion des Blocs d’un document

Pour extraire les blocs d’un document sur disque et les fusionner avec les Blocs du projet courant, utiliser le menu Fichier/Fusionner… ou l’icône et choisir le fichier à fusionner.

Le dialogue de Fusion est présenté. Activer l’onglet Blocs.

La liste des Blocs du document choisi est affichée :

Sélectionner le ou les Blocs à fusionner

Le panneau Blocs présente la liste des Blocs détectés dans le document à fusionner. Naviguer dans ce panneau à l’aide des outils habituels (Flèches du clavier, …) Sélectionner dans ce panneau le ou les Blocs à fusionner. La zone d’affichage présente le contenu du dernier Bloc sélectionné.

Pour ajouter un Bloc à la sélection, cliquer avec la touche Maj

Pour ajouter-retirer un Bloc de la sélection, cliquer avec la touche Cmd ( ). Cliquer-Glisser avec l’une ou l’autre touche pour ajouter-retirer une plage de Blocs

Cliquer Fusionner pour charger les Blocs sélectionnés sur le Bureau de 3D Turbo.

Extraction par Cliquer-Glisser

Sélectionner dans le panneau le ou les Blocs à fusionner.

Cliquer-Glisser l’image du Bloc sur le Bureau de 3D Turbo.