BiO_Pick

Fonction Catégorie Version
BIO 04 BiO_Pick Gestion Entrées Utilisateur 1.0 - Janvier 2007

Description

But Vérifie si l'entité sélectionnée est du type désiré
Prototype (BiO_Pick Message Type_Entité)
Argument Message : - Message demandant la sélection d'une entité - chaîne -
Type_Entité : - Le type d'entité désiré - chaîne -
Retours Une liste 'Entsel' (le nom de l'entité et le point de sélection) - liste -
Var. globales Néant
Description Affiche un message demandant la sélection d'une entité puis vérifie que l'entité sélectionnée est bien du type désiré.
Notes Le type de l'entité doit correspondre au nom défini dans la codification DXF.
Exemples

Commande: (BiO_Pick "Sélection ligne : " "LINE")
    Sélection ligne : 
    ( (162.445 142.959 0.0))

Commande: (BiO_Pick "Cliquez un cercle :" "CIRCLE")
    Cliquez un cercle : 
Erreur : L'entite selectionnee ne correspond pas !
    Piquez un cercle :
    ( (236.611 84.8906 0.0))

Commande: (BiO_Pick "Piquez un cercle :" "circle")
    Piquez un cercle : 
    Erreur : L'entite selectionnee ne correspond pas ! 
    Piquez un cercle :
Dans ce cas, même si on sélectionne un cercle, la sélection ne sera 
pas acceptée, le type d'entité 'circle' devant être en majuscules.

La fonction


   1- (defun BiO_Pick (*Message *Typ1 / Ent1)  
   
   2-    (setq Ent1 (entsel *Message))
   3-    (if (null Ent1) 
   4-      (BiO_Pick *Message *Typ1) 
   5-      (cond
   6-        ((/= (cdr (assoc 0 (entget (car Ent1)))) *Typ1) 
   7-          (prompt  "\nErreur : L'entite selectionnee ne correspond pas ! ") 
   8-          (BiO_Pick *Message *Typ1)
   9-        ) 
  10-        (T
  11-           (eval 'Ent1)
  12-        )	;   fin de condition  T  ligne 10
  13-      )	;   fin de condition  ligne 5
  14-    )	;   fin de if  ligne 3
  15- ) 

Ligne 2 :  Affiche le message qui demande de sélectionner une entité
Ligne 3 :  S'il n'y a pas d'entité sélectionnée,
Ligne 4 :    reprend la routine au début,
Ligne 5 :    sinon,  condition
Ligne 6 :       Si l'entité sélectionnée est d'un  type différent au 2ème argument,
Ligne 7 :          Donne un message d'erreur
Ligne 8 :          et reprend la routine au début
Ligne 10 :      Dans les autres cas (donc si l'entité correspond au type désiré) 
Ligne 11 :         Evalue l'entité sélectionnée
entsel : demande de sélectionner une entité unique.
assoc : recherche dans les données de Ent1, l'élément associé à 0.
entget : retourne la liste des données d'une entité d'après son nom (ename).
car : retourne le 1er élément de Ent1, c'est-à-dire son 'ename'.
cdr : retourne une liste après y avoir enlevé le 1er élément.
eval : dans ce cas, retourne le 'ename' de l'entité et les coordonnées du point de sélection.