tjsantos Posted July 1, 2010 Posted July 1, 2010 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. Quote
alanjt Posted July 1, 2010 Posted July 1, 2010 What good is archiving a file if you've already edited it with new information? Quote
tjsantos Posted July 2, 2010 Author Posted July 2, 2010 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 Quote
alanjt Posted July 2, 2010 Posted July 2, 2010 Completely feasible. Any programming experience? Quote
dbroada Posted July 2, 2010 Posted July 2, 2010 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. Quote
tjsantos Posted July 2, 2010 Author Posted July 2, 2010 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. Quote
alanjt Posted July 2, 2010 Posted July 2, 2010 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? Quote
tjsantos Posted July 3, 2010 Author Posted July 3, 2010 So you're looking for someone to write it for you? Preferably, yes please. Quote
Phiphi Posted August 1, 2010 Posted August 1, 2010 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 Quote
Lee Mac Posted August 1, 2010 Posted August 1, 2010 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] Quote
Recommended Posts
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.