cg-Cad

Lisp »EsplodiG

Autore: Claudio Rivoira
Licenza: Freeware
Dimensioni: 2.312 byte
Sito WEB: La Granda
Categoria: Applicativo per AutoCAD 12-2005

Da qualche tempo ho iniziato ad utilizzare i Gruppi di Autocad.
Sostanzialmente consistono in una serie di entità (testi, linee, cerchi ...) che sono stati "Raggruppati" insieme e gli è stato dato un nome. E' come se si decidesse di assegnare un nome a una serie di entità che si vuole spostare tutte insieme: in autolisp lo si assegnerebbe ad una variabile e lo si chiamerebbe "Set di selezione".
Il comando Gruppo è però poco versatile quando si tratta di cancellarli (esploderli): occorre esploderli uno ad uno selezionandone il nome dall'elenco. Inoltre non è possibile cancellarli dal disegno e sperare di eliminarne ogni traccia lanciando il comando "Elimina" (Purge) ... i gruppi non vengono eliminati da questo comando.
Per risolvere questi problemi, ho scritto un piccolo programmino per "Esplodere" i gruppi ... semplicemente selezionandoli, senza quindi doverne digitare il nome esatto.

Analisi del programma:
Quando ho iniziato la stesura del programma, ho cercato qualche indizio che mi permettesse di capire con quale criterio Autolisp definisce i Gruppi.
Purtroppo selezionando una serie di entità contenute all'interno di un gruppo, queste mi si presentavano esattamente come le entità separate (linea, testo ecc). Dopo qualche giorno, per puro c... fortuna, ho scoperto l'esistenza di un codice di gruppo particolare: 330.

Estraendo il nome esadecimale di questo codice di gruppo, si ottenevano 2 casi: (0."GROUP")=gruppo (0."BLOCK_RECORD")=altra entità scavando ancora più a fondo (cioè estraendo un'altra volta il nome esadecimale grazie al codice 330), ho potuto trovare il nome del gruppo ed usarlo in un comando Gruppo per esplodere lo stesso.

Quindi questo programmino è di una semplicità disarmante, una volta scoperto che si tratta semplicemente di entità inserite "l'una dentro l'altra": come le bamboline Russe (Matrioska).
Una cosa simile avviene anche per le polilinee: per ottenere i vertici di una polilinea occorre scavare allo stesso modo. Per questo motivo in Autolisp, le polilinee vengono chiamate "Entità complesse" ... che nome altisonante!

E' importante ricordarsi che questo comando permette di esplodere i gruppi non più necessari, ma solo se questi non sono ancora stati cancellati dal disegno (erase), poiché, come già detto, il comando Elimina (Purge), non è in grado di eliminarli, come farebbe con i blocchi cancellati dal disegno e quindi non più usati.

Ho anche fatto un'icona esplodig.bmp da inserire nella barra strumenti: si tratta di una "bomba" nera con una G sopra (per distinguerla dal "candelotto di dinamite" utilizzato per rappresentare l'esplosione dei blocchi).

Per completare l'opera ho creato un file MENU.MNS contenente i comandi per poter lanciare il programma sia dal menù a discesa, sia dall'icona.
Questo menù potra essere caricato autonomamente, o essere integrato con altri menù aggiuntivi di autocad facendo un "Copia Incolla" con BLOCCO NOTE di Windows. Nel menù ho ipotizzato che il programmino e l'icona si trovino nella sottocartella LSP.

esplodig.zip
Dimensioni file zip: 2.312 byte
AutoCAD

Lisp »EsplodiG