Los tipos de letra .SHX son archivos de formas de AutoCAD que se definen siguiendo el mismo método explicado hasta este punto. Únic amente hay que tener una serie de consideraciones que vamos a indicar a continuación.
En archivos fuente de tipos de letra, el parámetro número_forma que se especifica en la sintaxis no puede ser cualquier valor, como ocurría con las formas, sino el código ASCII correspondiente al carácter que se defina. Este código lo podemos introducir tanto en decimal como en hexadecimal. Así por ejemplo, 70 (046 hexadecimal) se correspondería con la letra F (mayúscula), 106 (06A hexadecimal) con la j (minúscula) y 91 (05B hexadecimal) con el carácter corchete de apertura ([).
NOTA: Recordemos que los códigos en hexadecimal han de llevar un 0 delante, como
mínimo.
Los códigos imprimibles comienzan desde el 32 (020 hexadecimal), que se corresponde con el espacio. Los anteriores son códigos de control que no son utilizados en la creación de tipos de letra, excepto el 10 (00A hexadecimal) que representa una interlínea o retorno de carro (pasa a la siguiente línea sin dibujar). Es el que se conoce en el mundo de la informática como lf; es un INTRO en la escritura.
NOTA: Al final de este curso, en el APÉNDICE F, se proporciona una lista completa de
códigos ASCII y sus correspondencias. De todas formas, podemos revisar los archivos .SHP proporcionados por AutoCAD de los tipos de letra suministrados para revisar las definiciones y ver los códigos ASCII de cada carácter. Estos archivos fuente no se copian al disco duro durante el proceso de instalación y han de buscarse en el directorio \ACAD\BONUS\FONTS\ del CD-ROM de instalación.
Además los tipos de letra han de incluir una definición de forma especial al comienzo del archivo, la cual contiene información general sobre la fuente creada. Esta forma especial tiene número 0 (nul) y su sintaxis ha de ser la siguiente:
*0,4,nombre_tipo_letra
arriba,abajo,modos,0
Como vemos, el asterisco (*), el número de forma 0 y el 4 (4 octetos) siempre se escriben, son obligatorios. nombre_tipo_letra es el nombre que le damos a nuestro tipo de letra, y ha de ser el mismo que el que tiene el arc hivo .SHX correspondiente.
Por su lado, arriba indica el número de longitudes de vector que ocupan las mayúsculas por encima de la línea base. abajo indica el número de longitud de vectores que
las “astas” verticales de la minúsculas descienden por debajo de la línea base (en las letras q,
y, p y j). Esta línea base se entiende como la línea imaginaria donde se apoya el texto en
general.
Y modos debe ser 0 para los tipos de letra de generación normal y 2 si admite también generación vertical (de arriba a abajo o de abajo arriba). En este punto entra en juego el código 14 explicado en la sección anterior. Se dijo que únicamente se utilizaba como señal de procesamiento vertical, y aquí lo podremos comprobar. Este código sólo se toma en consideración cuando modos está definido como 2.
Por último, decir que el nombre que asignemos a cada forma que defina una letra del conjunto habrá de escribirse, por norma general, en minúsculas, no como en el caso de las formas. Esto se hace así para que AutoCAD no guarde los nombres en memoria (recordar que en las formas se escribían en mayúsculas precisamente para que se guardaran en la memoria) y no ocupen espacio. Los nombres en minúscula no se guardan en memoria y AutoCAD dibuja los caracteres de texto según sus códigos ASCII (números de forma) y no según sus nombres, por lo que funcionarán perfectamente.
Todas las demás consideraciones han de tomarse idénticas a las de la creación de formas, en cuestión de comentarios, definición unitaria, etcétera.
La siguiente definición de un carácter para un tipo de letra se corresponde con una “D” mayúscula:
*68,13,dmayus
1,030,012,044,016,038,2,010,1,06C,2,050,0
Los octetos de definición se interpretan de la misma manera que al dibujar formas. Primero se activa el modo de dibujo —por si estuviera desactivado— (1). Se comienza a dibujar con un trazo de tres unidades horizontal a la derecha (030), luego un trazo unitario a 45 grados hacia arriba a la derecha (012), un trazo vertical hacia arriba de cuatro unidades de dibujo (044), otro unitario a 45 grados hacia arriba a la izquierda (016) y uno de tres unidades horizontal a la izquierda (038). Después se desactiva el modo de dibujo (2) y se recorre el camino inverso al último tramo en una unidad y sin dibujar (010). Se vuelve a activar el modo de dibujo (1) y se dibuja la línea vertical hacia abajo que cierra la letra (06C). Por último, se vuelve a desactivar el modo de dibujo (2) y se recorren cinco unidades horizontalmente a la derecha (050). Esto último se hace para situar el siguiente carácter que se escriba, controlando así el espaciado entre letras. Se acaba con el 0 de final de definición.
En cuanto a la primera línea, se establece que se va a diseñar una letra “D” mayúscula mediante su código ASCII en decimal (68) y tras el asterisco. Después se indica que se dibujará en trece octetos (13) y se le da un nombre (dmayus) significativo.
Otro ejemplo. La siguiente serie de definiciones corresponde a fragmentos de un archivo de tipos de letra. En él se utilizan números hexadecimales para los códigos ASCII. Veámoslo:
; Mis propias fuentes en AutoCAD *0,4,MiFuente 1,2,0,0 *0A,7,lf 2,0AC,14,8,(9,10),0 *020,7,spc 2,060,14,8,(-6,-8),0
... *030,34,num0 2,14,3,2,14,8,(-3,-12),14,4,2,010,1,016,044,012,010,01E,04C,01A, 018,2,040,14,3,2,14,8,(-7,-6),14,4,2,0 *031,18,num1 2,14,8,(-1,-6),054,1,012,06C,2,018,1,020,2,020,14,03A,0 *032,23,num2 2,14,8,(-2,-6),054,1,012,020,01E,01C,01A,028,01A,02C,040,2,020, 14,8,(-4,-3),0 ... *041,21,amayus 2,14,8,(-2,-6),1,024,043,04D,02C,2,047,1,040,2,02E,14,8,(-4,-3),0 *042,29,bmayus 2,14,8,(-2,-6),1,030,012,014,016,028,2,020,1,012,014,016,038,2, 010,1,06C,2,050,14,8,(-4,-3),0 ... *061,24,aminus 2,14,04B,020,1,018,016,024,012,010,01E,02C,01A,2,012,1,01E,2,020, 14,8,(-4,-3),0 *062,25,bminus 2,14,8,(-2,-6),1,064,2,04C,1,022,010,01E,02C,01A,018,026,2,02C, 060,14,8,(-4,-3),0 ...
Evidentemente faltarían muchos caracteres por definir aquí. La primera definición es el encabezado del archivo con la información general ya explicada. Después se definen el retorno de carro con salto de línea y el espacio. Luego los caracteres 0, 1 y 2. Por último, los caracteres A y B (mayúsculas) y los caracteres a y b (minúsculas). Como decimos, faltarían todos los demás: resto de números y letras —mayúsculas y minúsculas— y resto de diversos caracteres —signos de puntuación, tanto por ciento, dólar...—.
Si se define un archivo de tipo de letra en el que faltan caracteres, estos no podrán ser mostrados en pantalla al teclearlos mediante algún comando de dibujo de textos de AutoCAD, si se tiene elegido dicho tipo de letra en el estilo de texto actual. Además, en la línea de comandos aparecerá un mensaje de error advirtiendo que no se encuentra la definición del carácter en cuestión.
Por ello, es lógico definir todos los caracteres imprimibles en un archivo de tipos de letra.
NOTA: Estúdiense, en el último ejemplo, más a fondo las definiciones de salto de línea
con retorno de carro y del espaciado. Nótese que lo primero que hacen es desactivar el modo de dibujo (con el código 2) porque no interesa trazar y, a continuación, describen el vector de desplazamiento. Revísese también la manera de emplear el código 14 de procesamiento vertical.
La forma de compilar estos archivos es exactamente la misma que la utilizada para los archivos de formas.