Aller au contenu

Additionner les longueurs de plusieurs polylignes


Scod

Messages recommandés

Bonjour,

Voici un petit lisp:

;;; tl cumule les longueurs de polylignes et autre
(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")
         )
         (vl-cmdf "_.area" "_o" itm)
         (getvar "PERIMETER")
        )
        (t 0)
          )
      tl  (+ tl l)
      n   (1- n)
    )
  )
  (alert (strcat "La longueur total est " (rtos tl)))
  (princ)
)

 

Lien vers le commentaire
Partager sur d’autres sites

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • 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é