Aller au contenu

sommets d\'une polyligne 3d


MAC

Messages recommandés

Jour à tous!

(mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 10)) (entget (car (entsel)))))

renvoie les sommets d'une sommets polyligne 2d.

Mais comment récupérer les coordonnées des sommets d'une polyligne 3d??.

merci!

bon week!

 

Lien vers le commentaire
Partager sur d’autres sites

 

(setq ent (car(entsel)));selectionne une entité

 

(cdr(assoc 10(entget ent)))

(cdr(assoc 10(entget(entnext ent))))

(cdr(assoc 10(entget(entnext(entnext ent)))))

 

renvoient les points suivant, comme tu peux voir, il faut boucler avec un while.

genre :

 

(while ent

....

....

(setq ent (entnext ent))

)

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

merci pour tes lumieres ça fonctionne comme je voulais.

Ceci amène une nouvelle question: comment dans une boucle avec while

je peux stocker la valeur de chaque boucle pour obtenir au final une liste de

la forme: ((x y z) (x y z) (x y z) ...etc)?

j'ai essayé avec CONS,mais cela ne semble pas etre la bonne solution.

Lien vers le commentaire
Partager sur d’autres sites


(setq listsortie nil)

(while ent
....
(setq   poincalcul(....))
(setq listsortie (append listsortie (list poincalcul)))
(setq ent (entnext ent))
)





Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

Merci encore,Tramber!

Sans ce cite et le dévouement des personnes ici qui prennent le temps de répondre à

d'illustres inconnus comme moi je m'arracherais les cheveux à essayer de comprendre le lisp

et autres subtilités d'autocad et je n'ai jamais autant progressé et eu envie de progresser depuis que je fréquente les "lieux".

A charge de revanche!

 

 

 

 

 

Lien vers le commentaire
Partager sur d’autres sites

c'est classique mais tout de même plus confortable avec la paire (0 . "SEQEND")

 

(defun c:list3D ()

(setq listesortie nil)

(setq ent (entnext (car(entsel))));selectionne une entité / poistionnement au début

 

(while (not (equal (assoc 0 (entget ent)) (cons 0 "SEQEND"))); tant que le dernier point signalé par "seqend" n'est pas rencontré....

 

(setq pointcalcul (cdr (assoc 10 (entget ent)))); renvoi le premier point de la liste

(setq listesortie (append listesortie (list pointcalcul)));Calcule la liste des coordonnées des points de la polyligne

(setq ent (entnext ent));passe à l'entité suivante

)

(textscr)

(list listesortie);affiche la liste

)

 

Lien vers le commentaire
Partager sur d’autres sites

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é