Come mettere in linea e in ordine di distanza le lettere

Ciao a tutti,
dato che rhino ha un pò di difficoltà con i font, perché spesso sono fatti proprio male, me ne sono creato uno io.

In realtà è un file 3dm dove poi sposto le lettere che mi servono.

È una cosa che uso tutti i giorni e vorrei capire se si può:

  • mettere in linea allo stesso punto le lettere
  • fare in modo che siano alla stessa distanza l’una dalle altre

Se può essere utile, lo spessore medio delle lettere che ho creato è 0,25 mm
L’altezza è uguale per tutte a 2 mm

Al momento quello che faccio è tracciare una linea da 0.5 e creare la distanza che mi serve
image

Visto che hai la possibilità di creare un font dovresti lasciare spazio zero sia davanti che dietro al carattere.
L’editor di testi di Rhino.prevede la spaziatura.
Allego anche una definizione di GH che può tornare utile.
testo.gh (22,0 KB)

Ciao Leopoldo,
Si ma solo se usi il text di rhino, nel senso che ip mio dovrebbe essere un font inserito in Windows.

Invece quello che ho creato io è a mano per così dire.

Faccio importa e poi mi sposto le lettere che mi servono

Ciao Giovanni

Forse ho qualcosa che puo’ servire.
E’ uno script che mi ero fatto in ufficio, esattamente per poter fare quello di cui parli: utilizzare un font fatto un casa, senza impelagarsi nelle complicazioni dei font ‘ufficiali’.

E’ uno strumento fatto per uso personale, quindi ostico come interfaccia utente, ma se ti puo’ servire possiamo provare poi a migliorarlo. :slight_smile:

Come dicevo e’ una cosa che utilizzavo in ufficio, e purtroppo temo di non aver salvato a suo tempo il ‘font’ che utilizzavo, per cui ho adesso messo insieme un piccolo esempio con un font ridotto, per fare in fretta :wink: .

il ‘font’ e’ quello in verde.
E’ un gruppo Rhino composto da un testo e dalle rispettive curve rappresentanti i caratteri.
Qui come vedi ci sono solo le lettere da A a F maiuscole, ma puo’ essere una qualunque sequenza di caratteri.
L’importante e’ la corrispondenza tra i caratteri che compongono l’oggetto testo e quelli disegnati tramite curve.
altra cosa essenziale: i caratteri disegnati con curve devono essere ben distanziati tra di loro, se no lo script non riesce a separarli e quindi non funziona.
Come accennavo sopra, una volta ottenuti il testo e le curve per i caratteri, devi raggruppare tutto quanto in un gruppo.

Adesso il ‘font’ e’ pronto e puoi utilizzarlo con lo script ogni volta che ti serve.
Basta importarlo/copiarlo nel file in cui stai lavorando.

Questo e’ lo script:

gio-font-1.py (4,9 KB)

Vediamo, utilizzando il nostro piccolo esempio, come funziona:

Lanci lo script.
Lui ti chiede: Group with text and font curves ?
Tu selezioni il gruppo di oggetti verdi.
Poi chiede: Minimum distance between characters as height percent … ECC …
Dai Enter senza scrivere niente.
Adesso chiede: texts to be converted into curves ?
e, per esempio, tu clicchi sul testo ‘BACCA’ e poi Enter ( puoi selezionare piu’ di un oggetto testo ).
Ora chiede: Distance between characters as height percent ?
Ti propone 0.25, che dovrebbe corrispondere a mezzo millimetro per testi alti 2 mm, quindi prova a dare semplicemente Enter anche qui.
Chiede ancora: Blank width as height percent ?
Questo serve nel caso il testo contenga degli spazi: definisce la larghezza dello spazio come percentuale dell’altezza dei caratteri.
Se non ci sono spazi, tu conferma semplicemente con Enter.
Finito. :slight_smile:

Lo script ti disegna le curve: sono quelle azzurre qui sotto:

Ogni carattere e’ un gruppo, che tu puoi spostare dove ti serve e farci quello che vuoi.

Sembra complicato, ma con un minimo di abitudine diventa veloce.
Comunque, come dicevo, se ti serve qualche modifica, ci proviamo. :slight_smile:

Ciao

giovanni-1.3dm (60,2 KB)

EDIT:

Dimenticavo … credo funzioni solo sul piano XY.

2 Mi Piace

ciao… il comando “distribuisci” forse ti è utile… buon lavoro :wave:

1 Mi Piace

manualmente potresti per ogni lettera usare il comando “_BoundingBox”
e quindi allineare le lettere con uno spazio tra gli spigoli inferiori Dx/Sx

nel caso ti vada bene questa è il mio script: Allinea.py (241 Byte)
(selezioni le lettere e indichi lo spazio voluto)

wow :star_struck:

Faccio subito una prova

Ciao Emilio,
importato le lettere
creato il gruppo
aperto lo script

e questo è il messaggio:

Ciao Giovanni

A prima vista sembra che nel gruppo manchi l’oggetto testo.
Dall’immagine che posti non si vede, anche se potrebbe essere nascosto dal messaggio.

Altra cosa: da quanto vedo le lettere del tuo font mi sembrano molto vicine tra loro, non so se lo script riesce a funzionare cosi’.

Se vuoi, puoi prendere esempio dal file 3dm che avevo allegato.
Il font contiene poche lettere, pero’ sono ben distanziate e il gruppo contiene anche l’oggetto testo.
Attenzione che la sequenza dei caratteri nell’oggetto testo e nel tuo font devono coincidere affinche’ lo
script possa funzionare.

Se il problema e’ un altro o se qualcosa non e’ chiaro, fammelo sapere. :slight_smile:

Ciao Giovanni.
Questa definizione funziona solo con superfici o solidi, non curve.
Basta importare in GH le superfici o solidi ottenute con il normale Text Editor di Rhino.
L’inconveniente è che vale solo per le lettere maiuscole e tutti quei caratteri lettere che non siano costituiti da due elementi come, per esempio, la “i” minuscola.
Ma c’è sempre il comando Distribuisci, come suggerito da Lorenzo.
testo dist.gh (38,1 KB)

Evidentemente mi sono espresso male io sin dall’inzio.

Il mio font non proviene da text, le ho costruite proprio con le curve, una ad una.

Metto in allegato
ALFABETO CAPITALIS.3dm (1,2 MB)

Evidentemente anch’io … :wink: :smile:

Quello script funziona solo se prima costruisci un gruppo comprendente:

  1. Il tuo font fatto con le curve.
  2. un oggetto testo il cui testo (scusa il gioco di parole) corrisponde esattamente alla sequenza dei caratteri costruiti con le curve.
    E questi caratteri fatti con le curve devono essere distanziati tra di loro.

Se dai un’occhiata al file 3dm che avevo postato troverai un gruppo con un oggetto testo con la scritta ‘A B C D E F’ e una serie di curve che a loro volta compongono la stessa scritta (questo e’ il font che vogliamo utilizzare), ben distanziate.

Senza questo gruppo (composto da un testo e dalle curve) lo script non puo’ funzionare.

Allego un gruppo costruito dal tuo font, con caratteri distanziati, e dal relativo oggetto testo.
gruppo-ALFABETO-CAPITALIS.3dm (158,5 KB)

1 Mi Piace

Ok.
Ma non è un problema.
Con questa piccola modifica puoi usare i tuoi caratteri.
testo dist a.gh (73,4 KB)
img1

Utilizzando il tuo file contenente i caratteri ho realizzato un font per Windows, senza spaziatura.
Nell’elenco dei font appare con il nome di “Normale“.
Ho un dubbio sulla lettera “Q” perché nel tuo file è molto più piccola il resto dei caratteri.
font.zip (23,0 KB)

2 Mi Piace

Grande Leopoldo!
grazie infinite, lo provo subito!

Ciao Leopoldo,

purtroppo si creano le intersezioni.

C’è un modo per toglierle?

se ce l’ho dritte, non ci sono.

Se scorro su curva si

Risolto con preserva struttura :rofl:

I comandi in rhino ci sono già per fare quello che vuoi:

Crei le curve del testo o delle lettere che vuoi con il comando TESTO e il comando ESPLODI (esplode il testo in curve) ragguppi se necessario alcune lettere tipo la “A”.

Poi passi a comporre le tue parole e/o frasi senza preoccuparti della spaziatura e/o allineamento in Y.


Usare quindi il comando ALLINEA_INFERIORE


Poi usi il comando DISTRIBUISCI OGGETTI

ORDINAMENTO_OGGETTI_4
Imposti la spaziatura tra una lettera/curve/oggetti/gruppi come ad esempio 0

ORDINAMENTO_OGGETTI_5
e poi clicchi sulla direzione ASSE_X


Ecco il risultato voluto.

1 Mi Piace