DenisHen Posté(e) le 19 octobre 2006 Posté(e) le 19 octobre 2006 Bonsoir à tous... Voilà, j'ai une liste avec des coordonnées d'une polyligne. Je sais pas combien de sommets elle a (length). J'ai besoin des deux permiers points et des deux derniers... Pour les deux premiers, j'ai réussi avec (car et (cadr... Mais comment faire pour récupérer les deux derniers, je pensais à une commande lisp existante (surtout que j'ai leurs positions), mais je ne la trouve pas. En gros, ce dois être l'inverse de (vl-position Merci, Denis... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
Tramber Posté(e) le 19 octobre 2006 Posté(e) le 19 octobre 2006 mais non, il y a LAST pour la dernière. Et puis (nth(-(length laliste)2)laliste) retourne l'avant dernier, ...etc. Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
DenisHen Posté(e) le 19 octobre 2006 Auteur Posté(e) le 19 octobre 2006 Merci beaucoup à toi, Tramber... Je me noyais dans des boucles (while pour vider la liste jusqu'à ce qu'il ne reste plus que deux éléments........ Mais alors là ! ! (nth ! ! Merci nth... Ca voudrait dire "énième" en anglais ? Merci encore, Denis... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
(gile) Posté(e) le 19 octobre 2006 Posté(e) le 19 octobre 2006 tu peux aussi faire : (car (reverse lst)) et (cadr (reverse lst)) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
DenisHen Posté(e) le 19 octobre 2006 Auteur Posté(e) le 19 octobre 2006 Par contre, (gile) tu me fais toucher du doigt ma bétise... Je connaissais (reverse, je l'avais dans une routine... Mais elle n'était pas de moi... Merci à vous deux... Je commence seulement à manipuler une liste.... Attention, j'ai dis "je commence"... Et dans "liste", comprenez "toute petite liste" ! ! ;) Encore merci à vous, Denis... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
Patrick_35 Posté(e) le 19 octobre 2006 Posté(e) le 19 octobre 2006 SalutTu peux utiliser un (nth n ma_liste) ou n est une valeur numériqueex : (nth 0 ma_liste) revient à faire un (car ma_liste)et grace au n, tu peux ainsi faire une boucle et parcourir toute ta liste (setq n 0) (while (setq ele (nth n ma_liste)) <-- Tant que la variable ele n'est pas vide bla bla bla (setq n (01+ n)) ) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
DenisHen Posté(e) le 19 octobre 2006 Auteur Posté(e) le 19 octobre 2006 Merci encore... J'ai fais ça : ;return est ma liste de coordonnées (setq p1 (car return) ;premier point p2 (cadr return) ;deuxième point p3 (nth (- (length return) 2) return) ;avant dernier point p4 (last return) ;dernier point ) ;_ Fin de setq J'ai bon ? ;) Je pense que je commence à mieu saisir le code et j'essai de mieu le "synthétiser... Il n'y a pas si longtemp, j'alignais encore les (setq... (setq a 15) (setq b 18) (setq ..... Merci encore à tous, Denis... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
Patrick_35 Posté(e) le 19 octobre 2006 Posté(e) le 19 octobre 2006 (setq p1 (car return) p2 (cadr return) p3 (caddr return) p4 (cadddr return) par contre caddddr ne marche pas ;) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
DenisHen Posté(e) le 20 octobre 2006 Auteur Posté(e) le 20 octobre 2006 Merci Patrick_35, mais celà ne fonctionne que si ma liste comporte 4 éléments... Pour ma routine, ma liste peut en comporter de 2 à une infinité... Si elle en comprte - 2 : p1 et p3 sont confondus et p2 et p4 pareil...- 3 : p2 et p3 sont confondus- 4 ou + : p1 p4 sont 4 points distincts... C'est çà ? Je pense ce sujet résolu... Wais ! ! Merci encore, Denis... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
Patrick_35 Posté(e) le 20 octobre 2006 Posté(e) le 20 octobre 2006 Quatre ou plus, ces fonctions te donne seulement les quatre premiers @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
DenisHen Posté(e) le 20 octobre 2006 Auteur Posté(e) le 20 octobre 2006 Ah bon ? Même ça ? (setq p1 (car return) ;premier point p2 (cadr return) ;deuxième point p3 (nth (- (length return) 2) return) ;avant dernier point p4 (last return) ;dernier point ) ;_ Fin de setq Denis... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
Patrick_35 Posté(e) le 20 octobre 2006 Posté(e) le 20 octobre 2006 Oui, bon si tu te sers de reverse, on va donc dire les quatre premiers et les quatre derniersEt en poussant le bouchon, avec un member on peu en ajouter d'autres ;)Et avec le nth, ceux que l'on souhaite @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
DenisHen Posté(e) le 20 octobre 2006 Auteur Posté(e) le 20 octobre 2006 Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire. Mais faudrait pas qu'il y en ait qui s'amuse à déplacer la mire... Si non, Comment qu'on fait ? ? ;) Merci Patrick_35... Je commence à voir qu'il en faut pas beaucoup pour s'y noyer, dans les listes... D'un autre coté, plus on peu compliquer, plus on a de possibilités... Tu voulais parler d'un truc comme ça ? (setq p1 (car return) ;premier point de la pline p2 (cadr return) ;deuxième point de la pline return (reverse return) ; inversion de la liste p3 (cadr return) ;avant dernier point de la pline p4 (car return) ;dernier point de la pline ) ;_ Fin de setq Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
Patrick_35 Posté(e) le 20 octobre 2006 Posté(e) le 20 octobre 2006 Surtout pas. Je suis pour la simplicitéComme tu as besoin de 4 valeurs, je voulais juste te montrer les fonctions caddr et cadddr au lieu d'un reverse et d'un nth, car pour un même résultat, tu mélanges plusieurs manières de faire Mais faudrait pas qu'il y en ait qui s'amuse à déplacer la mire... Si non, Comment qu'on fait ? ? ;) Pas à droite ni à gauche, je suis d'accord, mais on peux la reculer au fur et à mesure ;) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
DenisHen Posté(e) le 21 octobre 2006 Auteur Posté(e) le 21 octobre 2006 Ah ah... Entièrement d'accord, mais si on la mets trop loin... On ne la voit plus... (m.... je ne sais plus comment on écrit "voi*") ;) Merci encore pour tous ces conseils et toutes ces astuces, Denis... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant