CADsite forum

AutoCAD => Autolisp => Topic gestart door: martin op vr 29 04 2016, 23:46:20

Titel: padnaam hoger opvragen
Bericht door: martin op vr 29 04 2016, 23:46:20
Hallo, met onderstaande code kan ik de padnaam opvragen.
Weet iemand hoe ik 3 mappen hoger te pakken krijg ?
via dos misschien? cd.. cd.. cd.. maar hoe vang ik die naam?


(setq teknaam (substr (getvar "dwgprefix") 1 (- (strlen (getvar "dwgprefix")) 0)))    ;; zoekt tekening padnaam

dit dus niet :
(setq filenam (substr (getvar "dwgprefix") 1 (- (strlen (getvar "dwgprefix")) 34)))
want de padnamen hebben niet altijd 34 karakters

Bedankt alvast,
Martin
Titel: Re: padnaam hoger opvragen
Bericht door: roy_043 op za 30 04 2016, 10:17:33
Kan waarschijnlijk eleganter maar dit werkt:
; (ParentDirectory (getvar 'dwgprefix) 1) => "D:\\bKG_tmp"
; Let op:
; (ParentDirectory (getvar 'dwgprefix) 1000) => "D:"
(defun ParentDirectory (path n)
  (setq path (vl-string-right-trim "\\/" path))
  (repeat n (setq path (vl-filename-directory path)))
  path
)
Titel: Re: padnaam hoger opvragen
Bericht door: gery op za 30 04 2016, 11:54:18
Citaat van: martin op vr 29 04 2016, 23:46:20Weet iemand hoe ik 3 mappen hoger te pakken krijg ?
(setq #path4 (vl-filename-directory (vl-filename-directory (vl-filename-directory (vl-filename-directory (getvar 'dwgprefix))))))
Citaat van: martin op vr 29 04 2016, 23:46:20(setq teknaam (substr (getvar "dwgprefix") 1 (- (strlen (getvar "dwgprefix")) 0)))    ;; zoekt tekening padnaam
(getvar "dwgprefix") doet exact hetzelfde.

Edit: (vl-load-com) niet vergeten!
Titel: Re: padnaam hoger opvragen
Bericht door: roy_043 op za 30 04 2016, 12:40:53
Citaat van: gery op za 30 04 2016, 11:54:18
(getvar "dwgprefix") doet exact hetzelfde.
Niet helemaal. De code van martin verwijdert het laatste karakter (= 'path separator').

Edit:
Oops: Ik zie dat ik niet goed heb gelezen. Gery heeft gelijk. Door (- (strlen (getvar "dwgprefix")) 0) i.p.v. (- (strlen (getvar "dwgprefix")) 1) heeft de code geen effect.
Titel: Re: padnaam hoger opvragen
Bericht door: martin op ma 02 05 2016, 20:16:41
Super bedankt !!! dit kan ik gebruiken.
groet,Martin
Titel: Re: padnaam hoger opvragen
Bericht door: martin op za 07 05 2016, 17:00:52
nog een vraag :
Met "dwgprefix" kan ik het pad zoeken
Hoe kan ik het AANTAL .dxf files uit deze map halen ?
die heb ik nodig voor mijn loop.
iets met "length" ? dan moet ik eerst een list hebben, toch ? Hoe kan dat?
Alvast bedankt,
groet, Martin
Titel: Re: padnaam hoger opvragen
Bericht door: roy_043 op zo 08 05 2016, 00:17:08
(vl-directory-files path "*.dxf" 1)