Aller au contenu

Calcul la somme des polylignes


Messages recommandés

Posté(e)

Salut à tous,

 

Quelqu'un aurait-il sous le coude (car je suis sur que ça a déjà été fait) un LiSP qui donnerait la somme des longueurs des polylignes du calque courant ?

 

Je ne sais pas comment faire ce style de LiSP...

 

Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Posté(e)

j'ai ca

il n'y a pas de filtre sur les calques .. mais bon

 

(defun c:cumul	()
 (setq	cumul 0
sel nil
cpx 0)
 (prompt "\nSelection des poly lignes :")
 (setq sel (ssget '((0 . "LWPOLYLINE"))))

 (setq cpx 0)
 (repeat (sslength sel)
   (setq ent (ssname sel cpx))
   (setq obj (vlax-ename->vla-object ent))

   (setq cumul (+ cumul (vla-get-length obj)))

   (setq cpx (+ cpx 1))

   )
 (princ (strcat "\nLongueur :" (rtos cumul 2 2)))

 (princ)
 )

Vous fîtes ce que vous pûtes

et vous m'épatâtes !!!!

Posté(e)

Salut,

 

Merci, je prend...

 

Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Posté(e)

Salut,

 

Pour avoir directement le cumul sur le calque courant (sans sélection par l'utilisateur) :

 

(defun c:cumul ()
 (princ
   (strcat "\nLongueur cummulée des polylignes sur le calque '"
    (getvar 'clayer)
    "' : "
    (rtos (polyLengthByLayer (getvar 'clayer)))
   )
 )
 (princ)
)

(defun polyLengthByLayer (layer / len ss)
 (vl-load-com)
 (or *acdoc* (setq *acdoc* (vla-get-ActiveDocument (vlax-get-acad-object))))
 (setq len 0)
 (if (ssget "_X" (list '(0 . "lwpolyline") (cons 8 layer)))
   (progn
     (vlax-for	pl (setq ss (vla-get-ActiveSelectionSet *acdoc*))
(setq len (+ len (vla-get-Length pl)))
     )
     (vla-Delete ss)
   )
 )
 len
)

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

Salut à tous

 

Et merci... J'ai exactement ce qu'il me faut...

 

Encore merci,

 

Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

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é