Pour obtenir une liste (LIST)
de définition d'entité
Cette fonction va générer une liste (list) de la définition de l'entité choisie
Syntaxe : | (entget nom-entité [applist]) |
Argument | nom-entité(ename) nom de l'entité à interroger, cela peut être un objet graphique ou non-graphique. Applist nom d'application (optionnel) |
Valeur retournée | une liste (LIST) de toute la définition de l'entité,
si on renseigne applist, ENTGET renvoie aussi les données étendues de l'application spécifiée. |
Voir en annexe la liste des définitions DXF pour comprendre chaque élément de la liste obtenue sous forme de liste composée de paires pointées (dotted pair)
Dans l'exemple qui suit, si vous dessinez préalablement dans AutoCAD (interface graphique) une ligne du point x=10, y=20 au point x=12, y=22, vous obtiendrez les valeurs suivantes en appliquant cette syntaxe de entget qui prend entlast comme argument (voir les chapitres les concernant)
Syntaxe | Valeur renvoyée |
((-1 . <Nom d'entité: 7ffffb2bc70>) (0 . "LINE") (330 . <Nom d'entité: 7ffffb179f0>) (5 . "AAF") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (100 . "AcDbLine") (10 10.0 20.0 0.0) (11 12.0 22.0 0.0) (210 0.0 0.0 1.0)) |
Le type de la variable ent est ename, comme "nom d'entité" en français.
Cette valeur de ename est un code alphanumérique qui situe l'entité dans la base de données qu'est le fichier DWG, cette valeur de ename changera à chaque fermeture du fichier DWG, à la prochaine ouverture un autre code sera attribué à l'entité.
Pour obtenir la définition d'une entité en la sélectionnant à l'écran :
(setq ent (entget (car (entsel "\nChoix de l'entité\n")))) |
La variable ent contiendra :
((-1 . <Nom d'entité: 7ffffb2bc70>) (0 . "LINE") (330 . <Nom d'entité: 7ffffb179f0>) (5 . "AAF") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (100 . "AcDbLine") (10 10.0 20.0 0.0) (11 12.0 22.0 0.0) (210 0.0 0.0 1.0))
Codes DXF principaux | Explications |
(0 . "LINE") | Type d'entité |
(5 . "AAF") | Identificateur |
(8 . "0") | Calque |
(10 10.0 20.0 0.0) | liste des coordonnées du point de départ |
(11 12.0 22.0 0.0) | liste des coordonnées du point de fin |
Voir la fonction ASSOC pour accéder aux paires pointées (dotted pair). |
Cas d'utilisation de l'option APPLIST :
Les "XDATA" sont des informations annexées aux entités AutoCAD, elles peuvent être de type numérique ou textuel entre autres.
Elles ne sont pas utilisées très fréquemment mais il ne faut pas les ignorer pour autant.
Dans l'exemple qui suit, j'ai dessiné une simple ligne à l'écran, en tapant la commande XDATA, j'ai créé une application du nom de didier, et j'ai entré une chaîne de caractères en choisissant l'option ST, dans le cas présent j'ai rentré le mot "canalisation".
Si lors de l'appel à (entget) je renseigne le nom de l'application, "didier" en l'occurrence, (entget) donnera en plus des renseignements vus plus haut les données XDATA relatives à l'application
Exemple :
Pour que la variable ent stocke le nom de l'entité :
(setq ent (car (entsel "\Choix de l'entité\n"))) |
La variable liste-entité contient tous les renseignements "normaux" obtenus par la fonction (entget) sans appel de l'option APPLIST :
(setq liste-entité (entget ent)) |
Valeur renvoyée :
((-1 . <Nom d'entité: 7ffffb0fce0>) (0 . "LINE") (330 . <Nom d'entité: 7ffffb039f0>) (5 . "BAE") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (100 . "AcDbLine") (10 1967.75 1186.77 0.0) (11 2335.61 1326.64 0.0) (210 0.0 0.0 1.0))
Maintenant si on veut connaître les données étendues (XDATA) :
(setq liste-entité-plus (entget ent '("didier"))) |
La variable liste-entité-plus contient tous les renseignements "normaux"
mais aussi les données étendues mises en évidence en bleu dans la liste suivante :
((-1 . <Nom d'entité: 7ffffb0fce0>) (0 . "LINE") (330 . <Nom d'entité: 7ffffb039f0>) (5 . "BAE") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (100 . "AcDbLine") (10 1967.75 1186.77 0.0) (11 2335.61 1326.64 0.0) (210 0.0 0.0 1.0) (-3 ("DIDIER" (1002 . "{") (1000 . "canalisation") (1002 . "}"))))
Si l'entité ne contient pas de XDATA, la liste normale de l'entité est renvoyée sans erreur spécifiant l'absence de XDATA.
retour au menu Modification des entités
26 mai 2017,
mis à jour le 01 juin 2019