TheSwamp

Code Red => AutoLISP (Vanilla / Visual) => Topic started by: andrew_nao on June 16, 2011, 10:03:19 AM

Title: how can i get partial directory name with diesel?
Post by: andrew_nao on June 16, 2011, 10:03:19 AM
anyone know how i can get this but using diesel instead

Code: [Select]
(substr (vl-Filename-Base (vl-Filename-Directory (getvar "Dwgprefix")))1 6)

i tried the above with diesel but it doesnt work
so i came up with the following, but if the length of the directory name changes, i get undesired results

Code: [Select]
$(SUBSTR, $(substr, $(getvar, dwgprefix), 18, $(-, $(strlen, $(getvar, dwgprefix)), 5)), 2, 6)

any help is appreciated
Title: Re: how can i get partial directory name with diesel?
Post by: ronjonp on June 16, 2011, 10:58:33 AM
What part of your path are you trying to grab? First folder?
Title: Re: how can i get partial directory name with diesel?
Post by: andrew_nao on June 16, 2011, 01:04:22 PM
What part of your path are you trying to grab? First folder?

an example would be

F:\DWG\directory\123456 sub directory

im after the "123456" or the first 6 places in the sub dir or whatever dir the dwg is in that i currently have opened
Title: Re: how can i get partial directory name with diesel?
Post by: ElpanovEvgeniy on June 16, 2011, 01:12:34 PM
Code: [Select]
(menucmd
 (strcat
  "M=$(if, $(eq, \\, $(substr, $(getvar, dwgprefix), $(-, $(strlen, $(getvar, dwgprefix)), 5), 1)),$(substr, $(getvar, dwgprefix), $(-, $(strlen, $(getvar, dwgprefix)), 4), 4),)"
  "$(if, $(eq, \\, $(substr, $(getvar, dwgprefix), $(-, $(strlen, $(getvar, dwgprefix)), 6), 1)),$(substr, $(getvar, dwgprefix), $(-, $(strlen, $(getvar, dwgprefix)), 5), 5),)"
  "$(if, $(eq, \\, $(substr, $(getvar, dwgprefix), $(-, $(strlen, $(getvar, dwgprefix)), 7), 1)),$(substr, $(getvar, dwgprefix), $(-, $(strlen, $(getvar, dwgprefix)), 6), 6),)"
  "$(if, $(eq, \\, $(substr, $(getvar, dwgprefix), $(-, $(strlen, $(getvar, dwgprefix)), 8), 1)),$(substr, $(getvar, dwgprefix), $(-, $(strlen, $(getvar, dwgprefix)), 7), 7),)"
  "$(if, $(eq, \\, $(substr, $(getvar, dwgprefix), $(-, $(strlen, $(getvar, dwgprefix)), 9), 1)),$(substr, $(getvar, dwgprefix), $(-, $(strlen, $(getvar, dwgprefix)), 8), 8),)"
  "$(if, $(eq, \\, $(substr, $(getvar, dwgprefix), $(-, $(strlen, $(getvar, dwgprefix)), 10), 1)),$(substr, $(getvar, dwgprefix), $(-, $(strlen, $(getvar, dwgprefix)),9), 9),)"
  "$(if, $(eq, \\, $(substr, $(getvar, dwgprefix), $(-, $(strlen, $(getvar, dwgprefix)), 11), 1)),$(substr, $(getvar, dwgprefix), $(-, $(strlen, $(getvar, dwgprefix)), 10), 10),)"
  "$(if, $(eq, \\, $(substr, $(getvar, dwgprefix), $(-, $(strlen, $(getvar, dwgprefix)), 12), 1)),$(substr, $(getvar, dwgprefix), $(-, $(strlen, $(getvar, dwgprefix)), 11), 11),)"
  "$(if, $(eq, \\, $(substr, $(getvar, dwgprefix), $(-, $(strlen, $(getvar, dwgprefix)), 13), 1)),$(substr, $(getvar, dwgprefix), $(-, $(strlen, $(getvar, dwgprefix)), 12), 12),)"
  "$(if, $(eq, \\, $(substr, $(getvar, dwgprefix), $(-, $(strlen, $(getvar, dwgprefix)), 14), 1)),$(substr, $(getvar, dwgprefix), $(-, $(strlen, $(getvar, dwgprefix)), 13), 13),)"
  "$(if, $(eq, \\, $(substr, $(getvar, dwgprefix), $(-, $(strlen, $(getvar, dwgprefix)), 15), 1)),$(substr, $(getvar, dwgprefix), $(-, $(strlen, $(getvar, dwgprefix)), 14), 14),)"
  "$(if, $(eq, \\, $(substr, $(getvar, dwgprefix), $(-, $(strlen, $(getvar, dwgprefix)), 16), 1)),$(substr, $(getvar, dwgprefix), $(-, $(strlen, $(getvar, dwgprefix)), 15), 15),)"
 ) ;_  strcat
)
Title: Re: how can i get partial directory name with diesel?
Post by: andrew_nao on June 16, 2011, 01:45:33 PM
Code: [Select]
(menucmd
 (strcat
  "M=$(if, $(eq, \\, $(substr, $(getvar, dwgprefix), $(-, $(strlen, $(getvar, dwgprefix)), 5), 1)),$(substr, $(getvar, dwgprefix), $(-, $(strlen, $(getvar, dwgprefix)), 4), 4),)"
  "$(if, $(eq, \\, $(substr, $(getvar, dwgprefix), $(-, $(strlen, $(getvar, dwgprefix)), 6), 1)),$(substr, $(getvar, dwgprefix), $(-, $(strlen, $(getvar, dwgprefix)), 5), 5),)"
  "$(if, $(eq, \\, $(substr, $(getvar, dwgprefix), $(-, $(strlen, $(getvar, dwgprefix)), 7), 1)),$(substr, $(getvar, dwgprefix), $(-, $(strlen, $(getvar, dwgprefix)), 6), 6),)"
  "$(if, $(eq, \\, $(substr, $(getvar, dwgprefix), $(-, $(strlen, $(getvar, dwgprefix)), 8), 1)),$(substr, $(getvar, dwgprefix), $(-, $(strlen, $(getvar, dwgprefix)), 7), 7),)"
  "$(if, $(eq, \\, $(substr, $(getvar, dwgprefix), $(-, $(strlen, $(getvar, dwgprefix)), 9), 1)),$(substr, $(getvar, dwgprefix), $(-, $(strlen, $(getvar, dwgprefix)), 8), 8),)"
  "$(if, $(eq, \\, $(substr, $(getvar, dwgprefix), $(-, $(strlen, $(getvar, dwgprefix)), 10), 1)),$(substr, $(getvar, dwgprefix), $(-, $(strlen, $(getvar, dwgprefix)),9), 9),)"
  "$(if, $(eq, \\, $(substr, $(getvar, dwgprefix), $(-, $(strlen, $(getvar, dwgprefix)), 11), 1)),$(substr, $(getvar, dwgprefix), $(-, $(strlen, $(getvar, dwgprefix)), 10), 10),)"
  "$(if, $(eq, \\, $(substr, $(getvar, dwgprefix), $(-, $(strlen, $(getvar, dwgprefix)), 12), 1)),$(substr, $(getvar, dwgprefix), $(-, $(strlen, $(getvar, dwgprefix)), 11), 11),)"
  "$(if, $(eq, \\, $(substr, $(getvar, dwgprefix), $(-, $(strlen, $(getvar, dwgprefix)), 13), 1)),$(substr, $(getvar, dwgprefix), $(-, $(strlen, $(getvar, dwgprefix)), 12), 12),)"
  "$(if, $(eq, \\, $(substr, $(getvar, dwgprefix), $(-, $(strlen, $(getvar, dwgprefix)), 14), 1)),$(substr, $(getvar, dwgprefix), $(-, $(strlen, $(getvar, dwgprefix)), 13), 13),)"
  "$(if, $(eq, \\, $(substr, $(getvar, dwgprefix), $(-, $(strlen, $(getvar, dwgprefix)), 15), 1)),$(substr, $(getvar, dwgprefix), $(-, $(strlen, $(getvar, dwgprefix)), 14), 14),)"
  "$(if, $(eq, \\, $(substr, $(getvar, dwgprefix), $(-, $(strlen, $(getvar, dwgprefix)), 16), 1)),$(substr, $(getvar, dwgprefix), $(-, $(strlen, $(getvar, dwgprefix)), 15), 15),)"
 ) ;_  strcat
)



thanks but i need just 1 line if possible im using it as a field inside of a block
i dont think all these will work
Title: Re: how can i get partial directory name with diesel?
Post by: ElpanovEvgeniy on June 16, 2011, 01:50:43 PM
thanks but i need just 1 line if possible im using it as a field inside of a block
i dont think all these will work

test to:
Code: [Select]
"$(if,$(eq,\\,$(substr,$(getvar,dwgprefix),$(-,$(strlen,$(getvar,dwgprefix)),5),1)),$(substr,$(getvar,dwgprefix),$(-,$(strlen,$(getvar,dwgprefix)),4),4),)$(if,$(eq,\\,$(substr,$(getvar,dwgprefix),$(-,$(strlen,$(getvar,dwgprefix)),6),1)),$(substr,$(getvar,dwgprefix),$(-,$(strlen,$(getvar,dwgprefix)),5),5),)$(if,$(eq,\\,$(substr,$(getvar,dwgprefix),$(-,$(strlen,$(getvar,dwgprefix)),7),1)),$(substr,$(getvar,dwgprefix),$(-,$(strlen,$(getvar,dwgprefix)),6),6),)$(if,$(eq,\\,$(substr,$(getvar,dwgprefix),$(-,$(strlen,$(getvar,dwgprefix)),8),1)),$(substr,$(getvar,dwgprefix),$(-,$(strlen,$(getvar,dwgprefix)),7),7),)$(if,$(eq,\\,$(substr,$(getvar,dwgprefix),$(-,$(strlen,$(getvar,dwgprefix)),9),1)),$(substr,$(getvar,dwgprefix),$(-,$(strlen,$(getvar,dwgprefix)),8),8),)$(if,$(eq,\\,$(substr,$(getvar,dwgprefix),$(-,$(strlen,$(getvar,dwgprefix)),10),1)),$(substr,$(getvar,dwgprefix),$(-,$(strlen,$(getvar,dwgprefix)),9),9),)$(if,$(eq,\\,$(substr,$(getvar,dwgprefix),$(-,$(strlen,$(getvar,dwgprefix)),11),1)),$(substr,$(getvar,dwgprefix),$(-,$(strlen,$(getvar,dwgprefix)),10),10),)$(if,$(eq,\\,$(substr,$(getvar,dwgprefix),$(-,$(strlen,$(getvar,dwgprefix)),12),1)),$(substr,$(getvar,dwgprefix),$(-,$(strlen,$(getvar,dwgprefix)),11),11),)$(if,$(eq,\\,$(substr,$(getvar,dwgprefix),$(-,$(strlen,$(getvar,dwgprefix)),13),1)),$(substr,$(getvar,dwgprefix),$(-,$(strlen,$(getvar,dwgprefix)),12),12),)$(if,$(eq,\\,$(substr,$(getvar,dwgprefix),$(-,$(strlen,$(getvar,dwgprefix)),14),1)),$(substr,$(getvar,dwgprefix),$(-,$(strlen,$(getvar,dwgprefix)),13),13),)$(if,$(eq,\\,$(substr,$(getvar,dwgprefix),$(-,$(strlen,$(getvar,dwgprefix)),15),1)),$(substr,$(getvar,dwgprefix),$(-,$(strlen,$(getvar,dwgprefix)),14),14),)$(if,$(eq,\\,$(substr,$(getvar,dwgprefix),$(-,$(strlen,$(getvar,dwgprefix)),16),1)),$(substr,$(getvar,dwgprefix),$(-,$(strlen,$(getvar,dwgprefix)),15),15),)"
Title: Re: how can i get partial directory name with diesel?
Post by: dgorsman on June 16, 2011, 04:41:24 PM
Holy character strings, CodeMan!   :-o
Title: Re: how can i get partial directory name with diesel?
Post by: andrew_nao on June 17, 2011, 09:55:22 AM
thanks but i need just 1 line if possible im using it as a field inside of a block
i dont think all these will work

test to:
Code: [Select]
"$(if,$(eq,\\,$(substr,$(getvar,dwgprefix),$(-,$(strlen,$(getvar,dwgprefix)),5),1)),$(substr,$(getvar,dwgprefix),$(-,$(strlen,$(getvar,dwgprefix)),4),4),)$(if,$(eq,\\,$(substr,$(getvar,dwgprefix),$(-,$(strlen,$(getvar,dwgprefix)),6),1)),$(substr,$(getvar,dwgprefix),$(-,$(strlen,$(getvar,dwgprefix)),5),5),)$(if,$(eq,\\,$(substr,$(getvar,dwgprefix),$(-,$(strlen,$(getvar,dwgprefix)),7),1)),$(substr,$(getvar,dwgprefix),$(-,$(strlen,$(getvar,dwgprefix)),6),6),)$(if,$(eq,\\,$(substr,$(getvar,dwgprefix),$(-,$(strlen,$(getvar,dwgprefix)),8),1)),$(substr,$(getvar,dwgprefix),$(-,$(strlen,$(getvar,dwgprefix)),7),7),)$(if,$(eq,\\,$(substr,$(getvar,dwgprefix),$(-,$(strlen,$(getvar,dwgprefix)),9),1)),$(substr,$(getvar,dwgprefix),$(-,$(strlen,$(getvar,dwgprefix)),8),8),)$(if,$(eq,\\,$(substr,$(getvar,dwgprefix),$(-,$(strlen,$(getvar,dwgprefix)),10),1)),$(substr,$(getvar,dwgprefix),$(-,$(strlen,$(getvar,dwgprefix)),9),9),)$(if,$(eq,\\,$(substr,$(getvar,dwgprefix),$(-,$(strlen,$(getvar,dwgprefix)),11),1)),$(substr,$(getvar,dwgprefix),$(-,$(strlen,$(getvar,dwgprefix)),10),10),)$(if,$(eq,\\,$(substr,$(getvar,dwgprefix),$(-,$(strlen,$(getvar,dwgprefix)),12),1)),$(substr,$(getvar,dwgprefix),$(-,$(strlen,$(getvar,dwgprefix)),11),11),)$(if,$(eq,\\,$(substr,$(getvar,dwgprefix),$(-,$(strlen,$(getvar,dwgprefix)),13),1)),$(substr,$(getvar,dwgprefix),$(-,$(strlen,$(getvar,dwgprefix)),12),12),)$(if,$(eq,\\,$(substr,$(getvar,dwgprefix),$(-,$(strlen,$(getvar,dwgprefix)),14),1)),$(substr,$(getvar,dwgprefix),$(-,$(strlen,$(getvar,dwgprefix)),13),13),)$(if,$(eq,\\,$(substr,$(getvar,dwgprefix),$(-,$(strlen,$(getvar,dwgprefix)),15),1)),$(substr,$(getvar,dwgprefix),$(-,$(strlen,$(getvar,dwgprefix)),14),14),)$(if,$(eq,\\,$(substr,$(getvar,dwgprefix),$(-,$(strlen,$(getvar,dwgprefix)),16),1)),$(substr,$(getvar,dwgprefix),$(-,$(strlen,$(getvar,dwgprefix)),15),15),)"

thanks but that didnt work either ill just make a lisp to delete the old block and put a new block in and update it that way with attributes
appreciate the help though