Jump to content

Recommended Posts

Posted

I've modified the following code found within this site.

http://www.cadtutor.co.uk/forum/showthread.php?t=30175

 

to the following:

;Global ATTribute EXtractor
;
; by Miklos Fuccaro  [email="mfuccaro@hotmail.com"]mfuccaro@hotmail.com[/email]
;-------------------------November 2004 -------
;revised by Steveo  May 2009
(defun gattex()
 (setq ss (ssget "X" '((0 . "INSERT") (66 . 1))))
 (if (not ss) (quit))
 (setq file (open "c:\\DWG\\RAKE.CSV" "a") i -1)
 (write-line (strcat (getvar "DWGPREFIX") (getvar "DWGNAME")
       " -found " (itoa (sslength ss))
       " block(s) with attributes") file)
 (repeat (sslength ss)
   (setq l (entget (setq e (ssname ss (setq i (1+ i))))))
   (write-line (strcat "block name:" "," (cdr (assoc 2 l))) file)
   (while (/= (cdr (assoc 0 l)) "SEQEND")
     (if (= (cdr (assoc 0 l)) "ATTRIB")
(write-line (strcat ",," (cdr (assoc 1 l)) "," (cdr (assoc 2 l))) file))
     (setq l (entget (setq e (entnext e))))
     )
   )
 (close file)
 (princ)
 )
(gattex)

 

the revised code works fine for a block called Key-Item with two attributes, Item and Quantity.

it "rakes" info to Excel nicely.

However, I would like the program to sum quantities for like "items" before writting to Excel. For example;

ITEM QUANTITY

Hydrant 1

Hydrant 1

 

would like it to sum quantities before writting to Excel, so result is

ITEM QUANTITY

Hydrant 2

 

any thoughts on modification appreciated.

(gone fishin' )

Steve

Posted

Give this a shot Steve:

 

[i][color=#990099];; Summing Attributes Before Extraction[/color][/i]
[i][color=#990099];; By Lee McDonnell[/color][/i]

[b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] c:AttSum [b][color=RED]([/color][/b][b][color=BLUE]/[/color][/b] ss ofile attlst x y lst[b][color=RED])[/color][/b]
 [b][color=RED]([/color][/b][b][color=BLUE]vl-load-com[/color][/b][b][color=RED])[/color][/b]  
 [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] ss [b][color=RED]([/color][/b][b][color=BLUE]ssget[/color][/b] [b][color=#ff00ff]"_X"[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=RED]([/color][/b][b][color=RED]([/color][/b][b][color=#009900]0[/color][/b] . [b][color=#ff00ff]"INSERT"[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=#009900]2[/color][/b] . [b][color=#ff00ff]"KEY-ITEM"[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=#009900]66[/color][/b] . [b][color=#009900]1[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
   [b][color=RED]([/color][/b][b][color=BLUE]progn[/color][/b]
     [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] ofile [b][color=RED]([/color][/b][b][color=BLUE]open[/color][/b] [b][color=#ff00ff]"c:\\DWG\\RAKE.csv"[/color][/b] [b][color=#ff00ff]"a"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
     [b][color=RED]([/color][/b][b][color=BLUE]write-line[/color][/b] [b][color=#ff00ff]"ITEM,QUANTITY"[/color][/b] ofile[b][color=RED])[/color][/b]
     [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] attlst
       [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b]
         [b][color=RED]([/color][/b][b][color=BLUE]function[/color][/b]
           [b][color=RED]([/color][/b][b][color=BLUE]lambda[/color][/b] [b][color=RED]([/color][/b]x[b][color=RED])[/color][/b]
             [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]vla-get-TextString[/color][/b] x[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
         [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b]
           [b][color=RED]([/color][/b][b][color=BLUE]function[/color][/b]
             [b][color=RED]([/color][/b][b][color=BLUE]lambda[/color][/b] [b][color=RED]([/color][/b]x[b][color=RED])[/color][/b]
               [b][color=RED]([/color][/b][b][color=BLUE]vl-sort[/color][/b] x
                 [b][color=RED]([/color][/b][b][color=BLUE]function[/color][/b]
                   [b][color=RED]([/color][/b][b][color=BLUE]lambda[/color][/b] [b][color=RED]([/color][/b]x1 x2[b][color=RED])[/color][/b]
                     [b][color=RED]([/color][/b][b][color=BLUE]<[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-get-TagString[/color][/b] x1[b][color=RED])[/color][/b]
                          [b][color=RED]([/color][/b][b][color=BLUE]vla-get-TagString[/color][/b] x2[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
           [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b]
             [b][color=RED]([/color][/b][b][color=BLUE]function[/color][/b]
               [b][color=RED]([/color][/b][b][color=BLUE]lambda[/color][/b] [b][color=RED]([/color][/b]x[b][color=RED])[/color][/b]
                 [b][color=RED]([/color][/b][b][color=BLUE]vlax-safearray->list[/color][/b]
                   [b][color=RED]([/color][/b][b][color=BLUE]vlax-variant-value[/color][/b]
                     [b][color=RED]([/color][/b][b][color=BLUE]vla-getAttributes[/color][/b] x[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
             [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]vlax-ename->vla-object[/color][/b]
                     [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]cadr[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]ssnamex[/color][/b] ss[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
     [b][color=RED]([/color][/b][b][color=BLUE]while[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] x [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] attlst[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
       [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] y [b][color=RED]([/color][/b][b][color=BLUE]assoc[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] x[b][color=RED])[/color][/b] lst[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
         [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] lst [b][color=RED]([/color][/b][b][color=BLUE]subst[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]append[/color][/b] y [b][color=RED]([/color][/b][b][color=BLUE]cdr[/color][/b] x[b][color=RED])[/color][/b][b][color=RED])[/color][/b] y lst[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
         [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] lst [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] x lst[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
       [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] attlst [b][color=RED]([/color][/b][b][color=BLUE]cdr[/color][/b] attlst[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
     [b][color=RED]([/color][/b][b][color=BLUE]foreach[/color][/b] x lst
       [b][color=RED]([/color][/b][b][color=BLUE]write-line[/color][/b]
         [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] x[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]chr[/color][/b] [b][color=#009900]44[/color][/b][b][color=RED])[/color][/b]
           [b][color=RED]([/color][/b][b][color=BLUE]rtos[/color][/b]
             [b][color=RED]([/color][/b][b][color=BLUE]apply[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]+[/color][/b]
               [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]distof[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cdr[/color][/b] x[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] ofile[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
   [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b] [b][color=#ff00ff]"\n<!> No Blocks Found <!>"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
 [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]

Posted
Give this a shot Steve:

 

[i][color=#990099];; Summing Attributes Before Extraction[/color][/i]
[i][color=#990099];; By Lee McDonnell[/color][/i]

[b][color=red]([/color][/b][b][color=blue]defun[/color][/b] c:AttSum [b][color=red]([/color][/b][b][color=blue]/[/color][/b] ss ofile attlst x y lst[b][color=red])[/color][/b]
 [b][color=red]([/color][/b][b][color=blue]vl-load-com[/color][/b][b][color=red])[/color][/b]  
 [b][color=red]([/color][/b][b][color=blue]if[/color][/b] [b][color=red]([/color][/b][b][color=blue]setq[/color][/b] ss [b][color=red]([/color][/b][b][color=blue]ssget[/color][/b] [b][color=#ff00ff]"_X"[/color][/b] [b][color=darkred]'[/color][/b][b][color=red]([/color][/b][b][color=red]([/color][/b][b][color=#009900]0[/color][/b] . [b][color=#ff00ff]"INSERT"[/color][/b][b][color=red])[/color][/b] [b][color=red]([/color][/b][b][color=#009900]2[/color][/b] . [b][color=#ff00ff]"KEY-ITEM"[/color][/b][b][color=red])[/color][/b] [b][color=red]([/color][/b][b][color=#009900]66[/color][/b] . [b][color=#009900]1[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b]
   [b][color=red]([/color][/b][b][color=blue]progn[/color][/b]
     [b][color=red]([/color][/b][b][color=blue]setq[/color][/b] ofile [b][color=red]([/color][/b][b][color=blue]open[/color][/b] [b][color=#ff00ff]"c:\\DWG\\RAKE.csv"[/color][/b] [b][color=#ff00ff]"a"[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b]
     [b][color=red]([/color][/b][b][color=blue]write-line[/color][/b] [b][color=#ff00ff]"ITEM,QUANTITY"[/color][/b] ofile[b][color=red])[/color][/b]
     [b][color=red]([/color][/b][b][color=blue]setq[/color][/b] attlst
       [b][color=red]([/color][/b][b][color=blue]mapcar[/color][/b]
         [b][color=red]([/color][/b][b][color=blue]function[/color][/b]
           [b][color=red]([/color][/b][b][color=blue]lambda[/color][/b] [b][color=red]([/color][/b]x[b][color=red])[/color][/b]
             [b][color=red]([/color][/b][b][color=blue]mapcar[/color][/b] [b][color=darkred]'[/color][/b][b][color=blue]vla-get-TextString[/color][/b] x[b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b]
         [b][color=red]([/color][/b][b][color=blue]mapcar[/color][/b]
           [b][color=red]([/color][/b][b][color=blue]function[/color][/b]
             [b][color=red]([/color][/b][b][color=blue]lambda[/color][/b] [b][color=red]([/color][/b]x[b][color=red])[/color][/b]
               [b][color=red]([/color][/b][b][color=blue]vl-sort[/color][/b] x
                 [b][color=red]([/color][/b][b][color=blue]function[/color][/b]
                   [b][color=red]([/color][/b][b][color=blue]lambda[/color][/b] [b][color=red]([/color][/b]x1 x2[b][color=red])[/color][/b]
                     [b][color=red]([/color][/b][b][color=blue]<[/color][/b] [b][color=red]([/color][/b][b][color=blue]vla-get-TagString[/color][/b] x1[b][color=red])[/color][/b]
                          [b][color=red]([/color][/b][b][color=blue]vla-get-TagString[/color][/b] x2[b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b]
           [b][color=red]([/color][/b][b][color=blue]mapcar[/color][/b]
             [b][color=red]([/color][/b][b][color=blue]function[/color][/b]
               [b][color=red]([/color][/b][b][color=blue]lambda[/color][/b] [b][color=red]([/color][/b]x[b][color=red])[/color][/b]
                 [b][color=red]([/color][/b][b][color=blue]vlax-safearray->list[/color][/b]
                   [b][color=red]([/color][/b][b][color=blue]vlax-variant-value[/color][/b]
                     [b][color=red]([/color][/b][b][color=blue]vla-getAttributes[/color][/b] x[b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b]
             [b][color=red]([/color][/b][b][color=blue]mapcar[/color][/b] [b][color=darkred]'[/color][/b][b][color=blue]vlax-ename->vla-object[/color][/b]
                     [b][color=red]([/color][/b][b][color=blue]mapcar[/color][/b] [b][color=darkred]'[/color][/b][b][color=blue]cadr[/color][/b] [b][color=red]([/color][/b][b][color=blue]ssnamex[/color][/b] ss[b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b]
     [b][color=red]([/color][/b][b][color=blue]while[/color][/b] [b][color=red]([/color][/b][b][color=blue]setq[/color][/b] x [b][color=red]([/color][/b][b][color=blue]car[/color][/b] attlst[b][color=red])[/color][/b][b][color=red])[/color][/b]
       [b][color=red]([/color][/b][b][color=blue]if[/color][/b] [b][color=red]([/color][/b][b][color=blue]setq[/color][/b] y [b][color=red]([/color][/b][b][color=blue]assoc[/color][/b] [b][color=red]([/color][/b][b][color=blue]car[/color][/b] x[b][color=red])[/color][/b] lst[b][color=red])[/color][/b][b][color=red])[/color][/b]
         [b][color=red]([/color][/b][b][color=blue]setq[/color][/b] lst [b][color=red]([/color][/b][b][color=blue]subst[/color][/b] [b][color=red]([/color][/b][b][color=blue]append[/color][/b] y [b][color=red]([/color][/b][b][color=blue]cdr[/color][/b] x[b][color=red])[/color][/b][b][color=red])[/color][/b] y lst[b][color=red])[/color][/b][b][color=red])[/color][/b]
         [b][color=red]([/color][/b][b][color=blue]setq[/color][/b] lst [b][color=red]([/color][/b][b][color=blue]cons[/color][/b] x lst[b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b]
       [b][color=red]([/color][/b][b][color=blue]setq[/color][/b] attlst [b][color=red]([/color][/b][b][color=blue]cdr[/color][/b] attlst[b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b]
     [b][color=red]([/color][/b][b][color=blue]foreach[/color][/b] x lst
       [b][color=red]([/color][/b][b][color=blue]write-line[/color][/b]
         [b][color=red]([/color][/b][b][color=blue]strcat[/color][/b] [b][color=red]([/color][/b][b][color=blue]car[/color][/b] x[b][color=red])[/color][/b] [b][color=red]([/color][/b][b][color=blue]chr[/color][/b] [b][color=#009900]44[/color][/b][b][color=red])[/color][/b]
           [b][color=red]([/color][/b][b][color=blue]rtos[/color][/b]
             [b][color=red]([/color][/b][b][color=blue]apply[/color][/b] [b][color=darkred]'[/color][/b][b][color=blue]+[/color][/b]
               [b][color=red]([/color][/b][b][color=blue]mapcar[/color][/b] [b][color=darkred]'[/color][/b][b][color=blue]distof[/color][/b] [b][color=red]([/color][/b][b][color=blue]cdr[/color][/b] x[b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b] ofile[b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b]
   [b][color=red]([/color][/b][b][color=blue]princ[/color][/b] [b][color=#ff00ff]"\n<!> No Blocks Found <!>"[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b]
 [b][color=red]([/color][/b][b][color=blue]princ[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b]

 

Before writting dwg data to Excel file, I need to write on first line of respective data, the drawing name and path,

(write-line (strcat (getvar "DWGPREFIX") (getvar "DWGNAME")

 

then at end of data need to write line like

---------------------------------------------

to separate data from next drawing to be appended to same file,

over and over for subsequent drawings from same family of drawing set.

Why is Excel file locked and read only? never saw this before when acad is open? need to unlock it. seems its only unlocked when acad is completely shut down?

(fish is on line, now to reel it in !!! )

Steve

Posted
Before writting dwg data to Excel file, I need to write on first line of respective data, the drawing name and path,

(write-line (strcat (getvar "DWGPREFIX") (getvar "DWGNAME")

 

then at end of data need to write line like

---------------------------------------------

to separate data from next drawing to be appended to same file,

over and over for subsequent drawings from same family of drawing set.

Why is Excel file locked and read only? never saw this before when acad is open? need to unlock it. seems its only unlocked when acad is completely shut down?

(fish is on line, now to reel it in !!! )

Steve

 

Sorry about read-only - forgot to include a line to close file (amateur mistake)...

 

Is the data writing properly though? Are the quantities correct? Did you want me to make your dinner too?

 

a thank you would only be 9 keystrokes you know...

Posted

Try this:

 

[i][color=#990099];; Summing Attributes Before Extraction[/color][/i]
[i][color=#990099];; By Lee McDonnell[/color][/i]

[b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] c:AttSum [b][color=RED]([/color][/b][b][color=BLUE]/[/color][/b] ss ofile attlst x y lst[b][color=RED])[/color][/b]
 [b][color=RED]([/color][/b][b][color=BLUE]vl-load-com[/color][/b][b][color=RED])[/color][/b]  
 [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] ss [b][color=RED]([/color][/b][b][color=BLUE]ssget[/color][/b] [b][color=#ff00ff]"_X"[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=RED]([/color][/b][b][color=RED]([/color][/b][b][color=#009900]0[/color][/b] . [b][color=#ff00ff]"INSERT"[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=#009900]2[/color][/b] . [b][color=#ff00ff]"KEY-ITEM"[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=#009900]66[/color][/b] . [b][color=#009900]1[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
   [b][color=RED]([/color][/b][b][color=BLUE]progn[/color][/b]
     [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] ofile [b][color=RED]([/color][/b][b][color=BLUE]open[/color][/b] [b][color=#ff00ff]"c:\\DWG\\RAKE.csv"[/color][/b] [b][color=#ff00ff]"a"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
     [b][color=RED]([/color][/b][b][color=BLUE]write-line[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]getvar[/color][/b] [b][color=#ff00ff]"DWGPREFIX"[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]getvar[/color][/b] [b][color=#ff00ff]"DWGNAME"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] ofile[b][color=RED])[/color][/b]
     [b][color=RED]([/color][/b][b][color=BLUE]write-line[/color][/b] [b][color=#ff00ff]"ITEM,QUANTITY"[/color][/b] ofile[b][color=RED])[/color][/b]
     [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] attlst
       [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b]
         [b][color=RED]([/color][/b][b][color=BLUE]function[/color][/b]
           [b][color=RED]([/color][/b][b][color=BLUE]lambda[/color][/b] [b][color=RED]([/color][/b]x[b][color=RED])[/color][/b]
             [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]vla-get-TextString[/color][/b] x[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
         [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b]
           [b][color=RED]([/color][/b][b][color=BLUE]function[/color][/b]
             [b][color=RED]([/color][/b][b][color=BLUE]lambda[/color][/b] [b][color=RED]([/color][/b]x[b][color=RED])[/color][/b]
               [b][color=RED]([/color][/b][b][color=BLUE]vl-sort[/color][/b] x
                 [b][color=RED]([/color][/b][b][color=BLUE]function[/color][/b]
                   [b][color=RED]([/color][/b][b][color=BLUE]lambda[/color][/b] [b][color=RED]([/color][/b]x1 x2[b][color=RED])[/color][/b]
                     [b][color=RED]([/color][/b][b][color=BLUE]<[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-get-TagString[/color][/b] x1[b][color=RED])[/color][/b]
                          [b][color=RED]([/color][/b][b][color=BLUE]vla-get-TagString[/color][/b] x2[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
           [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b]
             [b][color=RED]([/color][/b][b][color=BLUE]function[/color][/b]
               [b][color=RED]([/color][/b][b][color=BLUE]lambda[/color][/b] [b][color=RED]([/color][/b]x[b][color=RED])[/color][/b]
                 [b][color=RED]([/color][/b][b][color=BLUE]vlax-safearray->list[/color][/b]
                   [b][color=RED]([/color][/b][b][color=BLUE]vlax-variant-value[/color][/b]
                     [b][color=RED]([/color][/b][b][color=BLUE]vla-getAttributes[/color][/b] x[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
             [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]vlax-ename->vla-object[/color][/b]
                     [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]cadr[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]ssnamex[/color][/b] ss[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
     [b][color=RED]([/color][/b][b][color=BLUE]while[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] x [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] attlst[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
       [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] y [b][color=RED]([/color][/b][b][color=BLUE]assoc[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] x[b][color=RED])[/color][/b] lst[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
         [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] lst [b][color=RED]([/color][/b][b][color=BLUE]subst[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]append[/color][/b] y [b][color=RED]([/color][/b][b][color=BLUE]cdr[/color][/b] x[b][color=RED])[/color][/b][b][color=RED])[/color][/b] y lst[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
         [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] lst [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] x lst[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
       [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] attlst [b][color=RED]([/color][/b][b][color=BLUE]cdr[/color][/b] attlst[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
     [b][color=RED]([/color][/b][b][color=BLUE]foreach[/color][/b] x lst
       [b][color=RED]([/color][/b][b][color=BLUE]write-line[/color][/b]
         [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] x[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]chr[/color][/b] [b][color=#009900]44[/color][/b][b][color=RED])[/color][/b]
           [b][color=RED]([/color][/b][b][color=BLUE]rtos[/color][/b]
             [b][color=RED]([/color][/b][b][color=BLUE]apply[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]+[/color][/b]
               [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]distof[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cdr[/color][/b] x[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] ofile[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
     [b][color=RED]([/color][/b][b][color=BLUE]write-line[/color][/b] [b][color=#ff00ff]"-----,-----"[/color][/b] ofile[b][color=RED])[/color][/b]
     [b][color=RED]([/color][/b][b][color=BLUE]close[/color][/b] ofile[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
   [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b] [b][color=#ff00ff]"\n<!> No Blocks Found <!>"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
 [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]

Posted
Sorry about read-only - forgot to include a line to close file (amateur mistake)...

 

Is the data writing properly though? Are the quantities correct? Did you want me to make your dinner too?

 

a thank you would only be 9 keystrokes you know...

 

If your already making dinner... lol 8) You know Lee there comes a time were you need to let them figure out the rest on their own... especially when it's (close ofile)

Posted
If your already making dinner... lol 8) You know Lee there comes a time were you need to let them figure out the rest on their own... especially when it's (close ofile)

 

I know what you mean Bill, - but when I know exactly what the answer is, why not just put them out of their misery...?

Posted
Before writting dwg data to Excel file, I need to write on first line of respective data, the drawing name and path,

(write-line (strcat (getvar "DWGPREFIX") (getvar "DWGNAME")

 

then at end of data need to write line like

---------------------------------------------

to separate data from next drawing to be appended to same file,

over and over for subsequent drawings from same family of drawing set.

Why is Excel file locked and read only? never saw this before when acad is open? need to unlock it. seems its only unlocked when acad is completely shut down?

(fish is on line, now to reel it in !!! )

Steve

 

so honestly you couldnt figure out how to put that info into the lisp? I dont mean to be mean you said you tweaked the last lisp... if that were true then you should know how to add in the dwg name, add a seperating line and how to close the file... just saying you shouldnt need the fish's help to reel it in...

Posted
so honestly you couldnt figure out how to put that info into the lisp? I dont mean to be mean you said you tweaked the last lisp... if that were true then you should know how to add in the dwg name, add a seperating line and how to close the file... just saying you shouldnt need the fish's help to reel it in...

 

What is with the "fish" reference anyway? Am I metaphorically the "fish"?

Posted
I know what you mean Bill, - but when I know exactly what the answer is, why not just put them out of their misery...?

 

 

well you could always do what freerefill does to me and just give them an analogy and not the full answer... lol they always amuse me.

Posted
What is with the "fish" reference anyway? Am I metaphorically the "fish"?

 

 

hmm perhaps i should have said 'you shouldnt need the current to help you reel in the fish' in that case you would be the current and the lisp would be the fish and the old lisp was the bait... hmm still doesnt work... oh well he kept saying he was (fishing) so i had to try... lol

Posted

Ah, thankfully, I don't need to make one up this time, I can just use a classic one.

 

Give a man a fish, he eats for a day.

Teach a man to fish, he eats for a lifetime.

Posted
Try this:

 

[i][color=#990099];; Summing Attributes Before Extraction[/color][/i]
[i][color=#990099];; By Lee McDonnell[/color][/i]

[b][color=red]([/color][/b][b][color=blue]defun[/color][/b] c:AttSum [b][color=red]([/color][/b][b][color=blue]/[/color][/b] ss ofile attlst x y lst[b][color=red])[/color][/b]
 [b][color=red]([/color][/b][b][color=blue]vl-load-com[/color][/b][b][color=red])[/color][/b]  
 [b][color=red]([/color][/b][b][color=blue]if[/color][/b] [b][color=red]([/color][/b][b][color=blue]setq[/color][/b] ss [b][color=red]([/color][/b][b][color=blue]ssget[/color][/b] [b][color=#ff00ff]"_X"[/color][/b] [b][color=darkred]'[/color][/b][b][color=red]([/color][/b][b][color=red]([/color][/b][b][color=#009900]0[/color][/b] . [b][color=#ff00ff]"INSERT"[/color][/b][b][color=red])[/color][/b] [b][color=red]([/color][/b][b][color=#009900]2[/color][/b] . [b][color=#ff00ff]"KEY-ITEM"[/color][/b][b][color=red])[/color][/b] [b][color=red]([/color][/b][b][color=#009900]66[/color][/b] . [b][color=#009900]1[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b]
   [b][color=red]([/color][/b][b][color=blue]progn[/color][/b]
     [b][color=red]([/color][/b][b][color=blue]setq[/color][/b] ofile [b][color=red]([/color][/b][b][color=blue]open[/color][/b] [b][color=#ff00ff]"c:\\DWG\\RAKE.csv"[/color][/b] [b][color=#ff00ff]"a"[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b]
     [b][color=red]([/color][/b][b][color=blue]write-line[/color][/b] [b][color=red]([/color][/b][b][color=blue]strcat[/color][/b] [b][color=red]([/color][/b][b][color=blue]getvar[/color][/b] [b][color=#ff00ff]"DWGPREFIX"[/color][/b][b][color=red])[/color][/b] [b][color=red]([/color][/b][b][color=blue]getvar[/color][/b] [b][color=#ff00ff]"DWGNAME"[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b] ofile[b][color=red])[/color][/b]
     [b][color=red]([/color][/b][b][color=blue]write-line[/color][/b] [b][color=#ff00ff]"ITEM,QUANTITY"[/color][/b] ofile[b][color=red])[/color][/b]
     [b][color=red]([/color][/b][b][color=blue]setq[/color][/b] attlst
       [b][color=red]([/color][/b][b][color=blue]mapcar[/color][/b]
         [b][color=red]([/color][/b][b][color=blue]function[/color][/b]
           [b][color=red]([/color][/b][b][color=blue]lambda[/color][/b] [b][color=red]([/color][/b]x[b][color=red])[/color][/b]
             [b][color=red]([/color][/b][b][color=blue]mapcar[/color][/b] [b][color=darkred]'[/color][/b][b][color=blue]vla-get-TextString[/color][/b] x[b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b]
         [b][color=red]([/color][/b][b][color=blue]mapcar[/color][/b]
           [b][color=red]([/color][/b][b][color=blue]function[/color][/b]
             [b][color=red]([/color][/b][b][color=blue]lambda[/color][/b] [b][color=red]([/color][/b]x[b][color=red])[/color][/b]
               [b][color=red]([/color][/b][b][color=blue]vl-sort[/color][/b] x
                 [b][color=red]([/color][/b][b][color=blue]function[/color][/b]
                   [b][color=red]([/color][/b][b][color=blue]lambda[/color][/b] [b][color=red]([/color][/b]x1 x2[b][color=red])[/color][/b]
                     [b][color=red]([/color][/b][b][color=blue]<[/color][/b] [b][color=red]([/color][/b][b][color=blue]vla-get-TagString[/color][/b] x1[b][color=red])[/color][/b]
                          [b][color=red]([/color][/b][b][color=blue]vla-get-TagString[/color][/b] x2[b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b]
           [b][color=red]([/color][/b][b][color=blue]mapcar[/color][/b]
             [b][color=red]([/color][/b][b][color=blue]function[/color][/b]
               [b][color=red]([/color][/b][b][color=blue]lambda[/color][/b] [b][color=red]([/color][/b]x[b][color=red])[/color][/b]
                 [b][color=red]([/color][/b][b][color=blue]vlax-safearray->list[/color][/b]
                   [b][color=red]([/color][/b][b][color=blue]vlax-variant-value[/color][/b]
                     [b][color=red]([/color][/b][b][color=blue]vla-getAttributes[/color][/b] x[b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b]
             [b][color=red]([/color][/b][b][color=blue]mapcar[/color][/b] [b][color=darkred]'[/color][/b][b][color=blue]vlax-ename->vla-object[/color][/b]
                     [b][color=red]([/color][/b][b][color=blue]mapcar[/color][/b] [b][color=darkred]'[/color][/b][b][color=blue]cadr[/color][/b] [b][color=red]([/color][/b][b][color=blue]ssnamex[/color][/b] ss[b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b]
     [b][color=red]([/color][/b][b][color=blue]while[/color][/b] [b][color=red]([/color][/b][b][color=blue]setq[/color][/b] x [b][color=red]([/color][/b][b][color=blue]car[/color][/b] attlst[b][color=red])[/color][/b][b][color=red])[/color][/b]
       [b][color=red]([/color][/b][b][color=blue]if[/color][/b] [b][color=red]([/color][/b][b][color=blue]setq[/color][/b] y [b][color=red]([/color][/b][b][color=blue]assoc[/color][/b] [b][color=red]([/color][/b][b][color=blue]car[/color][/b] x[b][color=red])[/color][/b] lst[b][color=red])[/color][/b][b][color=red])[/color][/b]
         [b][color=red]([/color][/b][b][color=blue]setq[/color][/b] lst [b][color=red]([/color][/b][b][color=blue]subst[/color][/b] [b][color=red]([/color][/b][b][color=blue]append[/color][/b] y [b][color=red]([/color][/b][b][color=blue]cdr[/color][/b] x[b][color=red])[/color][/b][b][color=red])[/color][/b] y lst[b][color=red])[/color][/b][b][color=red])[/color][/b]
         [b][color=red]([/color][/b][b][color=blue]setq[/color][/b] lst [b][color=red]([/color][/b][b][color=blue]cons[/color][/b] x lst[b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b]
       [b][color=red]([/color][/b][b][color=blue]setq[/color][/b] attlst [b][color=red]([/color][/b][b][color=blue]cdr[/color][/b] attlst[b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b]
     [b][color=red]([/color][/b][b][color=blue]foreach[/color][/b] x lst
       [b][color=red]([/color][/b][b][color=blue]write-line[/color][/b]
         [b][color=red]([/color][/b][b][color=blue]strcat[/color][/b] [b][color=red]([/color][/b][b][color=blue]car[/color][/b] x[b][color=red])[/color][/b] [b][color=red]([/color][/b][b][color=blue]chr[/color][/b] [b][color=#009900]44[/color][/b][b][color=red])[/color][/b]
           [b][color=red]([/color][/b][b][color=blue]rtos[/color][/b]
             [b][color=red]([/color][/b][b][color=blue]apply[/color][/b] [b][color=darkred]'[/color][/b][b][color=blue]+[/color][/b]
               [b][color=red]([/color][/b][b][color=blue]mapcar[/color][/b] [b][color=darkred]'[/color][/b][b][color=blue]distof[/color][/b] [b][color=red]([/color][/b][b][color=blue]cdr[/color][/b] x[b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b] ofile[b][color=red])[/color][/b][b][color=red])[/color][/b]
     [b][color=red]([/color][/b][b][color=blue]write-line[/color][/b] [b][color=#ff00ff]"-----,-----"[/color][/b] ofile[b][color=red])[/color][/b]
     [b][color=red]([/color][/b][b][color=blue]close[/color][/b] ofile[b][color=red])[/color][/b][b][color=red])[/color][/b]
   [b][color=red]([/color][/b][b][color=blue]princ[/color][/b] [b][color=#ff00ff]"\n<!> No Blocks Found <!>"[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b]
 [b][color=red]([/color][/b][b][color=blue]princ[/color][/b][b][color=red])[/color][/b][b][color=red])[/color][/b]

 

Lee, this is Perfect !!! sums correctly, (and for those ready to sit down to a delicious din din, say Grace !)

Many thanks...

I guess not everyone read the first post where I was indeed trying to fish.

Thanks for prodding the fish toward my hook mate !

Steve

Posted

Well, I'm glad it works ok for your Steve - I was just a bit put-out that, after my first code post, I only received more requests in a response.

Posted
Well, I'm glad it works ok for your Steve - I was just a bit put-out that, after my first code post, I only received more requests in a response.

:oops:I do owe you an apology for being so ungrateful. You have always been most helpful to all here. This is the greatest place to browse and learn. (Troll and fish !) Yes the previous posted saying is what its all about. If I'm not home, I've gone "fishing".

Steve

Posted
:oops:I do owe you an apology for being so ungrateful. You have always been most helpful to all here. This is the greatest place to browse and learn. (Troll and fish !) Yes the previous posted saying is what its all about. If I'm not home, I've gone "fishing".

Steve

 

Apology accepted Steve, and I do enjoy writing these LISPs, but it is always nice to hear that what you have written is appreciated :)

 

After all, like other forum members, I volunteer my time and effort to assist those who visit CADTutor without benefit of renumeration, and so a thank you is always an appreciated return :)

 

Thanks,

 

Lee

  • 1 year later...
Posted

can someone PLEASEhelp me. I have a similar request or wish which is to automatically extract a specified block name from multiple drawings into excel or *.csv

Say the attribute block name is G-TB-INFO.

  • 1 month later...
Posted

PS: you can also use CADTools for this.

 

:)

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...