calculating perimeter

Since the last question I asked got taken care superbly I thought I would ask another question. Here where I work we have to calculate cutting inches of a part. What that means is say you have a drawing that contains a rectangle with 50 holes and some slots. What we have to do is take the perimeter/area of each hole, slot, and outside and add them all togehter. It gets very cumbersome if you have a part with 100's of holes. Is there a way to have autocad take the perimeter of every object in a drawing and calculate the sum of the perimeters?

Reply to
Chris
Loading thread data ...

Try this lisp routine, with due acknowledgement to Tee Square Graphics.

Window over the objects you want included. Don't forget that a 'crossing' window will include anything that you cut with the window.

;|

TLEN.LSP - Total LENgth of selected objects (c) 1998 Tee Square Graphics

|;

(defun C:TLEN (/ 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) )

Reply to
Brian Salt

This is the routine I use. It's a free LSP from Tee Square graphics that I modified so it will print the distance on the drawing It will not include blocks.

I use it for exactly what you do. Laser & Waterjet cutting

Jeannette

formatting link

;|

TLEN.LSP - Total LENgth of selected objects (c) 1998 Tee Square Graphics

|;

(defun C:TLEN (/ 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 2

2))) (setq tlen (rtos tl 2 2))

(cond ((boundp 'tlen) (setq cmd (getvar "cmdecho") mno (getvar "menuecho") ) (setvar "cmdecho" 0) (setvar "menuecho" 1) (graphscr) (setq wcl (strcat "Total Cut Length = " tlen)) (setq p1 (getpoint "\nPick the arrowhead position : ")) (if (= p1 nil)(setq p2 nil)(setq p2 (getpoint p1 "\nPick the text position : "))) (if (/= p2 nil)(command "leader" p1 p2 "" wcl "")) (setvar "cmdecho" cmd) (setvar "menuecho" mno) ) ) (princ) )

Reply to
jeannette

SNAP! (:-))

Reply to
Brian Salt

jeannette wrote in news: snipped-for-privacy@4ax.com:

What I also found out yesterday that works good enough for us is if you hatch your part, doesn't matter the style or anything just choose hatch then select the entire part. once the object is hatched, take the area clicking on the hatched area and it will give you total area and total perimeter. I will use the lsp though, thanks alot

Chris

Reply to
Chris

PolyTech Forum website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.