rimbo Posté(e) le 18 mars 2004 Posté(e) le 18 mars 2004 Les différentes longueurs des lignes que tu veux mesurer,sont les "CORDES" de l'arc.la première est la liaison entre les deux extrémités de l'arcla deuxième est la première 10 centimètres plus haut et ainsi de suite ... et on va faire un joli tableau pour la réponse. didier avait bien compris ainsi que patrick_35, voir plus haut. j'ai modifié avec les infos le prog pour arriver à ça, mais la liste ort sous autocad et non sur un fichier texte créer ???? (defun c:lligne(/ ent entselec n pa pd) (setq ent (ssget)) (setq l (open "c/Documents and Settings/lperrin/Mes documents/text ligne.txt" "w")) (if ent (progn (setq n 0) (while (ssname ent n) (setq entselec (entget (ssname ent n))) (if (= (cdr (assoc 0 entselec)) "LINE") (progn (setq pd (cdr (assoc 10 entselec))) (setq pa (cdr (assoc 11 entselec))) (setq longueurent (distance pd pa)) ;;;;;; (alert (strcat "La longeur de l'entité " (itoa n) " est de ")) (write-line (rtos longueurent) l) ) ) (setq n (1+ n)) ) ) ) (close "c/Documents and Settings/lperrin/Mes documents/text ligne.txt" ) (princ) ) Mais le problème vient de ce compliquer : je vais essayer d'être clair.... toutes ces cordes sont placer l'axe Y. Pour toutes les cordes qui passent sur le même axe Y il me faut l'addition de toutes ces cordes de même altitudes sur l'ensemble du projet... ex : sur la coordonnée Y (0,9.10) il me faut l'ensemble des cordes passant par cette coordonnée. Il me faudrait donc en plus de récupérer les longueurs de chaque corde, récupérer aussi la valeur Y et additionner toutes les longueurs qui ont un Y identiquesje vois a peut près comment faire mais ces les conditions ou je sèche un peu Merci si le coup de main et possible... Cordialement Lionel PERRIN | Ingénieur/Consultant Formateur expert Infrastructure - Géomédia Civil 3D/Covadis/Autopiste/Infraworks 360 - VRD/Infrastructure routière ferroviaire Bus TRAM
didier Posté(e) le 18 mars 2004 Posté(e) le 18 mars 2004 eh Rimbo,là, j'ai pas le temps, de mon côté il y a le feu...ce soir je m'occupe de ton problèmeenvoie moi un mail persoqui décortique bien ce que tu veux fairecar la routine que je t'ai faite tient compte des alti,donc on y est presqueciao Éternel débutant... Mon site perso : Programmer dans AutoCAD
rimbo Posté(e) le 18 mars 2004 Auteur Posté(e) le 18 mars 2004 bon on vient de trouver une commande sous covadis qui gère les listes de polyligne avec coordonnées et longueur.Je vais voir avec ça pour le moment.Dors ce soir et profite de te poser un peu didier, faut pas faire une surchauffe merci et je te tiens au courant demain.Si tu peux me renvoyer un mail, car les joies des messagerie ma perdu ton adresse merci ;) Cordialement Lionel PERRIN | Ingénieur/Consultant Formateur expert Infrastructure - Géomédia Civil 3D/Covadis/Autopiste/Infraworks 360 - VRD/Infrastructure routière ferroviaire Bus TRAM
rimbo Posté(e) le 19 mars 2004 Auteur Posté(e) le 19 mars 2004 voila l'amélioration mais ça beugue!!!! (defun c:lligne(/ ent entselec n pa pd) (setq ent (ssget)) (setq l (open "c:/Documents and Settings/lperrin/Mes documents/text ligne.txt" "w")) (if ent (progn (setq n 0) (while (ssname ent n) (setq entselec (entget (ssname ent n))) (if (= (cdr (assoc 0 entselec)) "LINE") (progn (setq pd (cdr (assoc 10 entselec))) (setq pa (cdr (assoc 11 entselec))) (setq yd (cdr (assoc 20 entselec))) la je veux extraire la coordonnée Y (setq longueurent (distance pd pa)) ;;;;;; (alert (strcat "La longeur de l'entité " (itoa n) " est de ")) (write-line (rtos longueurent yd) l) ) ) (setq n (1+ n)) ) ) ) (close l) (princ) )Ca bloque encore et je ne sais pas vraiment si je peux mettre plus de condition....Le mieux pour récupérer plusieurs info le mieux c'est cond ou if Cordialement Lionel PERRIN | Ingénieur/Consultant Formateur expert Infrastructure - Géomédia Civil 3D/Covadis/Autopiste/Infraworks 360 - VRD/Infrastructure routière ferroviaire Bus TRAM
didier Posté(e) le 19 mars 2004 Posté(e) le 19 mars 2004 bonjour Rimbo sans savoir ce que tu fait,pour "pa" c'est ok : (setq pa (cdr (assoc 11 entselec)))en revanche je vois un souci sur cette ligne : (setq yd (cdr (assoc 20 entselec))) la je veux extraire la coordonnée Ypour extraire le "y" du point, il s'agit du deuxième champ de la liste "pa"donc :(setq yd (cadr pa))essaie çà, et continue sur le chemin obscur du Lisp :D si tu veux, on voit çà ce week endamicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
rimbo Posté(e) le 19 mars 2004 Auteur Posté(e) le 19 mars 2004 merci pour le coup de main, le week end j'aimerai bien mais j'ai pas de PC suffisament puissant pour avoir internet chez moi et encore moin pour autocad.je fais tout du bureau et ce soir je vais rester assez tard.tu comprend toujours pas ce que je veux faire....je dois etre vraiment lourd alors. j'essaie a nouveau : as-tu reçu mon dernier plan 03064_PROFILS-3 ou tu n'as plus que les arcs et les cordes.Je veux extraire les longueurs de chaque cordes et son Y. ensuite soit je demande au programme de faire l'addition de toutes les cordes ayant une coordonnée Y identiques soit je met le tout sous un tableau excel et je fais moi même l'addition des cordes qui ayant une coordonnée Y identique ça va mieux là, ou alors on s'apelle.... Cordialement Lionel PERRIN | Ingénieur/Consultant Formateur expert Infrastructure - Géomédia Civil 3D/Covadis/Autopiste/Infraworks 360 - VRD/Infrastructure routière ferroviaire Bus TRAM
rimbo Posté(e) le 19 mars 2004 Auteur Posté(e) le 19 mars 2004 premiere solution que je compte bien complété : (defun c:lligne(/ ent entselec n pa pd yd) (setq ent (ssget)) (setq l (open "c:/Documents and Settings/lperrin/Mes documents/text ligne.txt" "w")) (if ent (progn (setq n 0) (while (ssname ent n) (setq entselec (entget (ssname ent n))) (if (= (cdr (assoc 0 entselec)) "LINE") (progn (setq pd (cdr (assoc 10 entselec))) (setq pa (cdr (assoc 11 entselec))) (setq longueurent (distance pd pa)) (setq yd (cadr pa)) ;;;;;; (alert (strcat "La longeur de l'entité " (itoa n) " est de ")) (write-line (strcat (rtos longueurent) "," (rtos yd)) l) ) ) (setq n (1+ n)) ) ) ) (close l) (princ) )ça marche très bien, prochaine étape addition de toutes les cordes ayant une coordonnées Y identiques. Cordialement Lionel PERRIN | Ingénieur/Consultant Formateur expert Infrastructure - Géomédia Civil 3D/Covadis/Autopiste/Infraworks 360 - VRD/Infrastructure routière ferroviaire Bus TRAM
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