Jump to content

Linetype length calculator


RyanAtNelco

Recommended Posts

  • Replies 48
  • Created
  • Last Reply

Top Posters In This Topic

  • Lee Mac

    17

  • RyanAtNelco

    17

  • Commandobill

    11

  • stevesfr

    3

Lee if yours was to put the values of several line types into a table it would be absolutly perfect i would imagine a lot of people would be able to use this to save a lot of time.

 

Now that's something I'm new to... having worked on '04 pretty much the whole time, I have never coded for a table in CAD... but I'll see what it entails..

Link to comment
Share on other sites

LeeMac - thanks a bunch, however i only get a message saying: >

 

there are def. continuous lines in the drawing, and i tried this with my custom linetype as well with no luck :(

 

One more thing - just to clarify, are we definitely dealing with ALL *LINES - i.e. POLYLINES, LWPOLYLINES and LINES?

Link to comment
Share on other sites

Yes that would be ideal.

 

Also i know this is probably difficult to code, but in the perfect world:

 

run script

 

select/type-in several line types

 

table generated showing each linetype's length in units, length in (units/12), and length in (units/48)

Link to comment
Share on other sites

Late entry. :)

;;=============================================================
;;     LtLength.lsp by Charles Alan Butler 
;;            Copyright 2008           
;;   by Precision Drafting & Design All Rights Reserved.
;;        Contact CAB at TheSwamp.org   
;; 
;;    Version 1.0 Beta  April 4,2008 
;;
;;  Total Length by linetype
;;  Totals length with ByLayer & layer has matching linetype
;;=============================================================
(defun c:LTLength (/  ent col Ltype Ltypes layers ss lt:lst lt:prompt ss:first
              elst filter lay:lst x ent:lst total cnt get_layer get_layerByLT)
 (vl-load-com)
 ;;  return a list of layers using the linetype in the list
 ;;  lt:lst is a list of LineType names
 (defun get_layerByLT (lt:lst / lay lays doc)
   (setq doc (vla-get-activedocument (vlax-get-acad-object)))
   (vlax-for lay (vla-get-layers doc)
     (if (and (member (vla-get-linetype lay) lt:lst)
              (not (vl-string-search "|" (vla-get-name lay)))
         )
       (setq lays (cons (vla-get-name lay) lays))
     )
   )
   lays
 )


 ;;  =================================================================
 ;;                       Main Routine                                
 ;;  =================================================================
 (setq ent_allowed '("LINE" "LWPOLYLINE" "POLYLINE" "SPLINE" "ARC" "CIRCLE" "DIMENSION"))
 ;;  get anything already selected
 (setq ss:first (cadr(ssgetfirst))
       ss (ssadd))

 ;;  Get user selected linetypes
 (if ss:first
   (setq lt:prompt "\nSelect the object to choose linetype to use.")
   (setq lt:prompt "\nSelect object for linetype filter.")
 )
 ;;------------------------------------------------------------------
 (while (setq ent (entsel lt:prompt))
   (redraw (car ent) 3) ; highlite the object
   (setq ent:lst (cons (car ent) ent:lst))
   (setq Ltype(cdr(assoc 6 (entget (car ent))))); get the lineType
   (if (null Ltype) ; LT is ByLayer, get layer LT
     (setq Ltype(cdr (assoc 6
                           (tblsearch "layer"
                                    (cdr (assoc 8 (entget (car ent))))))))
   )
   (setq lt:lst (cons Ltype lt:lst))
   ;;(prompt (strcat "\n*-* Selected Color # -> " (get_color_name col)))
 )
 ;;------------------------------------------------------------------
 ;;  Un HighLite the entities
 (and ent:lst (mapcar '(lambda (x) (redraw x 4)) ent:lst))
 (if (> (length lt:lst) 0); got LT to work with
   (progn
     (setq lt:lst (vl-sort lt:lst '<)) ; removes douplicates
     (setq Ltypes "" layers "")
     (setq lay:lst (get_layerByLT lt:lst)) ; get layers using the LineType
     (foreach itm  lt:lst ; combine linetype names into one , del string
       (setq Ltypes (strcat Ltypes itm ",")))
     (setq Ltypes (substr Ltypes 1 (1- (strlen Ltypes)))); remove the last ,
     (foreach itm  lay:lst ; combine layer names into one , del string
       (setq layers (strcat layers itm ",")))
     (setq layers (substr layers 1 (1- (strlen layers)))); remove the last ,
     ;;==============================================================
     (if ss:first ; ALREADY GOT SELECTION SET
       (while (setq ent (ssname ss:first 0))
         (setq elst (entget ent))
         (if (or (and (assoc 6 elst) ; got a LT
                      (member (abs (cdr(assoc 6 elst))) lt:lst)) ; LT match
                 (and layers
                      (member (cdr(assoc 8 elst)) lay:lst)
                      (or (null (assoc 6 elst))
                        (= (cdr(assoc 62 elst)) 256)))  ; bylayer
                 )
           (ssadd (ssname ss:first 0) ss)
         )
         (ssdel (ssname ss:first 0) ss:first)
       )
       ;; else get a selection set to work with
       (progn 
         (prompt (strcat "\nOK >>--> Select objects for Selection set or "
                         "ENTER for All objects with LineType(s) " Ltypes))
         ;;  create the filter
         (if layers
           (setq filter (append
                          (cons '(-4 . "<OR") (mapcar '(lambda (x) (cons 6 x)) lt:lst))
                          (list '(-4 . "<AND")
                                (cons 8 layers)
                                '(62 . 256) ;  ByLayer
                                '(-4 . "AND>")
                                '(-4 . "OR>")
                               )))
           (setq filter (list (cons 6 Ltypes))) 
         )
         ;;  get objects using filter with user select
         (if (null (setq ss (ssget filter)))
           ;; or get ALL objects using filter
           (setq ss (ssget "_X" filter))
         )
       )
     )
     ;;==============================================================
     (if (> (sslength ss) 0)
       (progn
    ;; convert selection set to list of vla objects
    (setq lst (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))))
    (setq total 0
          cnt 0)
          
    (foreach en lst
      (setq len nil)
      (if (member (setq typ (cdr (assoc 0 (entget en)))) ent_allowed)
        (progn
          (setq obj (vlax-ename->vla-object en))
          (cond
            ((vlax-property-available-p obj 'Measurement)
             (setq len (vla-get-measurement obj))
            )
            ((vlax-property-available-p obj 'Length)
             (setq len (vla-get-length obj))
            )
            ((setq len (vl-catch-all-apply
                   '(lambda()(vlax-curve-getdistatparam en (vlax-curve-getendparam en)))))
                (and (vl-catch-all-error-p len)(setq len nil))
            )
          )
          (if len 
            (setq total (+ len total)
                  cnt (1+ cnt))
          )
        )            ; progn
      )
     )


    (if (zerop total)
      (princ "\nNo length found.")
      (princ (strcat "\nTotal Length of " (itoa cnt) " objects is " (rtos total)))
    )
         ;;(sssetfirst nil ss)
       )
       (prompt "\n***  Nothing Selected  ***")
     )
   )
 )
 (princ)
)
(prompt "\nLinetype Length loaded, Enter LtLength to run.")
(princ)

Link to comment
Share on other sites

Hopefully with Table!

 

;;  Linetype Length by Lee McDonnell  19.06.2009
;; (contact Lee Mac @ CADTutor.net, TheSwamp.org)

(defun c:ltlen (/ laystr doc spc l ltlst tdef
                 laystr laylst ss Objlst len
                 lenlst i tblObj)
 
 (vl-load-com)
 (setq laystr "" i 2)

 (setq doc (vla-get-ActiveDocument
             (vlax-get-Acad-Object))
       spc (if (zerop (vla-get-activespace doc))
             (if (= (vla-get-mspace doc) :vlax-true) ; Vport
               (vla-get-modelspace doc)
               (vla-get-paperspace doc))
             (vla-get-modelspace doc)))
 
 (while (setq l (tblnext "LTYPE" (not l)))
   (setq ltlst (cons (cdr (assoc 2 l)) ltlst)))

 (if (verChk)
   (if (setq bPt (getpoint "\nSelect Point for Table: "))
     (progn

       (foreach lt (mapcar 'strcase (reverse ltlst))
         
         (while (setq tdef (tblnext "LAYER" (not tdef)))
           (if (eq lt (strcase (cdr (assoc 6 tdef))))
             (setq laystr (strcat (cdr (assoc 2 tdef)) (chr 44) laystr)
                   laylst (cons (cdr (assoc 2 tdef)) laylst))))
         (setq laystr (vl-string-right-trim (chr 44) laystr))
         
         (if (and (setq ss (ssget "_X" (list (cons 0 "*LINE")
                                             (cons -4 "<OR") (cons 6 lt)
                                             (cons 8 laystr) (cons -4 "OR>"))))
                  (setq Objlst
                    (vl-remove-if
                      (function
                        (lambda (x)
                          (and
                            (vl-position
                              (cdr (assoc 8 (entget x))) laylst)
                                (assoc 6 (entget x)))))
                      (mapcar 'cadr (ssnamex ss)))))
           (progn
             (setq len
               (apply '+
                 (mapcar
                   (function
                     (lambda (x)
                       (vla-get-Length x)))
                   (mapcar 'vlax-ename->vla-object Objlst))))
             (setq lenlst (cons (list lt (/ len 12.) (/ len 48.)) lenlst)))
           (princ (strcat "\n<< No Lines Found With Linetype " lt " >>")))
         (setq tdef nil laystr "" laylst nil))
       (if lenlst
         (progn
           (setq tblObj
             (vla-addTable spc
               (vlax-3D-point bPt)
                 (+ 2 (length lenlst)) 3 (* 1.5 (getvar "TEXTSIZE"))
                   (* (apply 'max
                        (mapcar 'strlen
                          (mapcar 'car lenlst))) 1.5 (getvar "TEXTSIZE"))))
           (vla-setText tblObj 0 0 "{\\fCopperplate Gothic Light|b1|i0|c0|p34;\\C3;Linetype Lengths}")
             (vla-setText tblObj 1 0 "{\\fCopperplate Gothic Light|b1|i1|c0|p34;\\C16;Name}")
               (vla-setText tblObj 1 1 "{\\fCopperplate Gothic Light|b1|i1|c0|p34;\\C16;x/12}")
                 (vla-setText tblObj 1 2 "{\\fCopperplate Gothic Light|b1|i1|c0|p34;\\C16;x/48}")
           (foreach x (reverse lenlst)
             (vla-setCellAlignment tblObj i 0 acMiddleCenter)
               (vla-setText tblObj i 0 (car x))
             (vla-setCellAlignment tblObj i 1 acMiddleCenter)
               (vla-setText tblObj i 1 (rtos (cadr x) 2 2))
             (vla-setCellAlignment tblObj i 2 acMiddleCenter)
               (vla-setText tblObj i 2 (rtos (caddr x) 2 2))
             (setq i (1+ i))))))
     (princ "\n<< No Base Point Specified >>"))
   (princ "\n<< No Table Object in this Version >>"))
 (princ))

(defun verchk  ()
 (if (>= (distof (substr (getvar "ACADVER") 1 4)) 17)
   T nil))

Link to comment
Share on other sites

the -4 code in the ss filter is not really that hard to grasp tbh, even you should be able to get it Bill :P

 

 

Lol your pretty funny for being from England. :P

 

*Disclamer - Any views or opinions presented in this post are solely those of the Commandobill and do not necessarily represent those of the United States. Seriously though it was just a joke. :lol:

Link to comment
Share on other sites

AfraLISP has a great section on it:

http://www.afralisp.net/lisp/filter.htm

 

 

Thank you Ill have to look into it. Currently i have a medical condition called a hangover that is keeping my ambition to do any coding at a minimal. :wink:

Link to comment
Share on other sites

Lol your pretty funny for being from England. :P

 

*Disclamer - Any views or opinions presented in this post are solely those of the Commandobill and do not necessarily represent those of the United States. Seriously though it was just a joke. :lol:

 

Hahaha o:)

Link to comment
Share on other sites

Lee,

 

I am using your code to try to figure out how this table thing works. If i wanted to add a column to the table for the category "x/1" (or just "x"), what section of code would i want to be looking at?

 

Thanks!

 

ps

 

The script does work awesome!!!! Is there a way to choose which layers get put into the table?

Link to comment
Share on other sites

Lee,

 

I am using your code to try to figure out how this table thing works. If i wanted to add a column to the table for the category "x/1" (or just "x"), what section of code would i want to be looking at?

 

Thanks!

 

ps

 

The script does work awesome!!!! Is there a way to choose which layers get put into the table?

 

 

Glad you like it Ryan,

 

I shall add an extra column to the code for you - as it may not be too simple.

 

As for the selection of layers - do you mean linetypes? And would you want to type in which you want to have in the table?

Link to comment
Share on other sites

lee,

 

I did mean linetypes haha (i just got to work im still half asleep :) ). Typing in the linetypes would be perfect.

 

Thanks!

Link to comment
Share on other sites

The following is with the extra Column, I shall work on Linetype Selection :)

 

;;  Linetype Length by Lee McDonnell  19.06.2009
;; (contact Lee Mac @ CADTutor.net, TheSwamp.org)

(defun c:ltlen (/ laystr doc spc l ltlst tdef
                 laystr laylst ss Objlst len
                 lenlst i tblObj)
 
 (vl-load-com)
 (setq laystr "" i 2)

 (setq doc (vla-get-ActiveDocument
             (vlax-get-Acad-Object))
       spc (if (zerop (vla-get-activespace doc))
             (if (= (vla-get-mspace doc) :vlax-true) ; Vport
               (vla-get-modelspace doc)
               (vla-get-paperspace doc))
             (vla-get-modelspace doc)))
 
 (while (setq l (tblnext "LTYPE" (not l)))
   (setq ltlst (cons (cdr (assoc 2 l)) ltlst)))

 (if (verChk)
   (if (setq bPt (getpoint "\nSelect Point for Table: "))
     (progn

       (foreach lt (mapcar 'strcase (reverse ltlst))
         
         (while (setq tdef (tblnext "LAYER" (not tdef)))
           (if (eq lt (strcase (cdr (assoc 6 tdef))))
             (setq laystr (strcat (cdr (assoc 2 tdef)) (chr 44) laystr)
                   laylst (cons (cdr (assoc 2 tdef)) laylst))))
         (setq laystr (vl-string-right-trim (chr 44) laystr))
         
         (if (and (setq ss (ssget "_X" (list (cons 0 "*LINE")
                                             (cons -4 "<OR") (cons 6 lt)
                                             (cons 8 laystr) (cons -4 "OR>"))))
                  (setq Objlst
                    (vl-remove-if
                      (function
                        (lambda (x)
                          (and
                            (vl-position
                              (cdr (assoc 8 (entget x))) laylst)
                                (assoc 6 (entget x)))))
                      (mapcar 'cadr (ssnamex ss)))))
           (progn
             (setq len
               (apply '+
                 (mapcar
                   (function
                     (lambda (x)
                       (vla-get-Length x)))
                   (mapcar 'vlax-ename->vla-object Objlst))))
             (setq lenlst (cons (list lt len (/ len 12.) (/ len 48.)) lenlst)))
           (princ (strcat "\n<< No Lines Found With Linetype " lt " >>")))
         (setq tdef nil laystr "" laylst nil))
       (if lenlst
         (progn
           (setq tblObj
             (vla-addTable spc
               (vlax-3D-point bPt)
                 (+ 2 (length lenlst)) 4 (* 1.5 (getvar "TEXTSIZE"))
                   (* (apply 'max
                        (mapcar 'strlen
                          (mapcar 'car lenlst))) 1.5 (getvar "TEXTSIZE"))))
           (vla-setText tblObj 0 0 "{\\fCopperplate Gothic Light|b1|i0|c0|p34;\\C3;Linetype Lengths}")
             (vla-setText tblObj 1 0 "{\\fCopperplate Gothic Light|b1|i1|c0|p34;\\C16;Name}")
               (vla-setText tblObj 1 1 "{\\fCopperplate Gothic Light|b1|i1|c0|p34;\\C16;x}")
                 (vla-setText tblObj 1 2 "{\\fCopperplate Gothic Light|b1|i1|c0|p34;\\C16;x/12}")
                   (vla-setText tblObj 1 3 "{\\fCopperplate Gothic Light|b1|i1|c0|p34;\\C16;x/48}")
           (foreach x (reverse lenlst)
             (vla-setCellAlignment tblObj i 0 acMiddleCenter)
               (vla-setText tblObj i 0 (car x))
             (vla-setCellAlignment tblObj i 1 acMiddleCenter)
               (vla-setText tblObj i 1 (rtos (cadr x) 2 2))
             (vla-setCellAlignment tblObj i 2 acMiddleCenter)
               (vla-setText tblObj i 2 (rtos (caddr x) 2 2))
             (vla-setCellAlignment tblObj i 3 acMiddleCenter)
               (vla-setText tblObj i 3 (rtos (cadddr x) 2 2))
             (setq i (1+ i))))))
     (princ "\n<< No Base Point Specified >>"))
   (princ "\n<< No Table Object in this Version >>"))
 (princ))

(defun verchk  ()
 (if (>= (distof (substr (getvar "ACADVER") 1 4)) 17)
   T nil))

Link to comment
Share on other sites

Ok Ryan, I have spent a bit of time dabbling with the way you can add the linetypes. Its slightly different from the usual - let me know if you get any bugs :)

 

;;  Linetype Length by Lee McDonnell  22.06.2009
;; (contact Lee Mac @ CADTutor.net, TheSwamp.org)

(defun c:ltlen (/ *error* laystr doc spc l ltlst tdef
                 laystr laylst ss Objlst len
                 lenlst i tblObj vChk lt ent)
 
 (vl-load-com)
 (setq laystr "" i 2)

 (setq doc (vla-get-ActiveDocument
             (vlax-get-Acad-Object))
       spc (if (zerop (vla-get-activespace doc))
             (if (= (vla-get-mspace doc) :vlax-true) ; Vport
               (vla-get-modelspace doc)
               (vla-get-paperspace doc))
             (vla-get-modelspace doc)))

 (defun *error* (msg)
   (if (not (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*"))
     (princ (strcat "\n<< Error: " msg " >>")))
   (princ))

 (if (not (>= (distof (substr (getvar "ACADVER") 1 4)) 17))
   (progn
     (princ "\n<< Table Object Not Available in this Version >>") (exit)))  
 (if (eq 4 (logand 4 (cdr (assoc 70 (tblsearch "LAYER" (getvar "CLAYER"))))))
   (progn
     (princ "\n<< Current Layer Locked >>") (exit)))

 (while
   (progn
     (initget 128 "Select List All Done")
     (setq lt (getkword "\nSpecify Linetype to List [select/List/All] <Done>: "))
     (cond ((not lt) nil) ; Enter
           ((eq "Done" lt) nil)
           ((eq "Select" lt)
            (if (setq ent (car (nentsel "\nSelect Object: ")))
              (progn
                (setq lt (strcase
                           (vla-get-linetype
                             (setq Obj (vlax-ename->vla-object ent)))))
                (cond ((eq lt "BYLAYER")
                       (if (vl-catch-all-error-p
                             (vl-catch-all-apply
                               (function
                                 (lambda ( )
                                   (setq lt
                                     (strcase
                                       (vla-get-linetype
                                         (vla-item
                                           (vla-get-Layers doc) (vla-get-layer Obj)))))))))
                         (princ "\n<< Error Retrieving Linetype >>")
                         (if ltlst
                           (if (vl-position lt ltlst)
                             (princ (strcat "\n<< " lt " Linetype Already Listed >>"))
                             (progn
                               (setq ltlst (cons lt ltlst))
                               (princ (strcat "\n<< " lt " Linetype Added to List >>"))))
                           (progn
                             (setq ltlst (cons lt ltlst))
                             (princ (strcat "\n<< " lt " Linetype Added to List >>"))))))
                      (t (if ltlst
                           (if (vl-position lt ltlst)
                             (princ (strcat "\n<< " lt " Linetype Already Listed >>"))
                             (progn
                               (setq ltlst (cons lt ltlst))
                               (princ (strcat "\n<< " lt " Linetype Added to List >>"))))
                           (progn
                             (setq ltlst (cons lt ltlst))
                             (princ (strcat "\n<< " lt " Linetype Added to List >>")))))))
              t)) ; Stay in Loop
           ((eq "List" lt)
            (if ltlst
              (progn
                (foreach lt ltlst
                  (princ (strcat "\n" (Pad lt 46 30)))) (textscr) t) ; Stay in Loop
              (princ "\n<< No List Created >>")))
           ((eq "All" lt)
            (setq ltlst nil)
            (while (setq l (tblnext "LTYPE" (not l)))
              (setq ltlst (cons (cdr (assoc 2 l)) ltlst))) nil) ; Exit Loop
           ((and (snvalid lt)
                 (tblsearch "LTYPE" lt))
            (setq ltlst (cons (strcase lt) ltlst)))
           (t (princ "\n<< Linetype not Found in Drawing >>")))))         

 (if ltlst
   (if (setq bPt (getpoint "\nSelect Point for Table: "))
     (progn

       (foreach lt (mapcar 'strcase (reverse ltlst))
         
         (while (setq tdef (tblnext "LAYER" (not tdef)))
           (if (eq lt (strcase (cdr (assoc 6 tdef))))
             (setq laystr (strcat (cdr (assoc 2 tdef)) (chr 44) laystr)
                   laylst (cons (cdr (assoc 2 tdef)) laylst))))
         (setq laystr (vl-string-right-trim (chr 44) laystr))
         
         (if (and (setq ss (ssget "_X" (list (cons 0 "*LINE")
                                             (cons -4 "<OR") (cons 6 lt)
                                             (cons 8 laystr) (cons -4 "OR>"))))
                  (setq Objlst
                    (vl-remove-if
                      (function
                        (lambda (x)
                          (and
                            (vl-position
                              (cdr (assoc 8 (entget x))) laylst)
                                (assoc 6 (entget x)))))
                      (mapcar 'cadr (ssnamex ss)))))
           (progn
             (setq len
               (apply '+
                 (mapcar
                   (function
                     (lambda (x)
                       (vla-get-Length x)))
                   (mapcar 'vlax-ename->vla-object Objlst))))
             (setq lenlst (cons (list lt len (/ len 12.) (/ len 48.)) lenlst)))
           (princ (strcat "\n<< No Lines Found With Linetype " lt " >>")))
         (setq tdef nil laystr "" laylst nil))
       (if lenlst
         (progn
           (setq tblObj
             (vla-addTable spc
               (vlax-3D-point bPt)
                 (+ 2 (length lenlst)) 4 (* 1.5 (getvar "TEXTSIZE"))
                   (* (apply 'max
                        (mapcar 'strlen
                          (mapcar 'car lenlst))) 1.5 (getvar "TEXTSIZE"))))
           (vla-setText tblObj 0 0 "{\\fCopperplate Gothic Light|b1|i0|c0|p34;\\C3;Linetype Lengths}")
             (vla-setText tblObj 1 0 "{\\fCopperplate Gothic Light|b1|i1|c0|p34;\\C16;Name}")
               (vla-setText tblObj 1 1 "{\\fCopperplate Gothic Light|b1|i1|c0|p34;\\C16;x}")
                 (vla-setText tblObj 1 2 "{\\fCopperplate Gothic Light|b1|i1|c0|p34;\\C16;x/12}")
                   (vla-setText tblObj 1 3 "{\\fCopperplate Gothic Light|b1|i1|c0|p34;\\C16;x/48}")
           (foreach x (reverse lenlst)
             (vla-setCellAlignment tblObj i 0 acMiddleCenter)
               (vla-setText tblObj i 0 (car x))
             (vla-setCellAlignment tblObj i 1 acMiddleCenter)
               (vla-setText tblObj i 1 (rtos (cadr x) 2 2))
             (vla-setCellAlignment tblObj i 2 acMiddleCenter)
               (vla-setText tblObj i 2 (rtos (caddr x) 2 2))
             (vla-setCellAlignment tblObj i 3 acMiddleCenter)
               (vla-setText tblObj i 3 (rtos (cadddr x) 2 2))
             (setq i (1+ i))))))
     (princ "\n<< No Base Point Specified >>"))
   (princ "\n<< No Linetypes Specified >>"))
 (princ))

(defun pad (str chc len)
 (while (< (strlen Str) len)
   (setq str (strcat str (chr chc))))
 str)

Link to comment
Share on other sites

Lee,

 

This is awesome, it works perfectly! You got me thinkin however, so now I'm really going to pick your brain... (just for bonus points, as the routine does everything necessary) is there a way to check off the linetypes you want similar to the way you select properties in the "stripmtext" routine by steve doman? Also i think it would be useful if there was a way to check the length of objects by other properties like layer, color, etc.

 

Let me know what you think in terms of how difficult that would be.

Link to comment
Share on other sites

Lee,

 

This is awesome, it works perfectly! You got me thinkin however, so now I'm really going to pick your brain... (just for bonus points, as the routine does everything necessary) is there a way to check off the linetypes you want similar to the way you select properties in the "stripmtext" routine by steve doman? Also i think it would be useful if there was a way to check the length of objects by other properties like layer, color, etc.

 

Let me know what you think in terms of how difficult that would be.

 

"stripmtext" uses a DCL to get the dialog - not too difficult, but more time consuming. But, seeing as all my exams have finished, and I've got nothing on til I get my results this Thursday, I'll see what I can come up with. :)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...