Newsgroup: it.discussioni.geometri
Titolo: Per Maci. Aiutami con il lisp

LISP
Devo salvare delle coordinate su un file nuovo che apro mediante il comando 
tipo:
(setq file (getfiled "Digita file da memorizzare" "C:/" "txt" 0))
(setq desc (open file "a"))
Come posso impostare il flag? con tutti i numeri non sono riuscito e sulla 
rete non ho trovato spiegazioni
-- 
Ciao 


Immagino ti riferisca alla funzione getfiled.
Per creare un nuovo file dovrebbe essere sufficiente il valore "1"
Considera però che il secondo argomento è il nome del file di default. 
Se invece intendi specificare un percorso devi aggiungere anche 16.
Quindi prova con un bel "17".
Questo è quello che dice l'help:
---
flags
An integer value (a bit-coded field) that controls the behavior of the 
dialog box. To set more than one condition at a time, add the values 
together to create a flags value between 0 and 15. The following flags 
arguments are recognized by getfiled:
1 (bit 0) Prompt for the name of a new file to create. Do not set this 
bit when you prompt for the name of an existing file to open. In the 
latter case, if the user enters the name of a file that doesn't exist, 
the dialog box displays an error message at the bottom of the box.
If this bit is set and the user chooses a file that already exists, 
AutoCAD displays an alert box and offers the choice of proceeding with 
or canceling the operation.
4 (bit 2) Let the user enter an arbitrary file name extension, or no 
extension at all.
If this bit is not set, getfiled accepts only the extension specified in 
the ext argument and appends this extension to the file name if the user 
doesn't enter it in the File text box.
8 (bit 3) If this bit is set and bit 0 is not set, getfiled performs a 
library search for the file name entered. If it finds the file and its 
directory in the library search path, it strips the path and returns 
only the file name. (It does not strip the path name if it finds that a 
file of the same name is in a different directory.)
If this bit is not set, getfiled returns the entire file name, including 
the path name.
Set this bit if you use the dialog box to open an existing file whose 
name you want to save in the drawing (or other database).
16 (bit 4) If this bit is set, or if the default argument ends with a 
path delimiter, the argument is interpreted as a path name only. The 
getfiled function assumes that there is no default file name. It 
displays the path in the Look in: line and leaves the File name box blank.
32 (bit 5) If this bit is set and bit 0 is set (indicating that a new 
file is being specified), users will not be warned if they are about to 
overwrite an existing file. The alert box to warn users that a file of 
the same name already exists will not be displayed; the old file will 
just be replaced.
64 (bit 6) Do not transfer the remote file if the user specifies a URL.
128 (bit 7) Do not allow URLs at all.
---
-- 
Ciao
Maci

 Questo è quello che dice l'help:
Ma io e gli inglesi non andiamo d'accordo:
Il mio lisp con il flag 1 mi apre la finestra dei file ma in basso a destra 
mi si presenta "salva" non "apri" e mi salva il file che io digito vuoto 
naturalmente.
Ecco come l'ho scritto:
;****************************************************************************
;          TRASFERISCE PUNTI 2d dal CAD A FILE TXT PER TRIMBLE
;****************************************************************************
(defun c:trimble (/ pt1 pt2 Y X nomep nomep1 nomestr nometot cartella file 
fh b are gior datilogo datidata file)
 (setvar "blipmode" 1)
 (setvar "AUNITS" 2)
 (setvar "ANGDIR" 1)
 (setvar "ANGBASE" ( * pi 0.5))
 (setvar "AUPREC" 4)
  (setvar "LUNITS" 2)
 (setvar "LUPREC" 3)
 (setvar "PDMODE" 3)
 (setvar "PDSIZE" -2.0000)
 (if (= nomefile nil) (setq nomefile " "))
  (if (= nomedir nil) (setq nomedir " "))
(setq file (getfiled "Digita file da memorizzare" "C:/" "txt" 1))
(setq desc (open file "a"))
 (setq b ",")
 (setq nomep "0")
 (setq pt2 T)
 (while PT2  ;finchè PT2 è diverso da NIL, esegue questo:
  (setq nomep1 nomep)
  (setq nomep (itoa (+ 1 (atoi nomep))))
  (princ "\nNome del punto:<") (princ nomep) (princ ">")
  (setq nomestr (getstring ))
  (if (= nomestr "") (setq nomestr nomep))
  (setq nomep nomestr)
  (setq pt2 (getpoint "\nSelezionare punto dettaglio: "))
  (if pt2
   (progn  ;se è impostato PT2, esegue questo:
    (setq Y (rtos (car pt2)))
    (setq X (rtos (cadr pt2)))
    (princ (strcat (strcat nomep b X b Y) "\n") fh)
    (setq stringa (atoi nomestr))
    (if (= stringa 0) (setq nomep nomep1))
   );fine progn
   (progn ;se NON è impostato PT2, esegue questo:
    (close desc)
   );fine progn
  );fine if
 );fine while
(prompt "\n \nTerminato")
 (princ)
);fine defun
-- 
Ciao, grazie 


Guarda, adesso devo andare, ne riparliamo domani
Certo che se tu ti spiegassi meglio ... ;-)
Nel primo post volevi un file da creare nuovo
Ora ti lamenti che ti da l'opzione salva.
Ma tu cosa vuoi realmente.
Spiegati con qualche parola in più ... :-)
(il listato non l'ho ancora letto. ora vado)
-- 
Ciao
Maci

"Maci" <maci...@pippo.pip> ha scritto nel messaggio
news:i6lmb6$otg$
2...@tdi.cu.mi.it

Voglio (si fa per dire!) aprire un file il cui nome digito io, scriverci le 
coordinate dentro e salvarlo.
Tutto qua.
-- 
Ciao 

"il grande fardello" <nonte...@virgilio.it.invalid> ha scritto nel
messaggio news:4c8e5f4e$0$18998$
4faf...@reader5.news.tin.it

Risolto.
scriveva i dati (princ) di fh invece che su desc.
Grazie comunque.
-- 
Ciao 


Perfetto. In effetti quel fh non centra nulla.
Alla fine hai usato 0 o 1 per il flag di getfiled?
-- 
Ciao
Maci

"Maci" <maci...@pippo.pip> ha scritto nel messaggio
news:i6nesi$8bs$
1...@tdi.cu.mi.it

1 e funziona alla perfezione.
-- 
Ciao