BiB_Attr_Data

Fonction Catégorie Version
BIB 04 BiB_Attr_Data Gestion des Objets 1.0 - Janvier 2007

Description

But Retourne les valeurs de tous les attributs d'un bloc.
Prototype ( BiB_Attr_Data Ename_Bloc)
Argument Ename_Bloc- Le nom (ename) de l'entité bloc - Ename -
Retours Une liste
Var. globales Néant
Description Cette fonction retourne une liste de sous-listes. Chaque sous-liste comprenant :
- L'étiquette de l'attribut,
- La valeur de l'attribut.
Notes Voir BiB_Attr_Lst pour avoir les valeurs par défaut et les messages.
- Si le bloc ne contient pas d’attribut, la fonction retourne nil.
- Si l’entité sélectionnée n’est pas un bloc, la fonction retourne nil.
Exemples

Commande: liste
Choix des objets: 1 trouvé(s)
Choix des objets:

REFERENCE DU BLOC  Calque: 0
	 Espace: Espace objet
Maintien = 4E6
CARTOUCHE
au point, X=   6.2488  Y=   6.3658  Z=   0.0000
X facteur d'échelle    1.0000
...
ATTRIBUT  Calque: TITLE
	 Espace: Espace objet
Couleur: 2 (jaune)    Type de ligne: DUCALQUE
...   ... 
hauteur    5.0000
valeur AFFAIRE 3198
étiquette CP_TJNO
...
	
ATTRIBUT  Calque: TITLE
	 Espace: Espace objet
Couleur: 2 (jaune)    Type de ligne: DUCALQUE
Maintien = 4E8
...
	
Commande: (BiB_Attr_Lst (entlast))  retourne

(("CP_TJNO" "AFFAIRE 3198") ("CP_TDWG" "3145AZ") ("CP_TREV" "01")
("CLIENT" "MARTIN & CO") ("REF-CLIENT" "452A") ("TITRE-LIGNE1"
"TRAIN AR") ("TITRE-LIGNE2" "LONGERON 25") ("ECH" "1/50") ("FT" "A3")
("DATE" "01/03/99"))

La fonction


    1- (defun BiB_Attr_Data (*E_Block / l_Attr)
	
    2-   (if (= (cdr (assoc 0 (entget *E_Block))) "INSERT")
    3-     (progn
    4-       (while *E_Block
    5-        (if (= (cdr (assoc 0 (entget *E_Block))) "ATTRIB")
    6-            (setq l_Attr (cons (list (cdr (assoc 2 (entget *E_Block)))
    7-                                     (cdr (assoc 1 (entget *E_Block)))
    8-                               )
    9-                               l_Attr
   10-                         )
   11-            )
   12-	       )
   13-        (setq *E_Block (entnext *E_Block))
   14-       )                                    ;  fin de while
   15-     )                                      ;  fin de progn
   16-   )                                        ;  fin de if
   17-   (reverse l_Attr)
   18-  )
Ligne 2 :  Si l’entité dont le nom est donné en argument est bien un bloc,
Ligne 4 :    - Tant que *E_Block n’est pas nul,
Ligne 5 :      Si la sous-entité du bloc est un attribut (nom associé à 0 = ATTRIB)
Ligne 6 :        Construit une liste l_Attr contenant - l’étiquette (associée au code 2)
Ligne 7 :               - la valeur de l’attribut (associée au code 1)
Ligne 13 :          Passe à la sous-entité suivante
Ligne 14 :       Remonte ligne 5 tant qu’il y a des entités dans le bloc. 
Ligne 17 : Retourne la liste l_Attr après avoir inversé l’ordre des sous-listes..	 
	

Cdr : Renvoie une liste contenant tous les éléments de cette liste sauf le premier.
While : Ici, tant que *E_Block n’est pas nul, évalue les lignes 5 à 13 et répète le processus.
Assoc : Recherche un élément dans la liste d’association et renvoie la liste correspondante
Cons : Construit une liste en y ajoutant au début le nouvel élément
List : Regroupe plusieurs entités dans une liste
Entget : Récupère les données de définition d’une entité
Entnext : Renvoie le nom de l’entité suivante (ici sous-entité du bloc)
Reverse : Renverse l’ordre des éléments dans une liste.