N° |
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.