mathilde Posté(e) le 20 octobre 2004 Posté(e) le 20 octobre 2004 J'ai un réseau global constitué de plusieurs réseaux différents EP, EU, UN. Je dois calculer les mètres linéaire par réseau mais j'ai plusieur polylignes. Dans UN j'ai 391 polylignes alors hors-mis Les commandes AIRE ou LISTE avez-vous d'autre d'idées parce que je ne m'en sortirais pas de toutes les calculer.Merci pour vos réponses. :) MATHILDE.
Eric Posté(e) le 20 octobre 2004 Posté(e) le 20 octobre 2004 Salut Mathilde Va voir ce message tu devrais trouver ton bonheur A plus Eric Eric est formateur, revendeur sur AutoCAD LT, DraftSight, ZWCAD, SketchUp et PDF2CAD
didier Posté(e) le 20 octobre 2004 Posté(e) le 20 octobre 2004 helloun petit lisp vite fait,isole ton calque concerné, car j'ai pas mis de contrôles...(setq jeu (ssget) lon (sslength jeu) n 0 LT 0)(repeat lon (setq ent (ssname jeu n)) (command "_area" "ob" ent) (setq L1 (getvar "perimeter") LT (+ L1 Lt) n ( + 1 n) ) )(alert (strcat (itoa n)" Polylignes, Longueur Totale : " (rtos LT 2 2))) amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
MNT Posté(e) le 20 octobre 2004 Posté(e) le 20 octobre 2004 Bonjour, un lisp pour cumuler les distances : ;| TLEN.LSP - Total LENgth of selected objects© 1998 Tee Square Graphics |; (defun C:TL (/ ss tl n ent itm obj l) (setq ss (ssget) tl 0 n (1- (sslength ss))) (while (>= n 0) (setq ent (entget (setq itm (ssname ss n))) obj (cdr (assoc 0 ent)) l (cond ((= obj "LINE") (distance (cdr (assoc 10 ent))(cdr (assoc 11 ent)))) ((= obj "ARC") (* (cdr (assoc 40 ent)) (if (minusp (setq l (- (cdr (assoc 51 ent)) (cdr (assoc 50 ent))))) (+ pi pi l) l))) ((or (= obj "CIRCLE")(= obj "SPLINE")(= obj "POLYLINE") (= obj "LWPOLYLINE")(= obj "ELLIPSE")) (command "_.area" "_o" itm) (getvar "perimeter")) (T 0)) tl (+ tl l) n (1- n))) (alert (strcat "Total length of selected objects is " (rtos tl))) (princ)) Si tu as Covadis Covadis 2D__Listings/Métrés______Métré de réseauxet Covadis va calculer le total des poly par calques et épaisseurs @+ Le Hamac est une science exacte qui ne tolère pas l'amateurisme.
mathilde Posté(e) le 20 octobre 2004 Auteur Posté(e) le 20 octobre 2004 ;) MERCI à vous trois pour votre aide et vos renseignements. :) MATHILDE.
Serge Posté(e) le 20 octobre 2004 Posté(e) le 20 octobre 2004 Mathilde, Ou encore cette routine. Une fois chargée, tu tapes COMPUTEAREA. (defun c:computeArea ( / area endPt i n object objectType perimeter ss totalArea totalPerimeter vla-object ) ;; (setq ss (ssget (list (cons 0 "lwpolyline)))) (setq ss (ssget)) (setq i 0 n (if ss (sslength ss) 0)) (setq area nil totalArea 0 totalPerimeter 0) (while (< i n) (setq object (ssname ss i)) (setq vla-object (vlax-ename->vla-object object)) (if (and (vlax-property-available-p vla-object 'area) (not (vlax-erased-p vla-object))) (progn (setq area (vlax-curve-getArea vla-object)) (setq endPt (vlax-curve-getEndParam vla-object)) (setq perimeter (vlax-curve-getDistAtParam vla-object endPt)) (setq objectType (vla-get-ObjectName vla-object)) (princ (strcat "\nAire de l'objet " objectType " ayant le handle <" (vla-get-handle vla-object) ">: " (rtos area 2 4))) (setq totalArea (+ totalArea area)) (setq totalPerimeter (+ totalPerimeter perimeter)) )) (vlax-release-object vla-object) (setq i (1+ i)) ) (if (> totalArea 0) (princ (strcat "\nAire totale: " (rtos totalArea 2 4)))) (if (> totalPerimeter 0) (princ (strcat "\nPérimètre total: " (rtos totalPerimeter 2 4)))) (princ)) Serge
Krynn Posté(e) le 20 octobre 2004 Posté(e) le 20 octobre 2004 j'adore cette fonction MNT (alert (strcat "Total length of selected objects is " (rtos tl))) mais j'ai adapter cette phrase en (print (strcat "Longueur totale " (rtos tl))) comme ca c'est en francais, je peux faire un copier-coller et je ne suis pas oubliger d'aller cliquer une fois inutilement :D [Edité le 07.04.2004 par Krynn]
Tramber Posté(e) le 20 octobre 2004 Posté(e) le 20 octobre 2004 Serge, C'est bien quand même, le VLA :P Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
Serge Posté(e) le 20 octobre 2004 Posté(e) le 20 octobre 2004 Tramber, J'imagine que ça dépend de ce qu'on cherche. La fonction TL affiche le résultat de la commande AREA et est donc forcément plus lente, mais on parle de millisecondes. La seconde fonction traite les polylignes tel que c'était demandé. On peut l'adapter très facilement. Serge
ribbit Posté(e) le 21 octobre 2004 Posté(e) le 21 octobre 2004 Mathilde, Ca fait plusieurs messages que tu postes qui me font penser qu'on travaille sur le même genre de projets (EU, U, EP, mouse, etc). Peut-etre pourrrait on se mettre en contact ? Je ne sais pas si on peut contacter les gens directement ici ? Ribbit."Une fois qu'on les a découvertes toutes les vérités sont faciles à comprendre; l'essentiel c'est de les découvrir."Version en cours : Autocad Map 2013
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