developCADment

Autolisp

è il linguaggio di programmazione di autocad (autolisp può essere chiamato anche : lisp o visual lisp ma il riferimento è al medesimo linguaggio).
Sul web è possibile recuperare una grande quantità di lisp utility.
In molti casi essi sono sono i duplicati di operazioni che possono essere eseguite semplicemente utilizzando i comandi standard di

autocad

Il motivo di autolisp è quello di facilitare ed automatizzare tutte quelle procedure ripetitive che abitualmente si presentano nelle varie fasi della progettazione idraulica, civile, architettura, lavori di topografia. Lo scopo di questa pagina web è quello di fornire un aiuto a coloro che cominciano ad interessarsi alla programmazione ed allo stesso tempo fornire una serie di link che sulla base della mia esperienza professionale considero veramente utili per chi vuole conoscere piu' approfonditamente i linguaggi di programmazione. Le sezioni del sito sono divise in due parti:










introduzione al lisp


 

 

Come si carica un lisp

Nel menu tools selezionare la voce 'Autolisp' e poi 'editor visual lisp'

visual lisp

Il riquadro successivo sarà quindi:


visual lisp editor

Copiate il seguente testo nell'editor di testo
Qualora non fosse visualizzato aprite un nuovo file dal menu "file" e poi "new file".

(defun esempio_1()
(alert "il mio primo lisp")
(setq var_name_a 2)
(setq var_name_b 4)
(alert (strcat "il mio secondo lisp \n"
"la moltiplicazioni di due variabile \n"
"dove "
(rtos var_name_a 2 0)
" X "
(rtos var_name_b 2 0)
" = "
(rtos (* var_name_a var_name_b) 2 0)
) ) )

  1. Premete il tasto "Load active edit window" (vedi figura (1))
  2. Nella 'visual lisp console' comparira la scritta "form loaded from #editor Untitled-0 loading..."(vedi figura (2))
  3. Scrivete nella 'visual lisp console' (esempio_1)

 

Introduzione ad autolisp

 

Tutte le espressioni di comando di autolisp sono chiuse tra parentesi tonde '( espressione )'.
Per richiamare una funzione che esegue dei comandi basta scrivere il nome della funzione, nell'esempio sopra riportato "esempio_1", chiusa tra parentesi tonde nel prompt dei comandi di autocad quindi nel nostro caso (esempio_1).
Nell' esempio su riportato possiamo distinguere tre diversi momenti:
 
  1. Scrittura di un codice in un nuovo file, in questo caso si tratta di una funzione (esempio_1).
  2. Avviare il debug dell'editor visual lisp.
  3. Richiamare la funzione dopo il debug.

La scrittura del codice è l'elemento fondamentale di un lisp. Il codice è l'elemento che contiene le espressioni che determinano la sequenza dei comandi che vogliamo applicare ad autocad.
Il debug è l'applicativo di autocad (in questo caso visual lisp debugger) che:
- riconosce i comandi contenuti nel codice
- verifica la sintassi del codice
- carica (load) il codice con il nome comando definito dal nome della funzione all'interno del documento autocad corrente.

Ricordate che il nome della funzione contenente i comandi che abbiamo elaborato diventerà il nome con il quale viene richiamato il comando.
Il comando "linea" di autocad, ad esempio, richiama la funzione "Linea" che ci consente di disegnare una linea.
E' importante quindi non utilizzare come nome delle funzione da noi elaborate lo stesso nome di un comando di autocad.



Analisi di una funzione


Cominciamo ora ad analizzare la seguente funzione :

  1. (defun esempio_1( ) ; la funzione in questione si chiama (esempio_1)
  2. (alert "il mio primo lisp") ; richiama una finestra di default di autolisp "alert" contenente la stringa "il mio primo lisp"
  3. (setq var_name_a 2) ; dichiara la variabile var_name_a con un valore = 2
  4. (setq var_name_b 4) ; dichiara la variabile var_name_b con un valore = 4
  5. (setq var_name_b 4) ; dichiara la variabile var_name_b con un valore = 4
  6. (alert (strcat ; richiama la finestra alert ed inserisce stracat una concatenazione (unisce) le stringhe che formeranno il messaggio visualizzato
  7. "il mio secondo lisp \n" ; prima stringa
  8. "la moltiplicazioni di due variabile \n" ; seconda stringa
  9. "dove "(rtos var_name_a 2 0)" X "(rtos var_name_b 2 0) " = "(rtos (* var_name_a var_name_b) 2 0) ; terza stringa
  10. ) ) ; la prima parentesi chiude il comando alert la seconda la funzione

Al punto 1) comparirà la finestra :

primo lisp

se premete ok comparirà la finestra :

autolisp stringhe

 

 

 

 

 

 

sezione autolisp tutorial

 

 

 

 

 

 

link utlity

 

 

 

 

 

 

 

counter