BiB_Vertices

Fonction Catégorie Version
BIB 01 BiB_Vertices Gestion des Objets 1.0 - Janvier 2007

Description

But Recherche les sommets d'une polyligne.
Prototype (BiB_Vertices Nom_Poly)
Argument Nom_Poly - Le nom (ename) de la polyligne - ename -
Retours Liste de coordonnées.
Var. globales Néant
Description Retourne les coordonnées des sommets (vertex) d'une polyligne
Notes
Exemples

Command: (BiB_Vertices (entlast))	
retourne
((275.0 170.0 0.0) (335.0 160.0 0.0) (335.0 115.0  0.0) (295.0 90.0 0.0))

Command: (BiB_Vertices (entlast))	autre possibilité
	L'entité sélectionnée n'est pas une polyligne. nil 

La fonction


 1-  (defun BiB_Vertices (*PolyName / Ent1 Ent2 Pt1 Pt2)

 2-     (if (= (cdr (assoc 0 (entget *PolyName))) "POLYLINE")			
 3-       (progn		
 4-         (setq Ent1 (entnext *PolyName))		
 5-         (while		
 6-             (setq Ent2 (entget Ent1)		
 7-	                  Pt1 (cdr (assoc 10 Ent2))		
 8-             )
 9-             (setq Pt2 (cons (trans Pt1 *PolyName 1) Pt2)			
10-	                  Ent1 (entnext Ent1)		
11-             )
12-         )		
13-       )	
14-       (princ "\nL'entité sélectionnée n'est pas une polyligne.")
15-     )
16-     (reverse Pt2)	
17-  )
Ligne 2 :  retourne le second élément de la liste associée à 0 dans la liste de données 
                     de l'argument et vérifie que c'est "POLYLINE".
Ligne 3 :	 si oui,
Ligne 4 :       Entité suivante : 1er sommet >> son nom est conservé dans Ent1
Ligne 5 :       Boucle tant que :   ('il y a des sommets)
Ligne 6 :          récupère les données du sommet 
Ligne 7 :          retourne la liste associée à 10  dans la liste de données de Ent2, 
                     en supprimant le 1er élément (il reste les coordonnées du sommet)
Ligne 9 :          construit la liste de retour - Transfère le point 3D Pt1 du système 
                   de coordonnées de *Polyname dans le scu courant ; puis ajoute ce point 
                   Pt1 dans la liste Pt2, après l'avoir construite si elle n'existait pas.
Ligne 10 :       Récupère le sommet suivant 
Ligne 12 :    fin de boucle - remonte ligne 6 si un autre sommet
Ligne 14 :  si non (ligne 2)  affiche le message d'erreur.
Ligne 16 :  Inverse la liste pour avoir le bon ordre. En ligne 9, la fonction cons ajoute 
            le nouveau point en début de liste, donc dans l'ordre inverse à la création.

Cdr : Renvoie tous les éléments d'une liste après y avoir retiré le premier.
Assoc : Recherche un élément dans une liste d'association et renvoie la valeur correspondante.
Entget : Récupère les données de définition d'une entité.
Entnext : Renvoie le nom (ename) de l'entité suivante (ici, sommet suivant).
Cons : Construit une liste.
Trans : Transfère un point d'un système de coordonnées à un autre.
Reverse : Inverse l'ordre des éléments d'une liste.