CAD Forum - Database of tips, tricks and utilities for AutoCAD, Inventor and other Autodesk products [www.cadforum.cz]
CZ | EN | DE
Login or
registration
  Visitors: 8376
RSS channel - CAD tips RSS tips
RSS discussions

Discussion Discussion forum

 

HelpCAD discussion

 
CAD Forum - Homepage CAD discussion forum - ask any CAD-related questions here, share your CAD knowledge on AutoCAD, Inventor, Revit and other Autodesk software with your peers from all over the world. To start a new topic, choose an appropriate forum.

Please abide by the rules of this forum.

How to post questions: register or login, go to the specific forum and click the NEW TOPIC button.
  FAQ FAQ  Forum Search   Events   Register Register  Login Login

Topic ClosedMULTIPLE LINE LENGTHS SUMMATION

 Post Reply Post Reply Page  12>
Author
Vladimir Michl View Drop Down
Moderator Group
Moderator Group

Arkance Systems CZ

Joined: 26.Jul.2007
Location: Czech Republic
Using: Autodesk software
Status: Offline
Points: 2018
Direct Link To This Post Topic: MULTIPLE LINE LENGTHS SUMMATION
    Posted: 28.May.2016 at 11:48
Vladimir Michl (moderator)
Arkance Systems - arkance-systems.cz - Autodesk reseller
Back to Top
jmontesmx View Drop Down
Senior Member
Senior Member


Joined: 28.Jan.2008
Location: Mexico
Using: AutoCad2017
Status: Offline
Points: 113
Direct Link To This Post Posted: 27.May.2016 at 20:18

;;; J.A.
;;; www.jorgeanjos.com
;;; www.cadtom.com

;;; VER 1.0 - 2002-09-02
;;; VER 2.0 - 2009-08-28

;;; Begin Sumper.lsp - Application to calculate the length of selected objects

(defun C:SUMPER (/   VADEC    VALLPRC  GLG      SSLEN    TPNAM
   LGNAM   LGSTOTAL LGTOTAL  TERM     TXSTOTAL TXTOTAL
   TESTE
  )

  (setq VADEC (getvar "cmdecho"))
  (setvar "cmdecho" 0)
  (command "undo" "begin")
  (setq VALLPRC  (getvar "luprec")
 LGSTOTAL 0.0
 TERM  0
  )
  (mlen)
  (while (/= TERM nil)
    (progn
      (mlen)
    )
  )
  (setq TXTOTAL (rtos LGSTOTAL 2 VALLPRC))
  (princ "\n»» Total = ")
  (princ TXTOTAL)
  (command "undo" "end")
  (setvar "cmdecho" VADEC)
)

;;;
;;;

(defun MLEN ()

  (princ "\n»» Select entities to calculate the length: \n")
  (terpri)
  (setq GLG (ssget))
  (if GLG
    (progn
      (setq SSLEN (sslength GLG))
      (while (> SSLEN 0)
 (setq TPNAM  (ssname GLG (setq SSLEN (1- SSLEN)))
       ENTGT  (entget TPNAM)
       ENTLAY (cdr (assoc 0 ENTGT))
 )
 (if (equal ENTLAY "LINE")
   (setq TESTE 1)
 )
 (if (equal ENTLAY "POLYLINE")
   (setq TESTE 1)
 )
 (if (equal ENTLAY "LWPOLYLINE")
   (setq TESTE 1)
 )
 (if (equal ENTLAY "CIRCLE")
   (setq TESTE 1)
 )
 (if (equal ENTLAY "ARC")
   (setq TESTE 1)
 )
 (if (equal ENTLAY "SPLINE")
   (setq TESTE 1)
 )
 (if (equal ENTLAY "ELLIPSE")
   (setq TESTE 1)
 )
 (if (equal TESTE 1)
   (progn
     (command "lengthen" TPNAM "")
     (setq LGTPNAM  (getvar "PERIMETER")
    LGSTOTAL (+ LGTPNAM LGSTOTAL)
    TESTE    0
     )
   )
 )
      )
    )
    (princ "\n»» No entity was selected: \n")
  )
  (setq TXSTOTAL (rtos LGSTOTAL 2 VALLPRC))
  (initget "Add")
  (princ "\n»» Subtotal = ")
  (princ TXSTOTAL)
  (terpri)
  (setq TERM
  (getkword " [A] Add more entities or <Enter> to finish:  ")
  )
)
(princ "\n»» Type 'SUMPER' to start application ")

     ; END Sumper.lsp

Back to Top
jmontesmx View Drop Down
Senior Member
Senior Member


Joined: 28.Jan.2008
Location: Mexico
Using: AutoCad2017
Status: Offline
Points: 113
Direct Link To This Post Posted: 27.May.2016 at 20:15
This can help you too, I ask the same thing some time ago
Back to Top
Kent Cooper View Drop Down
Senior Member
Senior Member


Joined: 12.Mar.2013
Location: United States
Using: AutoCAD2020, 2023
Status: Offline
Points: 629
Direct Link To This Post Posted: 27.May.2016 at 16:51
Originally posted by Ikenna Ikenna wrote:

... the issue is that it gives the summations in feet and inches. Secondly, it doesn't select arcs for summation.
It's odd that the description at the linked page mentions Arcs, but in fact the routine isn't written to accept them.  You can change that to include them, and far more entity types, by changing this line:
  (setq sset (ssget '((0 . "LINE,LWPOLYLINE")))
to this:
 
  (setq sset (ssget '((0 . "LINE,*POLYLINE,ARC,CIRCLE,ELLIPSE,SPLINE")))
 
BUT since not all of those entity types have the same "length" VLA property [some have one but under a different name], you would also have to change this line:
 
   (vla-get-length (vlax-ename->vla-object (ssname sset num)))
 
to this:
 
   (vlax-curve-getDistAtParam (setq ent (ssname sset num)) (vlax-curve-getEndParam ent))
 
which will find the length of any (vlax-curve-...)-compatible entity, open or closed.
 
And you can have it report in whatever Units you like.  Change this:
 
     llen (rtos llen 4)
which reports in Architectural units [the 4] to just:
 
     llen (rtos llen)
 
if you want it to report in whatever your current Units and Precision settings are, or use other values for units and precision in the (rtos) function, to suit your requirements.
[Also, I would change the (alert) to use a word like "object" instead of "line."]


Edited by Kent Cooper - 27.May.2016 at 16:52
Back to Top
John Connor View Drop Down
Senior Member
Senior Member


Joined: 01.Feb.2011
Location: United States
Using: AutoCAD 2018
Status: Offline
Points: 7175
Direct Link To This Post Posted: 27.May.2016 at 15:09
You're welcomed.  Glad to hear you found something that suits your needs.
"Humans have a strength that cannot be measured. This is John Connor. If you are reading this, you are the resistance."

<<AutoCAD 2015>>

Back to Top
Ikenna View Drop Down
Newbie
Newbie


Joined: 13.May.2016
Location: Nigeria
Using: AutoCAD2013
Status: Offline
Points: 6
Direct Link To This Post Posted: 27.May.2016 at 14:53
Sorry, I meant 'summation was given in metric units'. Yes, I got it in millimetres.
Back to Top
Ikenna View Drop Down
Newbie
Newbie


Joined: 13.May.2016
Location: Nigeria
Using: AutoCAD2013
Status: Offline
Points: 6
Direct Link To This Post Posted: 27.May.2016 at 14:35
John, thanks very much. I tried it and it worked perfectly. Everything was calculated - lines and arcs!, and the summation was given in metres!! Thanks again.Smile
Back to Top
John Connor View Drop Down
Senior Member
Senior Member


Joined: 01.Feb.2011
Location: United States
Using: AutoCAD 2018
Status: Offline
Points: 7175
Direct Link To This Post Posted: 27.May.2016 at 12:14
You should have tried Lee Mac's program.

http://www.lee-mac.com/totallengthandarea.html
"Humans have a strength that cannot be measured. This is John Connor. If you are reading this, you are the resistance."

<<AutoCAD 2015>>

Back to Top
Ikenna View Drop Down
Newbie
Newbie


Joined: 13.May.2016
Location: Nigeria
Using: AutoCAD2013
Status: Offline
Points: 6
Direct Link To This Post Posted: 27.May.2016 at 11:58
Thanks very much Kent. I just tried this method and it worked! But the issue is that it gives the summations in feet and inches. Secondly, it doesn't select arcs for summation.
Back to Top
Ikenna View Drop Down
Newbie
Newbie


Joined: 13.May.2016
Location: Nigeria
Using: AutoCAD2013
Status: Offline
Points: 6
Direct Link To This Post Posted: 27.May.2016 at 11:39
Thanks so much John. Let me check it out.
Back to Top

Related CAD tips:


 Post Reply Post Reply Page  12>
  Share Topic   

Forum Jump Forum Permissions View Drop Down



This page was generated in 0,561 seconds.