TuttoCAD Forum

TuttoCAD Forum
[ Home | Registrati | Discussioni Attive | Discussioni Recenti | Segnalibro | Msg privati | Sondaggi Attivi | Utenti | Album Fotografico | Download | | Cerca | FAQ ]
Nome Utente:
Password:
Salva Password
Password Dimenticata?

 Tutti i Forum
 1 - TuttoCAD Software
 AutoCAD
 Pulsanti con istruzioni assegnate

Nota: Devi essere registrato per poter inserire un messaggio.
Per registrarti, clicca qui. La Registrazione è semplice e gratuita!

Larghezza finestra:
Nome Utente:
Password:
Modo:
Formato: GrassettoCorsivoSottolineatoBarrato Aggiungi Spoiler Allinea a  SinistraCentraAllinea a Destra Riga Orizzontale Inserisci linkInserisci EmailInserisci FlashInserisci Immagine Inserisci CodiceInserisci CitazioneInserisci Lista
   
Icona Messaggio:              
             
Messaggio:

  * Il codice HTML è OFF
* Il Codice Forum è ON

Faccine
Felice [:)] Davvero Felice [:D] Caldo [8D] Imbarazzato [:I]
Goloso [:P] Diavoletto [):] Occhiolino [;)] Clown [:o)]
Occhio Nero [B)] Palla Otto [8] Infelice [:(] Compiaciuto [8)]
Scioccato [:0] Arrabbiato [:(!] Morto [xx(] Assonnato [|)]
Bacio [:X] Approvazione [^] Disapprovazione [V] Domanda [?]
Seleziona altre faccine

    
 
   

V I S U A L I Z Z A    D I S C U S S I O N E
cantacad Inserito il - 27 ottobre 2012 : 11:41:09
Salve, googolando ho trovato alcune discussioni in cui per eseguire una determinata operazione, si assegna ad un pulsante una riga di testo che farà questa operazione.
Per esempio con:
(ssget "_X" (list (cons 8 (cdr (assoc 8 (entget (car (entsel "Selezionare un oggetto sul layer desiderato...."))))))))

dopo aver lanciato un comando si può selezionare tutti gli oggetti di un layer...

Domanda 1:
questo modo di procedere è sempre Lisp? che differenza c'è tra un lisp?
13   U L T I M E    R I S P O S T E    (in alto le più recenti)
cantacad Inserito il - 03 dicembre 2012 : 12:03:26
Ah capito! bello, così ho potuto confrontare! grazie
Terminator Inserito il - 03 dicembre 2012 : 10:47:28
Altrettanto semplicemente:

(defun C:SVUOTA (/ att)
(while (setq att(car(nentsel "\nSeleziona attributo: ")))
(entmod (subst (cons 1 "")(assoc 1 (entget att))(entget att)))
)
(princ)
)
cantacad Inserito il - 03 dicembre 2012 : 09:52:22
Salve, mi insegnate una cosa, vorrei rendere questo lisp "continuo", praticamente in questo momento, dopo aver "svuotato" un attributo, bisogna ricaricarlo per proseguire, vorrei invece che finchè ad esempio non do il comando ESC, resti in attesa della selezione di un altro attributo, cosa devo aggiungere?
Su un lisp che fa tutt'altra cosa ma ha più o meno questa "ricarica automatica" ho visto che c'è una riga con "while" ma non sono riuscito a modifcare questo lisp...
Saluti!
cantacad Inserito il - 02 novembre 2012 : 08:02:04
X Terminator...Santo subito!!!

X Arri...se serve vado a fare domande anche li! ha ha
arri Inserito il - 01 novembre 2012 : 07:36:02
Messaggio inserito da Terminator

Molto semplicemente:

(defun C:SVUOTA (/ att)
(setq att(car(nentsel "\nSeleziona attributo: ")))
(entmod (subst (cons 1 "")(assoc 1 (entget att))(entget att)))
(princ)
)

La funzione entsel selezionerebbe il blocco, solo nentsel ha il potere di selezionare l'attributo e in generale una sottoentità...


bello !

l'ho segnalato anche qui

grazie Terminator

Hai terminato un'altra richiesta di cantacad
Terminator Inserito il - 31 ottobre 2012 : 19:41:59
Molto semplicemente:

(defun C:SVUOTA (/ att)
(setq att(car(nentsel "\nSeleziona attributo: ")))
(entmod (subst (cons 1 "")(assoc 1 (entget att))(entget att)))
(princ)
)

La funzione entsel selezionerebbe il blocco, solo nentsel ha il potere di selezionare l'attributo e in generale una sottoentità...


PS: de nada, arri!
In teoria era possibile risolvere il tutto con le solite funzioni vla, vlax,..., in questo caso però era molto più immediato con le funzioni AutoLISP puro.
Aniello Annunziata Inserito il - 31 ottobre 2012 : 13:25:45
Se sai l'inglese questa è una vera bibbia sulla personalizzazione dell'ambiente di AutoCAD (comandi e personalizzazioni varie): http://www.upfrontezine.com/tailor/default.htm
Se invece vuoi sapere di tutto e di più sul Lisp: http://www.afralisp.com
arri Inserito il - 31 ottobre 2012 : 08:13:30
Messaggio inserito da cantacad

ha ha, no no...speravo ci fosse la possibilità fi fare piccoli comandi senza sapere l'autolisp...ad esempio vorrei farmi un pulsante che "svuota" l'attributo che clicco...ho provato a cercare nel libro "il mio lisp" i vari pezzi della stringa per modificarla ma sono fermo a
(ssget "_??????" (COSA CI SARA' QUI IN MEZZO??? (entsel "Selezionare un attributo da svuotare...."))))))))

Devo leggere qualcos'altro...googolando ho trovato questo, che valga la pena?
http://www.ibs.it/code/9788848805551/piccini-claudio/lisp-trek-guida.html

Saluti


questo è pane per GP e Terminator
cantacad Inserito il - 31 ottobre 2012 : 07:51:15
ha ha, no no...speravo ci fosse la possibilità fi fare piccoli comandi senza sapere l'autolisp...ad esempio vorrei farmi un pulsante che "svuota" l'attributo che clicco...ho provato a cercare nel libro "il mio lisp" i vari pezzi della stringa per modificarla ma sono fermo a
(ssget "_??????" (COSA CI SARA' QUI IN MEZZO??? (entsel "Selezionare un attributo da svuotare...."))))))))

Devo leggere qualcos'altro...googolando ho trovato questo, che valga la pena?
http://www.ibs.it/code/9788848805551/piccini-claudio/lisp-trek-guida.html

Saluti
arri Inserito il - 29 ottobre 2012 : 10:54:45
Messaggio inserito da cantacad

ok grazie, allora sono da capo...niente lisp niente comandi extra! saluti


scommetto che era un tentativo di usarlo in LT
cantacad Inserito il - 28 ottobre 2012 : 15:52:40
ok grazie, allora sono da capo...niente lisp niente comandi extra! saluti
Giuseppe Mauro Inserito il - 28 ottobre 2012 : 09:01:51
Il lisp e' un linguaggio di programmazione
Quella assegnata al pulsante li' e' una stringa Lisp.
La riconosci per 2 motivi:
1) inizia e finisce con una parentesi
2) contiene istruzioni lisp
Questa, in particolare dice: seleziona un oggetto di cui vuoi scegliere il layer -> di quell'oggetto ottieni la lista delle proprieta' -> isola la proprieta' layer -> seleziona tutti gli oggetti del disegno che corrispondo a questa proprieta' layer.

Stai assegnando ad un pulsante "un pezzo" di un programma lisp.

La differenza con un lisp completo e' che questa non la puoi lanciare con un comando apposito (che si definisce mediante la funzione defun) e che per essere assegnata ad un pulsante, non puo' essere piu lunga di una riga.
Altra differenza e' che ogni volta la devi riscrivere daccapo (cosa di cui si occupa il pulsante), mentre il lisp programma lo carichi una volta e lo richiami con un semplice comando.

La stessa stringa lisp, la puoi anche dare da linea di comando. Autocad la accetta senza problemi.
arri Inserito il - 27 ottobre 2012 : 12:54:28
Messaggio di cantacad
questo modo di procedere è sempre Lisp?



TuttoCAD Forum © 2001-2010 CADLandia Torna all'inizio della Pagina
Pagina generata in 3,64 secondi.