Aller au contenu

sommets d\'une polyligne 3d


Messages recommandés

Posté(e)

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!

 

Posté(e)

 

(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

 

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

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.

Posté(e)

(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

 

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

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!

 

 

 

 

 

Posté(e)

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

)

 

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é