chris_mtp Posté(e) le 13 octobre 2009 Posté(e) le 13 octobre 2009 Bonjour à tous, Je cherche à convertir une liste de points 2d en 3d avec l'ajout d'un z constant à chaque point de ma liste 2D. J'ai essayé donc de faire une petite fonction mais bug... (defun tri2d3d (lst1 ze / lst2 first xe ye) (while lst1 (setq first (car lst1)) (if (= (length first) 2) (progn (setq xe (nth 0 first)) (setq ye (nth 1 first)) (setq lst2 (cons (list xe ye ze) lst2)) ) (setq lst2 (cons first lst2)) ) (setq lst1 (cdr lst1)) ) ) J'ai tout essayé et serieux je ne vois pas mon erreur ou mon oubli.Je précise que ma liste de départ contient des points 3D et des points 2DMerci par avance de votre aide. John [Edité le 13/10/2009 par chris_mtp]
didier Posté(e) le 13 octobre 2009 Posté(e) le 13 octobre 2009 coucou pour créer une LISTE il faut utiliser la fonction LIST CONS sert à fabriquer des paires pointées ... amicalement [Edité le 13/10/2009 par didier] Éternel débutant... Mon site perso : Programmer dans AutoCAD
Patrick_35 Posté(e) le 13 octobre 2009 Posté(e) le 13 octobre 2009 Salut (defun tri2d3d (lst1 ze) (mapcar '(lambda(a)(append a (list ze))) lst1) ) Exemple(tri2d3d '((1.0 1.0)(5.0 3.0)(8.0 6.0)) 45.0) --> ((1.0 1.0 45.0) (5.0 3.0 45.0) (8.0 6.0 45.0)) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
(gile) Posté(e) le 13 octobre 2009 Posté(e) le 13 octobre 2009 coucou pour créer une LISTE il faut utiliser la fonction LIST CONS sert à fabriquer des paires pointées ... amicalement [Edité le 13/10/2009 par didier] Ce n'est pas tout à fait aussi simple : dans tous les langages LISP (AutoLISP, Common LISP, Scheme...) cons est la fonction primitive de construction des paires pointée, donc des listes.Et car et cdr les fonctions primitives d'accès aux éléments des paires pointées et des listes. Une liste LISP telle qu'on a l'habitude de la voir est en fait construite à partir d'instances d'un type plus primitif : les "cellules cons" (cons cells), qu'on représente sous forme de paires pointées.Pour plus de précisions voir ici et là Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
chris_mtp Posté(e) le 14 octobre 2009 Auteur Posté(e) le 14 octobre 2009 Merci Patrick et Gile pour ces infos.J'ai pu m'en sortir en modifiant ma fonction.John.
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