Programmare gli hatch
Disegnare un nuovo hatch è un incubo. Sarei curioso di sapere come è stata inventata la codifica che mi sembra assurda. Tuttavia si tratta di un file di testo semplice e di seguito cerco di chiariarvi come fare.
Cominciamo dall'help in linea. Il file che definisce un hatch (o pattern) è un semplice file di testo, in codifica ANSI, con estensione .pat. Va salvato insieme agli altri file pat del cad, in uno dei percorsi di supporto del software, che si può trovare dalle opzioni.
Di seguito un esempio:
*test, test pattern description
15, 1,3, 10,4, 5,-2 ;questo è un commento
I suddetti numeri sono così descritti:
- An angle at which the line is drawn
- An X,Y origin point
- A delta-x of 0
A delta-y of any value
…e francamente si capisce poco, anche perché manca l'ultima coppia di parametri che specifica lunghezza del tratto e spaziatura.
In generale la cosa più spiazzante è che, dato l'orientamento (il primo parametro, l'angolo) il tratteggio è descritto in coordinate relative a quello.La figura di seguito, che raffigura l'hatch descritto sopra, vale più di qualunque descrizione. Potete facilmente riconoscere le cifre che descrizione nelle quotature. Notate come, dato l'angolo di 15° (su 360°), l'origine (seconda coppia di parametri X e Y) è data ancora in un sistema ortogonale dritto, mentre la seconda coppia, che specifica di quanto si sposta l'origine della ripetizione del tratteggio, ha coordinate relative rispetto al primo tratto, di una quantità x e y ruotati parallelamente al segmento, quindi di 15°. L'ultima coppia Δx e Δy specifica quanto è lungo il segmento e quanto lo spazio prima del successivo, sulla stessa giacitura. Se manca l'ultima coppia si descrive una linea continua. Possono anche esserci ulteriori coppie per descrivere tratteggi di diverse lunghezze, come un tratto-punto (quindi arrivare a 9, 11 13 elementi e così via). Probabilmente è per questo motivo che han messo la traslazione dell'origine prima delle lunghezze del tratteggio.
angolo/direzione | origine | spostamento relativo delle copie | lunghezza tratteggio (positivo=tratto, negativo=spazio) | ulteriore tratto | ||||
---|---|---|---|---|---|---|---|---|
° | X | Y | x | y | tratto | spazio | tratto | spazio |
15 | 1 | 3 | 10 | 4 | 5 | -2 | … | … |
Sintassi
La sintassi richiede di rispettare alcuni requisiti altrimenti non viene caricato.
- La prima riga deve iniziare con un asterisco e il nome dell'hatch (quello che comparirà nel menù di scelta degli hatch, non più lungo di 31 caratteri), opzionalmente una virgola e una descrizione.
- Il nome dell'hatch deve coincidere con il nome del file.
- Seguono le righe, una per la descrizione di ogni tratteggio che compone l'hatch.
- Le righe non possono superare gli 80 caratteri.
- Si possono fare commenti iniziandoli con un punto e virgola
- Fondamentale, chissàperché, concludere con una linea vuota.
E questo è quanto. Occorre scomporre il disegno in pezzetti che si ripetono e concentrarsi su una linea alla volta, niente cerchi o curve, niente "pieni" se non approssimati.
Utilità
Ci sono alcuni software che ci aiutano, alcuni online, tuttavia sono piuttosto semplici e spesso ci chiedono di partire da un quadrato, mentre non è affatto detto che un pattern lo sia.
Di seguito alcune utilità rintracciate in rete ma non testate
- Qui è descritto un autolisp per creare hatch, base quadrata.
- Pattycake consente la creazione online, ma con sottoscrizione $$!.
- Questo sembra creare hatch da file excel.
- Questa sembra essere un'altra utilità.
Bonus
Di seguito è il pattern del codice morse per SOS. Prima ho provato a mettere tutti e nove i tratti di seguito, ma andandolo a caricare il cad si lamentava che fossero troppi, quindi l'ho scomposto in tre gruppi di tre tratti.
*SOS, ...---... SOS morse code
;
;angle, x, y, shift, offset, 3 dashes
0, 1, 1, 0, 10, 1,-1,1,-1,1,-29 ;three dots
0, 9, 1, 0, 10, 3,-1,3,-1,3,-23 ;three lines
0, 23,1, 0, 10, 1,-1,1,-1,1,-29 ;three dots