Newsgroup: it.comp.software.cad
Titolo: Aiuto autolisp





Nel primo file:


come si fa a dire ad autocad che se un layer non 
esiste deve crearlo e successivamente, all'inserimento di nuovi punti lo 
seleziona e basta ?


 


Nel secondo file:


Quando il lisp esce perché il pt2 è nil gli dico di 
chiudere il file ma se provo ad aprirlo con gestione risorse, rimanendo 
all'interno di autocad, mi dice che il file è già aperto e non me lo fa vedere 
?


 




Grazie.
-- 
Giacomo


 


; 
*********************************************************************
;            
DISEGNA UN PUNTO DI COORDINATE CARTESIANE NOTE
; 
*********************************************************************


 


(defun c:cartes (/ ht xyst xytx xnomep ynomep postx 
nomep nomep1 nomestr stringa np x y pt)
(setvar "pdmode" 3)
(setvar 
"pdsize" 2)
(if (= htes nil) (setq htes 4.0))
(princ "\nAltezza testi: 
<")
(princ htes)
(princ "> ")
(setq ht (getreal))
(if (= ht 
nil) (setq ht htes))
(setq htes ht)
(command "stile" "" "" ht "" "" "" "" 
"")
(setq nomep "")
(REPEAT 100
(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 
stringa (atoi 
nomestr))
          (if (= 
stringa 0) (setq nomep nomep1))
(setq x (getreal "\nNord X: "))
(setq y 
(getreal "\nEst Y: "))
(setq pt (list y x))
(setq xnomep (+ y 
ht))
(setq ynomep (+ x ht))
(setq postx (list xnomep ynomep))
(
command "layer" "R" "Punti
" 
""
         "punto"  
pt
         
"layer" "R" "Testi" 
""
         "testo"  
postx 100 nomep
)
)
)
(princ)


 


 


; 
***************************************************************************
;          
CREA UN FILE CONTENENTE LE COORDINATE 
SELEZIONATE
;****************************************************************************


 


(defun c:cart_prn (/ pt2 Y X nomep nomep1 nomestr 
stringa file fh c datip d)
(setq file (getstring "\nInserire nome file di 
archiviazione: "))
(setq fh (open file "a"))
(setq c "  X= 
")
(setq d "  Y= ")
  (setq nomep "0")
(repeat 500
(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 di dettaglio: "))
  
(while (= pt2 nil) 
  (close fh)
    
(^c^c))
(setq Y (car pt2))
(setq X (cadr pt2))
(setq Y (rtos 
Y))
(setq X (rtos X))
(setq datip (strcat nomep c X d Y))
(princ datip 
fh)
(princ "\n" fh)
     (setq stringa (atoi 
nomestr))
        (if (= stringa 0) (setq 
nomep nomep1))
)
(close fh)
(princ)
)



Per la prima domanda prova a testare con:
(IF (= (TBLSEARCH "LAYER" "VIEW") nil)
	(COMMAND "_LAYER" "_N" "VIEW" "_C" "30" "VIEW" "")    ---> se nil creo il
layer
);if
VIEW = il nome dela layer da testare
Per la seconda scusa ma ora non ho il tempo di controllare, spero che
intervengano nel frattempo...
Ciao R.Zanni
-- 
Posted from 
ro...@linux.assicomitalia.it
 [194.184.172.7] (may be forged) 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG





Salve ho letto nel NG di CAD che sei un espero di 
LISP e vorrei porti un mio problema, sperando di non disturbarti.


Ho fatto diversi lisp raggruppati in un'unico file "emi.lsp", inoltre 
ho
fatto un menu "emi.mnu"a  discesa per poterli eseguire 
facilmente.
Ora vorrei far si che caricando il file "emi.lsp" in automatico 
si carichi
anche il menù a tendina, questo perchè vorrei consegnare i due 
file emi.lsp
e emi.mnu a terze persone che non sanno come cariare i menu e 
quindi vorrei
che con la semplice operazione del caricamento di un lisp in 
automatico si
carica anche il menu a discesa.
So che è possibile farlo 
perchè l'ho gia visto fare, ma quando provo a
carricare un menu tramite la 
funzione "carmenu" o "_menuload" eseguita dalla
riga di comando questa mi 
carica si il mio menu ma scarica tutti gli altri
menu.
Cosa devo 
fare?
Qual è la sintassi corretta da utilizzare?
Un grazie in 
anticipo


Ciao da Emiliano
ligh...@tin.it
http://spazioweb.inwind.it/emilandia/