Coucou,
Je remarque ici que tu as opté pour l'option de sélectionner l'ensemble des objets (en l’occurrence ici les "INSERT") du dessin pour ensuite vérifier si leur point d'insertion est situé dans ta polyligne. Je pense que tu gagneras fortement en efficacité en complexifiant un peu ta fonction de sélection (ssget). En effet, cette fonction possède de très nombreuse possibilités et notamment les mots clés. Tu as écrit (si tu n'oublies pas l'underscore évidemment) :
(ssget "_X" '((0 . "INSERT")))
ce qui se traduit par "sélectionner tout les objets 'INSERT' de la base de donnée du dessin". Or dans ton cas, il serait plus judicieux d'utiliser
(ssget "_CP" pt_list '((0 . "INSERT"))) ;; "_CP" = Crossing Polygon (capture polygonale donc un polygone de sélection vert)
;;ou bien
(ssget "_WP" pt_list '((0 . "INSERT"))) ;; "_CP" = Window Polygon (fenêtre polygonale donc un polygone de sélection bleu)
où 'pt_list' correspond à une liste de coordonnées de points 2D comme ceci par exemple
((23.45 93.01) (-1.00 4.79) (11.15 -13.405))
Autrement dit, fais bien attention au contenu de ta variable 'vertices' et plus exactement à son format ! Car certes c'est une méthode qui semble simple pour récupérer les coordonnées mais en réalité, cela requiert un peu de traitement selon les autres fonctions utilisant ces coordonnées... Normalement tu auras un format comme ceci :
(23.45 93.01 -1.00 4.79 11.15 -13.405)
Ce qui, comme tu peux le voir, ne correspond pas vraiment à une liste de coordonnées de points 2D. Il existe de nombreuses manières pour récupérer la liste des coordonnées d'une polyligne donc je suis sûre que tu trouveras une solution (car après tout tu sembles être surtout là pour apprendre et non pour recopier).
Ainsi, en passant par ces options de sélection ("_CP" ou bien "_WP" selon ton besoin réel) tu peux directement filtrer ta sélection d'objets sur une zone précise de ton dessin, permettant ainsi de ne pas avoir besoin d'étudier les potentiels 10 000 références de blocs contenues dans ton dessin mais de juste se concentrer sur la zone de travail souhaitée (ce qui est beaucoup plus rapide à l'exécution !). Du coup ta fonction (is-point-inside-polyline) n'est plus nécessaire.
Ensuite pour la récupération des attributs d'un bloc, je te conseille les fonctions de LeeMac qui sont vraiment simple d'utilisation et assez simple à comprendre (donc pas besoin de réécrire une fonction par toi-même, des fois on peut se servir de ce qui existe déjà et qui fonctionne très bien ;p) : http://www.lee-mac.com/attributefunctions.html
Ensuite un conseil, si tu débutes en LISP, peut-être qu'avant d'insérer tes résultats dans un tableau AutoCAD (qui sont des entités complexes à maîtriser) tu devrais essayer de trouver une méthode plus simple pour toi en temps que programmeur. Tu peux facilement créer un fichier .csv par exemple (utilisable par Excel). Ou bien trouver d'autres alternatives.
Si tu as besoin de plus de précisions, ou bien d'exemples de programmation plus concrets n'hésites pas à demander ! C'est pour chat qu'on est là, et chat fait toujours plaisir d'aider quelqu'un qui désire apprendre 😜
Bisous,
Luna