Gimp Plugin per importare e creare disegni vettorialiQuesto script nasce dalla necessità di importare in GIMP disegni vettoriali realizzati
con AutoCad. L'esigenza iniziale era quella di trasportare in GIMP la mia libreria di
retini che avevo realizzato per autocad. La prima soluzione che ho adottata è stata quella di
salvare i modelli di tratteggio su files in formato TIFF, successivamente importavo i
files TIFF in GIMP e li convertivo in patterns per GIMP salvandoli nel formato *.PAT.
Questa soluzione però non risolveva completamente i miei problemi per il fatto che i
patterns di GIMP non sono scalabili. Volendo quindi lo stesso modello a scala diversa
dovevo creare e convertire in patterns tanti files TIFF quante erano le scale desiderate,
tutto ciò con un enorme dispendio di tempo, di spazio sul disco fisso e di energie. La
soluzione adottata si compone di due fasi distinte, e ha richiesto la scrittura di due programmi: uno in autolisp per l'esportazione da autocad ed uno nel linguaggio script-fu per l'importazione in GIMP. Questa soluzione consente anche di creare facilmente disegni in formato vettoriale per GIMP anche senza l'utilizzo di autocad, servendosi unicamente di un editor di testo. Vediamo adesso in cosa consistono le due fasi:
Il file con i comandi per il disegno delle entità geometriche elementari in GIMP può anche essere realizzato utilizzando un qualunque editor di testo, e seguendo le semplici regole sintattiche riportate appresso per ogni tipo di entità geometrica.
Lo script acad-entity-import.scm consente di disegnare e posizionare
esattamente all'interno di una immagine punti, linee, polilinee, archi, cerchi ed ellissi
con semplici comandi che richiedono l'inserimento delle coordinate o dei valori che
definiscono le entità geometriche elementari. Per utilizzare la funzione è necessario
inserire in un file di testo i comandi ed i dati necessari per il disegno dell'entità
geometrica desiderata.
Richiamiamo brevemente i comandi ed i dati necessari per disegnare le diverse entità:
Dopo aver scaricato e decompresso il file acad-entity-import.scm occorre
copiarlo nella cartella \.gimp-2.0.somebody degli script personali di GIMP, per
esempio:
C:\Programmi\GIMP-2.0\share\gimp\2.0\.gimp-2.0.somebody
Una volta installato lo script può essere richiamato dalla voce di menu "/ATG
2003/Tools/Acad entity import..."
Per impostazione predefinita lo script cerca nella sottocartella di gimp "/ATG/acad-entity/"
i files di testo conteneti l'elenco dei comandi per il disegno. Se questa cartella non è
già esistente conviene crearla e conservare al suo interno i file di definizione dei
comandi man mano che vengono creati o scaricati da internet. Sul nostro sito al seguente
indirizzo http://xoomer.virgilio.it/lwcon/gimp/scripts/acad-entity.htm
è disponibile una raccolta di disegni vettoriali per GIMP, potete aiutarci ad ampliarla inviandoci i
vostri disegni.
Per disegnare una linea che va dal punto di coordinate P1(10,35) al punto di coordinate
P2(100,120) occorre inserire il seguente comando:
line,10,35,100,120
per disegnare tre segmenti inserire tre volte il comando come segue
line,5,8,20,10
line,30,15,100,36
line,120,150,50,32
Per disegnare una polilinea è sufficiente inserire una dietro l'altra le coordinate
consecutive dei suoi vertici. Per esempio il comando che segue disegna un rettangolo:
lwpolyline,10,10,50,10,50,90,10,90,10,10
Per disegnare un arco occorre inserire nell'ordine: le coordinate del centro dell'arco,
il raggio, l'angolo iniziale e l'angolo finale. Per esempio il comando che segue disegna
un arco avente il centro nel punto P(100,90), raggio 60 ed ampiezza di 120°:
arc,100,90,60,30,150
Un arco da zero a 360 gradi disegna ovviamente una circonferenza.
Per disegnare un cerchio occorre inserire nell'ordine: le coordinate del centro della
circonferenza ed il raggio. Per esempio il comando che segue disegna un cerchio di centro
C(120,80) e raggio 65:
circle,120,80,65
Per disegnare una ellisse occerre inserire nell'ordine le coordinate del centro, il
semiasse maggiore, il semiasse minor, l'eccentricità come rapporto tra l'asse minore e
l'asse maggiore, l'angolo iniziale e l'angolo finale. Per esempio il comando seguente
disegna una ellisse di centro C(150,150) l'ascissa del semiasse maggiore rispetto al
centro 60, l'ordinata del semiasse minore rispetto al centro 0, il rapporto tra l'asse
minore e l'asse maggiore 0.66666, l'angolo iniziale 0°, e l'angolo finale 360°. ELLIPSE,150,150,60,0,0.66666,0,6.28318531
Quando viene richiamata la funzione al menu Immagine "ATG 2003/Tools/Acad entity import" compare la finestra di dialogo sottostante in cui è possibile impostare le diverse opzioni.
![]() |
|
Come esempio riportiamo il listato del file contenente i comandi per disegnare un crop
circle. Per visualizzare correttamente il disegno procedere in questo modo:
| CIRCLE,0.5,0.5,0.05408129 ARC,0.44098301,0.39777957,0.22619656,0.46890501,1.6254901 ARC,0.4045085,0.66539613,0.30901699,3.74153904,4.01832418 ARC,0.44098301,0.60222043,0.22619656,3.29345369,3.55591665 ARC,0.61803399,0.5,0.22619656,1.19905859,1.46152155 ARC,0.69098301,0.5,0.30901699,1.64714394,1.92392907 ARC,0.4045085,0.33460387,0.29914558,1.50856035,2.24658249 ARC,0.44098301,0.39777957,0.23606798,1.64656271,2.64060951 ARC,0.4045085,0.66539613,0.29914558,5.69735056,0.15218738 ARC,0.44098301,0.60222043,0.23606798,5.83535291,0.5462144 ARC,0.44098301,0.39777957,0.22619656,5.3878488,5.65031175 ARC,0.4045085,0.33460387,0.30901699,5.83593415,6.11271928 ARC,0.61803399,0.5,0.23606798,3.74095781,4.73500461 ARC,0.69098301,0.5,0.29914558,3.60295545,4.34097759 CIRCLE,0.5,0.5,0.5 ARC,0.61803399,0.5,0.22619656,2.56330011,3.7198852 ARC,0.44098301,0.60222043,0.22619656,4.65769521,5.8142803 ARC,0.44098301,0.39777957,0.23606798,3.01378185,5.7369709 ARC,0.4045085,0.33460387,0.29914558,2.59174068,6.13099792 ARC,0.61803399,0.5,0.23606798,5.10817695,2.5422275 ARC,0.69098301,0.5,0.29914558,4.68613578,2.68022985 ARC,0.4045085,0.33460387,0.29914558,6.13099792,0.58583475 ARC,0.44098301,0.39777957,0.23606798,5.7369709,0.4478324 ARC,0.4045085,0.66539613,0.29914558,0.49734558,4.77462495 ARC,0.44098301,0.60222043,0.23606798,0.91938675,4.6366226 |
![]() |
Script: acad-entity-import-2.0.zip
Disegni esempio: http://xoomer.virgilio.it/lwcon/gimp/scripts/esempi.htm