Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[LISP]scrivere un percorso relativo e non assoluto

139 views
Skip to first unread message

Studio MIRANO

unread,
Jan 27, 2006, 3:04:38 PM1/27/06
to
ho fatto un lisp dove grazie a

(startapp "notepad" "E:/prova/version.txt")

apro il file version.txt

a parte che non ho capito se l'estensione .txt va scritta o no, perchè
tanto autocad lo apre lo stesso, ma la domanda è:

siccome il lisp andrà distribuito, e quindi non sempre version.txt sarà in
e:\prova, come fare? La cosa certa è che version.txt sarà sempre nella
stessa cartella dove c'è il lisp, ma come dire al lisp "nella cartella dove
ci sei te?"

oppure come mettere un percorso relativo, come si fa in html è cioè
puntoslash per indicare la stessa cartella?


--
Studio geometra MIRANO Dario
www.studiomirano.it
Progettazione - Direzione lavori - Catasto terreni e fabbricati -
Cartellonistica - Grafica 2D e 3D

Marco

unread,
Jan 28, 2006, 2:33:31 AM1/28/06
to
> a parte che non ho capito se l'estensione .txt va scritta o no, perchè
> tanto autocad lo apre lo stesso,

per Notepad l'estensione TXT è predefinita.


> siccome il lisp andrà distribuito, e quindi non sempre version.txt sarà in
> e:\prova, come fare? La cosa certa è che version.txt sarà sempre nella
> stessa cartella dove c'è il lisp, ma come dire al lisp "nella cartella
> dove
> ci sei te?"

se il lisp viene caricato con (load "mioLisp") [senza percorso] allora:

(startapp "notepad" (findfile "version.txt"))

--
----------------------------------------------------------
Marc'Antonio Alessi - http://xoomer.virgilio.it/alessi

Per AutoCAD:

- Travi 2D: disegno automatico travi e pilastri in C.A.
a 99€

- Elaborazione dati from/to Excel
- Librerie manufatti in assonometria
- Autolayers: gestione automatica dei layers
- Elaborazioni e stampe multiple e automatiche
- Parametrico 2D, Viterie 2D/3D, Esplosi 2D/3D
- AutoGroups: gestione automatica gruppi di layers
- SetUp del disegno con gestione automatica DimStyles
- Conversione automatica files Inventor a DWG e viceversa
anche senza avere Inventor installato
- ...
----------------------------------------------------------

Studio MIRANO

unread,
Jan 28, 2006, 10:12:23 AM1/28/06
to
avevo provato con findfile, ma la sintassi che riporta l'help mi pare chieda
anche di specificare una cartella dove cercare il file, quindi ero di nuovo
al punto d'accapo.
Adesso provo a fare come hai detto tu.
Grazie mille anche per questa risposta !

Studio MIRANO

unread,
Jan 29, 2006, 8:59:57 AM1/29/06
to
no, non va......in effetti il lisp non viene caricato senza percorso, perchè
anche esso può essere posizionato in una cartella qualsiasi. Il lisp è
caricato nel menu d'avvio.
Il fatto è che io dovrei ricavare la cartella nel quale è sito il
lisp......ma come fare?

In pratica dovrei scrivere una cosa del genere:

(startapp "notepad" (strcat (lastessacertelladiquestolisp "/version.txt")))

come trovo "lastessacertelladiquestolisp" ?

Inoltre mi succede che comunque se metto il percorso intero, quando si apre
notepad, apre il file che gli dico, ma poi la sua finestra viene subito
ridotta ad icona. Non che sia un groso guaio, però sarebe bello rimanesse in
primo piano......

4all

unread,
Jan 29, 2006, 10:02:43 AM1/29/06
to
ma riesci a leggere il percorso dove si trovano il file?


Marco_AA

unread,
Jan 29, 2006, 12:53:47 PM1/29/06
to
> Il lisp è caricato nel menu d'avvio.

Puoi riportare il codice che carica questo Lisp.

Studio MIRANO

unread,
Jan 31, 2006, 1:12:03 PM1/31/06
to
allora.....

il lisp è questo:

(defun c:miolisp ()
(startapp "notepad" (findfile "C:\\cartellaacaso\\help.txt")) ;ho messo
findfile, ma se lo levo è la stessa cosa
)

il lisp si trova all'interno della cartella "cartellaacaso" e viene lanciato
dalla seguente riga di menu:

***MENUGROUP=MIO MENU
***POP16
ID_help [&Mio help]miolisp;

tale menu viene anch'esso posizionato nella cartella "cartellaacaso".

Ora, l'utente che installa il mio lisp, copierà lisp e menu nella cartella
"cartellaacaso" di sua scelta e poi provvederà al caricamento in autocad del
menu e del lisp (in modo permanente mettendolo nei lisp caricati sempre
all'avvio).

Il mio problema e che sarebbe troppo chiedere all'utente di modificare anche
il percorso della cartella nel lisp che richiama help.txt, quindi volevo
modificare

(startapp "notepad" (findfile "C:\\cartellaacaso\\help.txt"))

mettendo una sorta di percorso relativo o in qualche altro modo che possa
andare bene con qualsiasi cartella

come fare?

Studio MIRANO

unread,
Jan 31, 2006, 1:15:20 PM1/31/06
to
aggiungo ancora questo, leggendo la variabile: menuname, ottengo il percorso
del menu, ma non del mio menu, bensì del menu di autocad......come ottenere
il percorso del mio menu?Questo risolverebbe tutto


Marco_AA

unread,
Feb 1, 2006, 9:35:19 AM2/1/06
to
> come ottenere il percorso del mio menu?Questo risolverebbe tutto

Senza VLisp (penso che così tu chieda) non so come si possa fare.

Io costringerei l'utente ad aggiungere il percorso "cartellaacaso"
a quelli di AutoCAD così risolveresti questo ed altri problemi.

Il tutto si può fare anche automaticamente ma è un discorso lungo.

Studio MIRANO

unread,
Feb 3, 2006, 2:38:21 PM2/3/06
to

> Senza VLisp (penso che cosě tu chieda) non so come si possa fare.

in che senso?Con Vlisp si puň fare?E come?
Forse mi son perso un pň la differenza tra vlisp e lisp------


Marco_AA

unread,
Feb 3, 2006, 10:59:55 PM2/3/06
to
> in che senso?Con Vlisp si può fare?E come?

(defun ALE_MenuFileNameList ( )
(vl-load-com)
(princ "\nMenu FileName List:")
(vlax-for MnuGrp (vla-get-MenuGroups (vlax-get-acad-object))
(princ "\n\n")
(princ (vla-get-MenuFileName MnuGrp))
)
(princ)
)

--
----------------------------------------------------------
Marc'Antonio Alessi - http://xoomer.virgilio.it/alessi

Per AutoCAD:

- Travi 2D: disegno automatico travi e pilastri in C.A.

e relativi ferri e staffe (99€)

- Calcolo automatico aree su planimetrie: report su Excel
per locale altezza, piano
con descrizioni locali e piani (49€)

Studio MIRANO

unread,
Feb 5, 2006, 2:17:08 PM2/5/06
to
che dire.....grazie duemila!
scusa, adesso però ti devo chiedere una cosa, per VLISP, indendi il lisp che
fa uso delle librerie VL o VLAX? Cioè quelle per cui usi vl-load-com?
Ne avevo già usata qualcuna, per esempio per leggere tutti i file contenuti
in una cartella (vedi post di qualche settimana fa dove mi consigliavano una
applicazione dos arx gratuita), ma non pensavo che fosse questa la
differenza tra lisp e vlisp. Ma ci sono situazioni in cui è ancora
necessario usare solo il lisp e non il vlisp?

SePrAm.com

unread,
Feb 6, 2006, 4:54:15 AM2/6/06
to
Comincia a guardare questo lisp:
http://www.sepram.com/DEMO/LSP/Reattori.lsp
Lanciando POLTXT il programma chiede di selezionare una polilinea; lungo i
suoi vertici intermedi verrà scritta la lunghezza.
Se poi provi a spostare con i grips i vertici della poly la lunghezza
dovrebbe aggiornarsi.
Potrebbe essere un'inizio...
Ciao Claudio

--
--
"Studio MIRANO" <geodarioTOG...@libero.it> ha scritto nel messaggio
news:NiOEf.159204$65.44...@twister1.libero.it...
>
> > Senza VLisp (penso che così tu chieda) non so come si possa fare.
>
> in che senso?Con Vlisp si può fare?E come?
> Forse mi son perso un pò la differenza tra vlisp e lisp------
>
>
>
>


Marco_AA

unread,
Feb 6, 2006, 12:32:22 AM2/6/06
to
> per VLISP, indendi il lisp che fa uso delle librerie VL o VLAX?

Intendo ciò che una volta si chiamava Vital Lisp e che AutoDesk
ha acquistato ed implementato dalla Versione 2000 (per R.14 era
una opzione a pagamento) e che a chiamato Visual Lisp.

i nomi delle funzioni iniziano con vl-, vla-, vlax-, e vlr-.

--

> Cioè quelle per cui usi vl-load-com?

solo le funzioni che iniziano con vla-, vlax-, e vlr- necessitano
di:

vl-load-com

This function loads the extended AutoLISP functions provided with
Visual LISP. The Visual LISP extensions implement ActiveX and
AutoCAD reactor support through AutoLISP, and also provide ActiveX
utility and data conversion functions, dictionary handling
functions, and curve measurement functions.
If the extensions are already loaded, vl-load-com does nothing.

--

> Ma ci sono situazioni in cui è ancora
> necessario usare solo il lisp e non il vlisp?

Si, ad esempio se il programma deve "girare" su versioni precedenti
alla 2000 o in IntelliCad.


Marco_AA

unread,
Feb 6, 2006, 12:47:50 PM2/6/06
to
> una opzione a pagamento) e che a chiamato Visual Lisp.

una opzione a pagamento) e che ha chiamato Visual Lisp.

0 new messages