Aller au contenu

Position donnée dans une list...


Messages recommandés

Posté(e)

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)

Posté(e)

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

 

./__\.
(.°=°.)
Posté(e)

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)

Posté(e)

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)

Posté(e)

Salut

Tu peux utiliser un (nth n ma_liste) ou n est une valeur numérique

ex : (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 Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

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)

Posté(e)

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)

Posté(e)

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)

Posté(e)

Oui, bon si tu te sers de reverse, on va donc dire les quatre premiers et les quatre derniers

Et 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 Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

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)

Posté(e)

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 Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

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)

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité