cg-Cad

Lisp »Tips 'n Tricks

© by Carl BarksIn una vecchia storia di Barks Zio Paperone assume Paperino come propagandista porta a porta di un nuovo tipo di farina. Il nipote ci mette molta buona volontà, ma va in giro con scatole con le istruzioni scritte in lingua sowbuggiana...

Il linguaggio AutoLISP non è così incomprensibile, anzi è molto più semplice di quanto si possa pensare; però capita spesso (quasi sempre) aprendo un Lisp, prelevato da un sito Internet, con il Blocco note di Windows di "leggere" qualcosa del genere:

AutoCAD PROTECTED LISP file
e^4b-Eu-r~3 gwi;
V9Rfԉ3F {@ s+e|h,?X Q7_
6Z2TD+- $!-z e^4b-Eu-z
AH'u-Kg4H+
us"'nW0QgO+kG

Il Lisp è crittografato. I motivi per crittografare un Lisp sono molteplici, ad esempio il desiderio di migliorare il proprio lavoro da solo. Ma per imparare ad usare il linguaggio AutoLISP il metodo migliore è studiare il codice sorgente dei programmi Lisp.

Link a Manuali e Tutorials in AutoLISP

  • LISP Trek - Una guida all'uso del linguaggio LISP in ambiente CAD.
  • ABC's of AutoLISP
  • Roberto Rossi: Lisp/CAD - Un manuale per AutoLISP completamente gratuito da scaricare, leggere, modificare e redistribuire.
    Come scrive l'Autore il manuale "vuole essere un primo approccio con Lisp, per consentire all'utente la stesura delle sue prime procedure automatiche, in modo da poter lavorare più velocemente e meglio, dimenticandosi tutti quei passaggi tediosi che ogni giorno affliggono l'utente CAD."
    Dall'edizione 2006, con il manuale è inclusa la completa raccolta di consigli, trucchi e sorgenti lisp di AutoLISP Tips & Tricks, © 2001-2005 by Claudio Piccini, nel formato originale in Html (con immagini, test e varianti dei lisp) suddivisa in 3 volumi.

AutoLISP Tips & Tricks

[79] OSCURA
Come oscurare o isolare entità varie (retini, quote, blocchi, selezione libera, etc.) indipendentemente dal layer.
20/11/2008
Autore: Riccardo Zanatta
Lisp » 1

[78] LATXT
Come inserire blocchi leggendo le coordinate da un file di testo (TXT).
2/03/2008
Autore: Claudio Piccini
Lisp » 1

[77] Cerca e zooma
Una semplice alternativa in LISP del comando di AutoCAD Find
28/02/2008
Lisp » 1

[76] LATXT
Salva su file LINEE.TXT numero progressivo, lunghezza e angolo delle linee selezionate.
26/02/2008
Autore: Claudio Piccini
Lisp » 1

[75] TXT->Coord. Z->CSV
Disegna e salva su file PUNTI.CSV uno o più punti con la coordinata z letta da quote del disegno.
1/06/2007
Autore: Claudio Piccini
Lisp » 1

[74] TXT->Coord. Z
Disegna uno o più punti con la coordinata z letta da quote del disegno.
30/05/2007
Autore: Claudio Piccini
Lisp » 1

[73] XYZ->3DMESH
Trasformare file XYZ in mesh 3D.
12/08/2006
Autore: Claudio Piccini
Lisp e Tutorial » 1

[72] Quota Z
Scrive nel disegno la coordinata Z di tutti i punti presenti su un layer.
30/05/2006
Autore: Claudio Piccini
Lisp e Tutorial » 1

[71] Xdata
Dati estesi delle entità.
30/03/2006-3/04/2006
Autore: Claudio Piccini
Lisp e Tutorial » 1|2|3| 4|5|6

[70] Intersezione (o meno) di 2 segmenti
Come determinare se due segmenti si intersecano (o meno) senza usare la funzione Autolisp (inters p1 p2 p3 p4)
28/03/2006
Autore: Claudio Piccini
Lisp e Tutorial » 1

[69] Scale in 3d
scale in 3d
22/09/2005
Autore: Michele Ingenuo
Lisp » 1

[68] Shortcuts
viste 2d e 3d con rapidi shortcuts + opzioni per operazioni booleane e visualizzazioni wireframe shade.
22/09/2005
Autore: Michele Ingenuo
Lisp » 1

[67] TTx2
         * |         | |
      ---|-|---   ---| |--
         | |    :    ===
      ---|-|---   ---| |---
         | |         | |

         |  |         |  |
      -*-|--|---   ----||----
         |  |    :     ||
      ---|--|---   ----||----
         |  |         |  |

11/08/2005
Autore: Claudio Piccini

Lisp » 1

[66] TTx1
          | |         | |
       -*-|-|--- : ---| |---
       ---|-|---   ---| |---
          | |         | |

          | |         | |
       ---|-|--- : ---------
       ---|-|---   ---------
          | *         | |

8/08/2005
Autore: Claudio Piccini

Lisp » 1

[65] (^ a b)
Eleva a potenza intera un numero reale maggiore di 0.
5/08/2005
Autore: Claudio Piccini
Lisp » 1

[64] Lisp & 3dmesh
Implementazione in AutoLISP del comando 3dmesh
Un generatore di funzioni 3D
5/08/2005
Autore: Claudio Piccini
Lisp » 1

[63] NAO (NOT AND OR)
Un Lisp per generare tabelle di verità
17/07/2005
Autore: Claudio Piccini
Lisp » 1

[62] Come creare con le liste un campo recintato

12/07/2005
Autore: Claudio Piccini
Lisp » 1

[61] (random n)
Numeri interi casuali.
10/07/2005
Autore: Claudio Piccini
Lisp » 1

[60] ROMA2INTER
Traduce numeri romani in numeri interi (2 lisp).
10/07/2005
Autore: Claudio Piccini
Lisp » 1

[59] Gioco del labirinto
Implementazione in AutoLISP del classico algoritmo maze (array e funzioni ricorsive).
Un Lisp per uscire dal labirinto (I)
2 Lisp per disegnare labirinti casuali (I)
3 Lisp per disegnare labirinti casuali con pareti inclinate, con pareti dello spessore diverso da 0 e 3D (I)
4 variazioni su maze (I)
3/07/2005-18/07/2005
Autore: Claudio Piccini
Lisp » 1|2|3|4

[58] Come leggere un file-liste
Ecco come fare per passare ad una lista il contenuto di un file TXT strutturato come un elenco di liste.
Il file deve avere il seguente formato-dati:
'(
(n0 n1 n2 n3 nn)
...
(n0 n1 n2 n3 nn)
)

26/06/2005
Autore: Claudio Piccini
Lisp » 1

[57] Come incrementare un parametro

24/06/2005
Autore: Claudio Piccini
Lisp » 1

[56] Lisp & Array
Liste come Array bidimensionali e applicazioni in AutoLISP:
Operazioni su matrici (somma degli elementi di A, C=A+B, B=x*A, C=A-B, C=A*B)
Curve di Bézier: (I) (II)
Curve B-spline: (I)
Metodo dell'eliminazione Gaussiana: (I)
Matrice Trasposta, Identica ed Inversa (approssimazione): (I)
18/06/2005-9/07/2005
Autore: Claudio Piccini
Lisp » 1 |2 |3 |4 |5 |6 |7 |8 |9 |10

[55] Lisp & prodotti di numeri complessi
Lisp & prodotti di numeri complessi.
6/06/2005
Autore: Claudio Piccini
Lisp » 1

[54] Lisp & Quaternion Julia Sets 2D
Quaternion Julia Sets 2D.
17/05/2005-18/05/2005
Autore: Claudio Piccini
Lisp » 1 |2

[53] NIR,ANIR
Uso del Calcolatore Geometrico in AutoLISP.
9/05/2005
Autore: Claudio Piccini

[52] PLV
Algoritmo e Lisp della polvere.
7/05/2005
Autore: Claudio Piccini

[51] Lisp & Lissajous
Algoritmi e lisp per disegnare figure di Lissajous bidimensionali e tridimensionali.
7/05/2005-24/05/2005
Autore: Claudio Piccini
Lisp » 1 |2 |3 |4 |5 |6 |7

[50] SAG2,HNN
Algoritmo dell'attrattore strano ed esempi di implementazione in AutoLISP.
3/05/2005
Autore: Claudio Piccini

[49 bis] Q2L.LSP
La funzione (n2c) traduce un numero in lettere e il lisp Q2L converte un numero con decimali (o più numeri racchiusi in una finestra di selezione) in una stringa di caratteri.
21/07/2005
Autore: Claudio Piccini
Lisp » 1

[49] n2c & q2c
La funzione (n2c) traduce un numero in lettere e il lisp Q2C converte una quota numerica reale (o più quote racchiuse in una finestra di selezione) in una stringa testuale.
20/04/2005 - 29/04/2005
Autore: Claudio Piccini
Tutorial, Lisp e programma » 1|2|3|4

[48] CXYZ
Scrive nel disegno le coordinate X Y e Z di un punto nello spazio.
24/03/2005 - 30/03/2005
Autore: Claudio Piccini
Tutorial e Lisp » 1|2|3

[47] VERIFQTA
Un lisp che verifica tutte le quote del disegno e, se si tratta di quote "Forzate", ne sottolinea il testo...
20/03/2005
Autore: Claudio Rivoira

[46] LTXT / PTXT / LPTXT / TXTLP
LTXT salva su file TXT le coordinate x,y,z dei punti estremi di tutte le linee di un layer.
PTXT salva su file TXT le coordinate x,y,z dei punti presenti su un layer
LPTXT salva sui files LINEE.TXT e PUNTI.TXT gli estremi delle linee e le coordinate x y z dei punti presenti su un layer, con testo formattato e privo di parentesi di delimitazione
TXTLP funzione inversa di LPTXT
11/12/2004 - 13/12/2004
Autore: Claudio Piccini
Tutorial e Lisp » 1|2|3

[45] Automi cellulari in AutoLISP
Life di J.H. Conway e altri automi cellulari
27/04/2004 - 1/05/2004
Autore: Claudio Piccini
Tutorial e Lisp » 1|2|3

[44] Lisp & simmetrie
Cochiglie e corni 3D. Tassellature. Galassie a spirale. Reti di punti.
18/04/2004 - 17/04/2005
Autore: Claudio Piccini
Tutorial e Lisp » 1|2|3|4|5|6|7

[43] Lisp & frattali
Julia e Mandelbrot di z2+c (algoritmi dell'iterazione all'indietro e scansione del contorno). Attrattori strani.
12/04/2004 - 25/04/2005
Autore: Claudio Piccini
Tutorial e Lisp » 1|2|3|4|5|6|7

[42] Merge
Fondere 2 liste ordinate in un'unica lista ordinata.
20/03/2004
Autore: Claudio Piccini

[41] Uso di Repeat
Uso di Repeat
1/03/2004
Autore: Claudio Piccini

[40] Uso di Foreach
Una rappresentazione grafica di una funzione f(x) in modalità testo.
29/02/2004 - 1/03/2004
Autore: Claudio Piccini

[39] Tempi di cottura
Erbe aromatiche, coniglio al ragù e frittelle di riso.
21/02/2004
Autore: Claudio Piccini

[38] Uso di IF
Traduce dall'arabo al romano.
17/02/2004
Autore: Claudio Piccini
[37] Numeri casuali
Numeri, Lisp e algoritmi per generare numeri casuali.
15/02/2004 - 6/04/2004
Autore: Claudio Piccini
Tutorial »1 | 2 | 3

[36] Funzioni ricorsive
Esempi di funzioni ricorsive in AutoLISP (fattoriale, numeri primi, giochi, frattali...)
8/02/2004 - 5/04/2004
Autore: Claudio Piccini

Tutorial e Lisp »1 | 2 | 3 | 4 | 5 | 6 | 7a | b | c | d | e I | II | III | IV | V | VI | VII

[35] Path3d.lsp
Piastrella in 3d una superficie quadrata o rettangolare con piastrelle circolari e poligonali.
6/02/2004
Autore: Claudio Piccini

[34] Fence.lsp
Cut out areas in your drawing using a fence.
Autore: ?

[33] Setup.lsp
Inserisce sedie o banchi in modo automatico in un vano rettangolare.
Autore: Michele Ingenuo

[32] Bosc.lsp
Disegna un bosco.
19/01/2004 - 24/01/2004
Autore: Claudio Piccini

[31] Qbloc.lsp
Modifica del comando ARRAY, è simile ma calcola quanti blocchi inserire in una zona data secondo le distanze di X e Y inserite
Autore: Michele Ingenuo

[30] Abloc.lsp
Modifica del comando DIVIDE, copia su un percorso il blocco selezionato ma chiede la "distanza tra blocchi" e non il numero dei blocchi...
Autore: Michele Ingenuo

[29] Lybk.lsp
Un Lisp che conta i blocchi per nome e per layer e salva i dati su file
Autore: Claudio Piccini

[28] Freccia.lsp
Un lisp che consente di creare velocemente delle frecce.
Autore: Claudio Rivoira

[27] Lblk.lsp
Un lisp che inserisce una legenda con il nome ed il numero dei blocchi selezionati. Versione 1.2.

[26] Layer Color
L'idea di base è clicco su un bottone; se quando lo clicco c'è qualche oggetto selezionato allora tutti gli oggetti selezionati diventano rossi, se quando clicco lo stesso bottone nulla è selezionato allora il layer corrente diventa rosso.
Autore: Michele Ingenuo

[25] Repl.lsp
Estrae e sostituisce le informazioni da un blocco-dati.
Autore: Michele Ingenuo

[24] Laylog.lsp
Salva i layer presenti nel disegno corrente su file ASCII .txt

[23] Glue.lsp
Draws a single line between the two most-distant points of two user-selected lines. Erases the two user-selected lines. Assigns to the new line the same properties of Layer, Color, Linetype, and Thickness as those of the first user-selected line.

[22] Spirale 3D
(C) 1985, Kelvin R. Throop

[21] Realistic Grass for Elevations
Draws row of grass with random height, spacing and angle in elevation
(C)1994, Watson Kilbourne

[20] Eseguire Lisp in Autocad
ho scaricato un file lisp, come faccio a farlo funzionare in autocad 2000????? non capisco dove metterlo.... e cosa fare x farlo andare....

[19] Funzioni varie

Funzioni » 1|2

[18] Variabili locali e globali
Gestione delle variabili locali e globali in AutoLISP.
9/08/2003

[17] DEBUG.LSP
Questo lisp scova le virgolette dispari all'interno di un rigo e conta le parentesi aperte e chiuse.

[16] NRIGO.LSP
Questo lisp numera le linee di codice di un sorgente Lisp.
6/08/2003

[15] Tipi di variabili
Un sorgente che mostra i tipi di variabili in AutoLISP.

[14] Indentazione e commenti
Un commento è semplicemente una nota che spiega...
4/08/2003

[13] Seleziona e cambia layer
Seleziona con una linea spezzata n entità e le sposta di layer
7/06/2003

[12] Seleziona e divide
Seleziona con una linea spezzata n linee e le divide nel punto d'intersezione.
7/06/2003

[11] File Help
Come creare un file help per uno o più lisp.
5/06/2003

[10] TXT2LST.LSP
Come salvare in una lista il contenuto di un file di solo testo.
12/01/2003

[09] Tutorial di Claudio Rivoira
Un "concentrato" di varie routine di acquisizione dati. Molto utile come "base" per altri programmi.
18/11/2002 - 6/01/2003
Tutorial » 1|2|3

[08] AREAL.LSP
Un lisp che chiede di selezionare un lato di un poligono e ne calcola l'area, il perimetro e i vertici.

[07] Esempio d'uso di entsel
Ecco un programma che chiede di selezionare un'entità (una linea), ne estrae i punti estremi e li visualizza sulla linea di comando di Autocad.

[06] Esempio di file dcl
Listato in lisp e dcl per vedere come si scambiano i dati: solo una finestra di dialogo in cui c'è la possibilità di immettere un valore e vedere come lo passa al lisp.

[05] ORTOG.LSP
Correttore ortografico per AutoCAD 12. Una lista con le parole più ricorrenti è usata dal programma per controllare le parole presenti nella finestra di selezione...

[04] Estrazione di elementi dalle liste


[03] Elimina spazi
Come eliminare gli spazi da un file LISP (solo per crittografi irriducibili).

[02] PICKA.LSP
Calcola l'area di un vano chiuso.

[01] MyError()
Un gestore degli errori in AutoLISP.

Lisp »Tips 'n Tricks