Jump to content

Recommended Posts

Posted

Hello all,

 

I am looking for a LISP routine that will save the drawing using a filename made up from attributes within a block.

 

ie.

Block name = 'Title Block'

Attribute 1 = 'Drg_No' = 12345

Attribute 2 = 'Drg_Rev' = A

Attribute 3 = 'Date_Issue' = 01/02/2010

 

The routine will save the drawing as '12345_A_01022010' under a sbu folder, within the drawing's current folder, named 'Archive'

 

Any help would be greatly appreciated.

Posted

What good is archiving a file if you've already edited it with new information?

Posted

This is because the drawing is saved under the drawing number only, and when we come to update it we save the drawing in an archive folder manually using the above method. I would like to automate this.

 

Cheers

Posted

Completely feasible. Any programming experience?

Posted

as an aside you might want to reconsider the date format as yyyymmdd. Doing it as ddmmyyyy or mmddyyyy gives a very unsorted list when looking for files in date order.

Posted

Alanjt

 

The only experience I had with any programming to do with AutoCAD is 'tweaking' other peoples lisp routines. It's the initial writing I struggle with.

 

dbroada

 

Good idea, I shall remember that thank you.

Posted
Alanjt

 

The only experience I had with any programming to do with AutoCAD is 'tweaking' other peoples lisp routines. It's the initial writing I struggle with.

So you're looking for someone to write it for you?

Posted
So you're looking for someone to write it for you?

 

Preferably, yes please.

  • 5 weeks later...
Posted
Hello all,

 

I am looking for a LISP routine that will save the drawing using a filename made up from attributes within a block.

 

ie.

Block name = 'Title Block'

Attribute 1 = 'Drg_No' = 12345

Attribute 2 = 'Drg_Rev' = A

Attribute 3 = 'Date_Issue' = 01/02/2010

 

The routine will save the drawing as '12345_A_01022010' under a sbu folder, within the drawing's current folder, named 'Archive'

 

Any help would be greatly appreciated.

 

Similar topic: http://www.cadtutor.net/forum/showthread.php?41895-Save-Drawing-as-Attribute-value

Posted

Try this:

 

[b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] c:dwgsave [b][color=RED]([/color][/b] [b][color=BLUE]/[/color][/b] path ss [b][color=RED])[/color][/b]
 [b][color=RED]([/color][/b][b][color=BLUE]vl-load-com[/color][/b][b][color=RED])[/color][/b]
 [i][color=#990099];; © Lee Mac 2010[/color][/i]

 [b][color=RED]([/color][/b][b][color=BLUE]cond[/color][/b]
   [b][color=RED]([/color][/b]
     [b][color=RED]([/color][/b][b][color=BLUE]not[/color][/b]
       [b][color=RED]([/color][/b][b][color=BLUE]or[/color][/b]
         [b][color=RED]([/color][/b][b][color=BLUE]findfile[/color][/b]
           [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] path
             [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]getvar[/color][/b] [b][color=DARKRED]'[/color][/b]dwgprefix[b][color=RED])[/color][/b] [b][color=#a52a2a]"Archive"[/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]vl-mkdir[/color][/b] path[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=#a52a2a]"\n** Unable to Locate Save Path **"[/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]not[/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=#a52a2a]"_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=#a52a2a]"INSERT"[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=#009900]2[/color][/b] . [b][color=#a52a2a]"Title Block"[/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=RED]([/color][/b][b][color=BLUE]princ[/color][/b] [b][color=#a52a2a]"\n** No Title Block Found **"[/color][/b][b][color=RED])[/color][/b]
   [b][color=RED])[/color][/b]
   [b][color=RED]([/color][/b]t

     [b][color=RED]([/color][/b]
       [b][color=RED]([/color][/b][b][color=BLUE]lambda[/color][/b] [b][color=RED]([/color][/b] string [b][color=RED])[/color][/b]
         [b][color=RED]([/color][/b][b][color=BLUE]vla-saveas[/color][/b]
           [b][color=RED]([/color][/b][b][color=BLUE]vla-get-ActiveDocument[/color][/b]
             [b][color=RED]([/color][/b][b][color=BLUE]vlax-get-acad-object[/color][/b][b][color=RED])[/color][/b]
           [b][color=RED])[/color][/b]
           [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] path [b][color=#a52a2a]"\\"[/color][/b] string[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]lambda[/color][/b] [b][color=RED]([/color][/b] attribs [b][color=RED])[/color][/b]
           [b][color=RED]([/color][/b]LM:lst->str
             [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] tag [b][color=BLUE]/[/color][/b] x l [b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] x [b][color=RED]([/color][/b][b][color=BLUE]cdr[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]assoc[/color][/b] tag attribs[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b]
                   
                   [b][color=RED]([/color][/b][b][color=BLUE]cond[/color][/b]
                     [b][color=RED]([/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]and[/color][/b] x [b][color=RED]([/color][/b][b][color=BLUE]eq[/color][/b] [b][color=#a52a2a]"DATE_ISSUE"[/color][/b] tag[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
                          
                       [b][color=RED]([/color][/b][b][color=BLUE]apply[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]function[/color][/b] [b][color=Blue]strcat[/color][color=RED])[/color][/b]
                         [b][color=RED]([/color][/b][b][color=BLUE]reverse[/color][/b]
                           [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] l [b][color=RED]([/color][/b]LM:StringParser x [b][color=#a52a2a]"/"[/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] x [b][color=RED])[/color][/b] [b][color=RED]([/color][/b] [b][color=#a52a2a]""[/color][/b] [b][color=RED])[/color][/b]
                   [b][color=RED])[/color][/b]
                 [b][color=RED])[/color][/b]
               [b][color=RED])[/color][/b]
               [b][color=DARKRED]'[/color][/b][b][color=RED]([/color][/b][b][color=#a52a2a]"DRG_NO"[/color][/b] [b][color=#a52a2a]"DRG_REV"[/color][/b] [b][color=#a52a2a]"DATE_ISSUE"[/color][/b][b][color=RED])[/color][/b]
             [b][color=RED])[/color][/b]
             [b][color=#a52a2a]"_"[/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]lambda[/color][/b] [b][color=RED]([/color][/b] object [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]cons[/color][/b]
                     [b][color=RED]([/color][/b][b][color=BLUE]strcase[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-get-TagString[/color][/b] x[b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/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=RED]([/color][/b][b][color=BLUE]append[/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] object[b][color=RED])[/color][/b]
                   [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]not[/color][/b]
                     [b][color=RED]([/color][/b][b][color=BLUE]vl-catch-all-error-p[/color][/b]
                       [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] x
                         [b][color=RED]([/color][/b][b][color=BLUE]vl-catch-all-apply[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]function[/color][/b] [b][color=Blue]vlax-safearray->list[/color][color=RED])[/color][/b]
                           [b][color=RED]([/color][/b][b][color=BLUE]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-getConstantAttributes[/color][/b] object[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]
                   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=BLUE]vlax-ename->vla-object[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]ssname[/color][/b] ss [b][color=#009900]0[/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=RED]([/color][/b][b][color=BLUE]princ[/color][/b][b][color=RED])[/color][/b]
[b][color=RED])[/color][/b]

[i][color=#990099];;--------------------=={ String Parser }==-------------------;;[/color][/i]
[i][color=#990099];;                                                            ;;[/color][/i]
[i][color=#990099];;  Separates a string into a list of strings using a         ;;[/color][/i]
[i][color=#990099];;  specified delimiter string                                ;;[/color][/i]
[i][color=#990099];;------------------------------------------------------------;;[/color][/i]
[i][color=#990099];;  Author: Lee McDonnell, 2010                               ;;[/color][/i]
[i][color=#990099];;                                                            ;;[/color][/i]
[i][color=#990099];;  Copyright © 2010 by Lee McDonnell, All Rights Reserved.   ;;[/color][/i]
[i][color=#990099];;  Contact: Lee Mac @ TheSwamp.org, CADTutor.net             ;;[/color][/i]
[i][color=#990099];;------------------------------------------------------------;;[/color][/i]
[i][color=#990099];;  Arguments:                                                ;;[/color][/i]
[i][color=#990099];;  str - string to process                                   ;;[/color][/i]
[i][color=#990099];;  del - delimiter by which to separate the string           ;;[/color][/i]
[i][color=#990099];;------------------------------------------------------------;;[/color][/i]
[i][color=#990099];;  Returns:  A list of strings                               ;;[/color][/i]
[i][color=#990099];;------------------------------------------------------------;;[/color][/i]

[b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] LM:StringParser [b][color=RED]([/color][/b] str del [b][color=RED])[/color][/b]
 [i][color=#990099];; © Lee Mac 2010[/color][/i]
 [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] pos [b][color=RED]([/color][/b][b][color=BLUE]vl-string-search[/color][/b] del str[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
   [b][color=RED]([/color][/b][b][color=BLUE]vl-remove[/color][/b] [b][color=#a52a2a]""[/color][/b]
     [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]substr[/color][/b] str [b][color=#009900]1[/color][/b] pos[b][color=RED])[/color][/b]
       [b][color=RED]([/color][/b]LM:StringParser
         [b][color=RED]([/color][/b][b][color=BLUE]substr[/color][/b] str [b][color=RED]([/color][/b][b][color=BLUE]+[/color][/b] pos [b][color=#009900]1[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]strlen[/color][/b] del[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] del
       [b][color=RED])[/color][/b]
     [b][color=RED])[/color][/b]
   [b][color=RED])[/color][/b]
   [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] str[b][color=RED])[/color][/b]
 [b][color=RED])[/color][/b]
[b][color=RED])[/color][/b]

[i][color=#990099];;-------------------=={ List to String }==-------------------;;[/color][/i]
[i][color=#990099];;                                                            ;;[/color][/i]
[i][color=#990099];;  Constructs a string from a list of strings separating     ;;[/color][/i]
[i][color=#990099];;  each element by a specified delimiter                     ;;[/color][/i]
[i][color=#990099];;------------------------------------------------------------;;[/color][/i]
[i][color=#990099];;  Author: Lee McDonnell, 2010                               ;;[/color][/i]
[i][color=#990099];;                                                            ;;[/color][/i]
[i][color=#990099];;  Copyright © 2010 by Lee McDonnell, All Rights Reserved.   ;;[/color][/i]
[i][color=#990099];;  Contact: Lee Mac @ TheSwamp.org, CADTutor.net             ;;[/color][/i]
[i][color=#990099];;------------------------------------------------------------;;[/color][/i]
[i][color=#990099];;  Arguments:                                                ;;[/color][/i]
[i][color=#990099];;  lst - a list of strings to process                        ;;[/color][/i]
[i][color=#990099];;  del - delimiter by which to separate each list element    ;;[/color][/i]
[i][color=#990099];;------------------------------------------------------------;;[/color][/i]
[i][color=#990099];;  Returns:  String containing each string in the list       ;;[/color][/i]
[i][color=#990099];;------------------------------------------------------------;;[/color][/i]

[b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] LM:lst->str [b][color=RED]([/color][/b] lst del [b][color=RED])[/color][/b]
 [i][color=#990099];; © Lee Mac 2010[/color][/i]
 [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cdr[/color][/b] lst[b][color=RED])[/color][/b]
   [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] lst[b][color=RED])[/color][/b] del [b][color=RED]([/color][/b]LM:lst->str [b][color=RED]([/color][/b][b][color=BLUE]cdr[/color][/b] lst[b][color=RED])[/color][/b] del[b][color=RED])[/color][/b][b][color=RED])[/color][/b]
   [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] lst[b][color=RED])[/color][/b]
 [b][color=RED])[/color][/b]
[b][color=RED])[/color][/b]

    

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