Sum of lengths

Discussion in 'AutoCAD' started by Mike Harrison, Nov 19, 2005.

  1. Is there any way to select several lines on a drawing and have autocad list
    the sum of their lengths?
     
    Mike Harrison, Nov 19, 2005
    #1
  2. Mike Harrison

    Peter Ruehle Guest

    Peter Ruehle, Nov 19, 2005
    #2
  3. Mike Harrison

    Dr Fleau Guest

    Here... have fun..

    (defun c:develop (/ iter devel $a total data1
    stpt endpt distl strad endrad distr
    )
    (setvar "osmode" 0)
    (setq $a nil
    iter 0
    devel 0.0
    stpt nil
    endpt nil
    strad 0.0
    endrad 0.0
    rad 0.0
    distl 0.0
    distr 0.0
    total 0.0
    devel 0.0
    )
    (setq $a (ssget))
    (setq total (sslength $a))
    (while (< 0 total)
    (progn
    (setq data1 (cdr (entget (ssname $a iter))))
    (cond
    ((= (cdr (assoc 0 data1)) "LINE")
    (Progn
    (setq
    stpt
    (cdr (assoc 10 data1))
    endpt
    (cdr (assoc 11 data1))
    )
    (setq distl (abs (distance stpt endpt)))
    (setq devel (+ devel distl))
    ) ;_END PROGN
    ) ;_END COND1
    ((= (cdr (assoc 0 data1)) "ARC")
    (Progn
    (setq
    strad
    (cdr (assoc 50 data1))
    endrad
    (cdr (assoc 51 data1))
    rad
    (cdr (assoc 40 data1))
    )
    (cond
    ((> endrad strad)
    (setq distr (* rad (- endrad strad)))
    )
    ((setq distr (* rad (+ endrad (- (* 2 pi) strad))))
    )
    (t nil)
    ) ;_end COND
    (setq devel (+ devel distr))
    ) ;_END PROGN
    ) ;_END COND2
    (T nil)
    ) ;_END COND
    (setq iter (+ 1 iter))
    (setq total (- total 1))
    ) ;_END PROGN
    ) ;_END WHILE
    (alert (strcat "Longueur totale : " (rtos devel) " unités"))
    (setq $a nil)
    (setvar "osmode" 183)
    ) ;_end DEFUN DEVELOP
     
    Dr Fleau, Nov 21, 2005
    #3
Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.