gilles Posté(e) le 10 mars 2004 Posté(e) le 10 mars 2004 Bonsoir,je cherche le moyen de connaitre la somme de toutes les longueurs des polylignes qui sont sur un même calque.merci de votre aide
Tramber Posté(e) le 10 mars 2004 Posté(e) le 10 mars 2004 Pas évidant sans programmation.Ceci dit, filtres tes objets et lance LISTE sur cette sélection.Il faudra sans doute taper plusieurs fois ENTREE pour avancer. Ensuite, copie-colle tout ca dans un fichier texte et taches de trouver une solution pour repérer le mot "périmètre 600.0" et le faire lire par une routine. La fonction RECHERCHER pourra t'aider dans Excel, je pense, mais je ne suis pas un pro des produits Microsoft ;) Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
didier Posté(e) le 10 mars 2004 Posté(e) le 10 mars 2004 bonsoir GillesCe qui suit va solutionner ton problèmechaque ligne est expliquée, pour être utilisée ultérieurement (defun routinegilles () ;quel calque est concerné ? (setq CalqueTraite (getstring "\nNom du Calque à Traiter\n")) ;la variable "dec", est la précision du fichier actuel (setq dec (getvar "luprec")) ;initialisation de la longueur (setq longueur 0) ;création d'un jeu de sélection des polylignes(lw) sur le calque choisi (setq jeusel (ssget "X" (list (cons 0 "LWPOLYLINE") (cons 8 CalqueTraite)) ) ) ;initialisation du compteur d'entité (setq n 0) ;combien y a t'il d'entité dans le jeu de sélection (setq lonsel (sslength jeusel)) ; à faire autant de fois qu'il y a d'entité dans le jeu de sélection (repeat lonsel (setq ent (ssname jeusel n)) (command "aire" "ob" ent) (setq longueurtempo (getvar "perimeter")) (setq longueur (+ longueur longueurtempo)) (setq n (+ 1 n)) ) ;affichage d'un message annonçant le résultat (alert (strcat "Le cumul des longueurs des POLYLIGNES du Calque : " calquetraite "\nest de : " (rtos longueur 2 dec) ) ) (princ))ben voilà, yaplukalispement votreil n'y a pas de fioritures mais c'est efficace. :yltype: Éternel débutant... Mon site perso : Programmer dans AutoCAD
gilles Posté(e) le 10 mars 2004 Auteur Posté(e) le 10 mars 2004 Un mot pour dire merci à Didier.Ca marche du tonnerre.
Tramber Posté(e) le 11 mars 2004 Posté(e) le 11 mars 2004 Excellent le coup du perimetre qui se glisse dans un variable après AIRE, je savais pas ! Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
Tramber Posté(e) le 22 mars 2004 Posté(e) le 22 mars 2004 J'ai testé PERIMETER et ca marche pour indiquer la longueur d'une polyligne après LISTE mais ca ne marche pas sur une Ligne simple. A bon entendeur Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
didier Posté(e) le 22 mars 2004 Posté(e) le 22 mars 2004 hello Tramberben non area ne fait pas tout !!!pour la longueur d'une ligne simple(setq ent(car(entsel"\nQuelle Ligne ?\n")))(setq PointDepart (cdr(assoc 10 (entget ent))))(setq PointArrivee(cdr(assoc 11(entget ent))))(setq LongueurDeLaLigne (distance PointDepart PointArrivee))sinon pour l'amusement j'ai balancé quelque part en réponseune formule qui calcule aussi bien la Distance 2Dcar ce que je te propose c'est la 3Dsi les points ont des Z, "distance" en tient comptesi je savais faire des liens, je te mettrai ma réponse,mais les liens, tu sais ce que c'est, çà va çà vient...amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
Tramber Posté(e) le 22 mars 2004 Posté(e) le 22 mars 2004 C'est un peu comme un biorythme (blague perso) ;) Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
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