Come nasce questa esigenza:
Nasce dalla esigenza di un Autocad alternativo il quale non supporta i menù ad
icona richiamati da pulsanti (icone) delle Toolbar, allora avendo + di 400
simboli e slide da recuperare per poterle visualizzare da Toolbar. Inoltre i
nomi delle slide non corrispondono ai nomi DWG e una volta selezionato il
simbolo dalla libreria non dovevo semplicemente inserire il simbolo, ma
richiamare una funzione lisp che si inseriva il blocco, ma doveva fare altre
azioni. Tali azioni venivano fatte a seconda delle variabili passate tramite la
libreria (menù ad icona).
Come funziona:
Avendo le slide divise per Directory, ho pensato di creare dei file di appoggio TXT scrivendolo in quest'ordine:
1) scrivo il nome della slide (senza estensione),
2) la descrizione del testo da scrivere nell'elenco alla SX delle icone del menù ad icona,
3) il nome del blocco (nel mio caso senza il percorso),
4) la parola INSERT per capire cosa devo fare,
5) lo snap per l'inserimento.
Andiamo nel dettaglio della spiegazione e facciamo vedere qualche immagine:
Vediamo com'è formato il file TXT.
|
La prima riga "Contatti 1" corrisponde al titolo del menù ad icona.
Come scritto sopra il file è formattato in un certo modo. Noterete degli "*" e dei "$".
Gli "*" dividono i settaggi mentre gli "$" indicano che in quel posto la slide è vuota e non richiama nessun comando.
Quindi avremo il composto da un titolo e 20 righe dove scrivere i nostri dati per visualizzare la libreria.
Nell'immagine quì a fianco noterete che su alcune righe c'è alla
fine una parola CONT01 che è una funzione che deve essere richiamata
quando seleziono la slide. Ma a voi al momento non serve. |
Prima ho scritto che vengono gestiti i pulsanti "Successivo" e "Precedente" e la cosa è stata concepita così:
All'interno della nostra directory contenente le slide metto tutte le mie slide che appartengono alla stessa categoria, per esempio:
Ho una categoria "interruttori" e quindi il nome directory potrà essere "Interruttori" ha circa 48 slide corrispondenti a 48 blocchi. Quindi avendo detto prima che il menù è composto da 20 slide dovrò creare 3 file TXT contenenti 20+20+8 righe di settaggi. Tali file dovranno però essere chiamati, come si vuole, ma con prima dell'estensione un numero sequenziale come per es:
Interr1.txt con le prime 20 slide
Interr2.txt con le seconde 20 slide e
Interr3.txt con le ultime 8.
oppure
Interr1.txt con le prime 18 slide
Interr2.txt con le seconde 16 slide e
Interr3.txt con le ultime 12.
Quel numero sequenziale mi serve per capire su che range di
libreria sono e per gestire anche i pulsanti "Successivo" e "Precedente" ed il menù ad icona è composto da 20 Slide come di consueto.
Lo so è laborioso creare questi file, ma sempre più veloce che creare le varie
icone col relativo comando tramite l'interfaccia di Autocad. In questo modo da
un pulsante richiamo la libreria che mi serve visualizzare contenente i miei
simboli ed in più è utilizzabile con altri programmi CAD che siano compatibili
con Visual Lisp o Autolisp.
Quando premeremo l'icona la libreria che si aprirà sarà sempre la
prima e quindi quella col nome "...1.txt".
Altri dettagli:
Il programma richiama una "dcl" che si chiama "Image.dcl" la quale contiene le 20 slide con le seguente "key" sequenziali, da "img1" a Img20".
I file TXT dovranno essere compilati per tutte le 20 slide anche
se la libreria ne conterrà solo 12 per esempio. Per le slide che dovranno
rimanere vuote alla relativa riga sul file TXT dovrò scrivere il numero della
slide più dei caratteri speciali
5*$*
9*$*
10*$* e così via.
Ricordo che l'asterisco * serve come
separatore mentre il dollaro
$ per indicare che la slide è vuota. Ho scelto questi caratteri perchè non ho mai visto nomi di blocchi
con questi caratteri.
L'esempio che pubblicherò sarà solamente per il semplice
inserimento di un blocco con eventuale snap di inserimento.
Conterrà il programmino in Vlisp, il file DCL e un file TXT.
Successivamente
metterò in linea anche una versione dove la slide corrisponde al nome del blocco
e quindi senza questo file TXT di appoggio.
Infine:
Ci sarà da modificare una riga di codice del programma dove viene
Infine:
Ci sarà da modificare una riga di codice del programma dove viene
scritto il perscorso di ricerca del DCL. Al momento il percorso
"f:\\LibSima2010\\Autolisp\\image", basterà fare un trova di
questo percorso e sostituirlo con uno a vostro piacere mantenendo la parola
"image" che è il nome del file DCl che visualizza in menù ad icona, quindi per
es: "C:" "C:\\Librerie\\image" oppure
"C:/librerie/image"
Il percorso invece di dove andare a trovare i blocchi della
libreria verrà scritto su un'icona di una vostra Toolbar e nella voce macro
scriverete:
^C^C(setq dir "C:/vostropercorso/categoria");apriicon
Come noterete a volte ho scritto il percorso sia con \\ che
con / , questo perchè autolisp accetta tutti e 2.
Riassumendo:
1) Se avete necessità di dividere le librerie per
categoria, creare per ogni categoria una directory.
2) Ogni directory conterrà tutte le slide e tutti i
file TXT strutturato come sopracitato, un file per quante suddivisioni di 20
slide (o blocchi) che si vogliono visualizzare, ricordandosi di salvare i vari
nomi dei file TXT con un numero sequenziale, ...1.txt, ...2.txt, ...3.txt. Il
numero deve esserci anche se si tratta solo di un file.
3) Modificare con un editor di testo tipo Blocco
Note, il percorso del file DCL dedicato alla visualizzazione del menù ad icona.
4) Creare una vostra Toolbar con tutti i vostri
pulsanti ed assegnare ad ogni pulsante il codice ^C^C(setq dir"....")
5) Scaricare l'applicazione dall'apposita sezione e
salvarla dove si vuole.
6) Caricare l'applicazione da Autocad tramite
"Carica applicazione" dalla cartella di dove sono stati scaricati file di prima
e selezionare il file con estensione "LSP"
Compatibilità:
Ho provato questa funzione con Autocad 2006 e credo anche le versioni
successive, Bricscad V9 e V10, ZwCAD della Intellicad, invece ho provato con
Intellicad 6.6 Pro e non funziona.
Ovviamente rimango a disposizione per eventuali chiarimenti.
|