caracteres que no son ASCII. Con AutoCAD es posible crear dibujos con este tipo de texto mediante un archivo de definición de forma especial denominado archivo de tipo de letra grande.
Un tipo de letra con tantos caracteres como el mencionado, debe manipularse de manera diferente a nuestros tipos de letra basados en un código ASCII de 256 caracteres (de
0 a 127 básicos y de 128 a 255 extendidos). Además de utilizar técnicas de búsqueda de archivos más complejas, AutoCAD necesita un método para representar caracteres con códigos de dos bytes como de uno. Ambos aspectos se resuelven colocando códigos especiales al principio de un archivo de definición de tipo de letra, convirtiéndolo en un archivo de definición de tipo de letra grande.
La primera línea pues de un archivo de este tipo habrá de tener la sintaxis siguiente: *BIGFONT número_caracteres,número_rangos,i1,f1,i2,f2,...
número_caracteres es el número aproximado de definiciones de caracteres del juego.
Si este número se rebasa en —aproximadamente— más de un diez por ciento, la velocidad o el tamaño del archivo pueden verse perjudicados.
Podemos utilizar el resto de la línea para especificar códigos de carácter especiales (códigos de escape) que indiquen el inicio de un código de dos bytes. Por ejemplo, en los ordenadores japoneses, los caracteres Kanyi comienzan con códigos hexadecimales en el rango 90 a AF o E0 a FF. Cuando el sistema operativo detecta uno de estos códigos, lee el byte siguiente y combina los dos bytes en un código para un carácter Kanyi.
número_rangos indica cuántos rangos contiguos de números se utilizan como códigos
de escape, y i1, f1, i2, f2, etcétera, definen los códigos inicial y final de cada rango. En consecuencia, el encabezamiento de un archivo de tipo de letra grande japonés puede tener el formato siguiente:
*BIGFONT 4000,2,090,0AF,0E0,0FF
Después de esta línea, la definición de tipo de letra es idéntica a la de un tipo de letra de texto de AutoCAD estándar, con la diferencia que los códigos de carácter (números de forma) pueden tener valores de hasta 65535.
Para reducir el tamaño de los caracteres Kanyi compuestos, se puede definir un archivo de tipo de letra grande extendido. Los tipos de letra grandes extendidos utilizan el código de subforma, seguido inmediatamente de un 0.
La primera línea de un archivo de tipo de letra grande extendido es idéntica a la de un archivo de tipo de letra grande estándar. Éste es el formato del resto de las líneas del archivo:
*0,5,nombre_letra altura_carácter,0,modos,anchura_carácter,0 ... *número_forma,bytes_def,nombre_forma ... código,0,primitiva#,punto_base_X,punto_base_Y,anchura,altura, ... código,0,primitiva#,punto_base_X,punto_base_Y,anchura,altura, ... terminador
A continuación se explican todos lo parámetros.
• altura_carácter. Se utiliza con la anchura de carácter (anchura_carácter) para indicar el número de unidades que definen los caracteres del tipo de letra.
• anchura_carácter. Utilizada con la altura de carácter (altura_carácter) para indicar el número de unidades que definen los caracteres del tipo de letra. Los valores de altura_carácter y anchura_carácter se usan para escalar las primitivas del tipo de letra. En este contexto, las primitivas son los puntos, líneas, polígonos o cadenas de caracteres del tipo de letra orientado geométricamente en un espacio bidimensional. Un carácter Kanyi está formado por varias primitivas usadas de forma repetida en diferentes escalas y combinaciones.
• modos. Igual que para los tipos de letra de texto estándar.
• número_forma. Código de carácter.
• bytes_def. Tamaño en bytes. Son siempre 2 bytes, que constituyen un código hexadecimal o una combinación de códigos decimales y hexadecimales.
• nombre_forma. Nombre del carácter.
• código. Código especial de descripción de la forma. Este código siempre se define en 7 para que pueda usar la función de subforma.
• primitiva#. Referencia al número de subforma. Esta referencia siempre se define como 2.
• punto_base_X. Origen X de la primitiva.
• punto_base_Y. Origen Y de la primitiva.
• anchura. Escala de la anchura de la primitiva.
• altura. Escala de la altura de la primitiva.
• terminador. Indicador de fin de archivo de la definición de forma; siempre es 0. Para llegar al factor de escala, AutoCAD reduce la escala de la primitiva a una unidad cuadrada y después la multiplica por la altura y la anchura para obtener la forma del carácter. Los códigos de carácter (números de forma) del archivo de definición de formas de tipo de letra grande pueden tener valores hasta 65535. En la tabla siguiente se describen los campos del archivo de tipo de letra grande extendido:
Variable Valor Tamaño en bytes Descripción
número_forma XXXX 2 bytes Código de caracteres.
código 7 2 bytes Definición de tipo de
letra extendido.
primitiva# XXXX 2 bytes Referencia al número
de subforma.
punto_base_X 1 byte Origen X de la primitiva.
punto_base_Y 1 byte Origen Y de la primitiva.
anchura 1 byte Escala de la anchura
de la primitiva.
altura 1 byte Escala de la altura.
de la primitiva.
terminador 0 1 byte Final de definición de
NOTA: No todos los tipos de letra se definen en matrices cuadradas, algunos se definen
en matrices rectangulares.
A continuación se muestra un ejemplo de un archivo de definición de forma para un tipo de letra grande extendido.
*BIGFONT 50,1,080,09e
*0,5,Tipo de letra extendido 15,0,2,15,0 *08D91,31,sin especificar 2,0e,8,-7,-15,7,0,08cfb,0,0,16,16,7,0,08bca,2,3,12,9,2,8,18,0,2,0e,8, -11,-3,0 *08CD8,31,sin especificar 2,0e,8,-7,-15,7,0,08be0,0,0,8,16,7,0,08cc3,8,0,8,16,2,8,18,0,2,0e,8, -11,-3,0 *08ADF,31,sin especificar 2,0e,8,-7,-15,7,0,089a4,0,0,8,16,7,0,08cb3,8,0,8,16,2,8,18,0,2,0e,8, -11,-3,0 *08CE8,39,sin especificar 2,0e,8,-7,-15,7,0,089a4,0,1,5,14,7,0,08cc3,5,2,5,14,7,0,08c8e,9,0,7, 16,2,8,18,0,2,0e,8,-11,-3,0 *089A4,39,primitiva 2,0e,8,-7,-15,2,8,1,14,1,0c0,2,8,-11,-6,1,0a0,2,8,-12,-7,1,0e0, 2,8,7,13,1,0dc,2,8,11,-1,2,0e,8,-11,-3,0 *08BCA,41,primitiva 2,0e,8,-7,-15,2,8,1,14,1,0c0,2,8,-11,-6,1,0a0,2,8,-12,-8,1,0e0, 2,0e5,1,0ec,2,063,1,8,2,-3,2,06f,2,0e,8,-11,-3,0 *08BE0,81,primitiva 2,0e,8,-7,-15,2,8,3,9,1,080,2,8,-10,-4,1,0c0,2,8,-13,-5,1,0e0,2,8, -7,9,1,09c,2,8,-1,14,1,8,-6,-5,2,8,8,5,1,8,6,-5,2,8,-11,-6,1,8,1, -3,2,8,7,3,1,8,-1,-3,2,8,-3,15,1,01a,2,012,1,01e,2,8,10,-14,2,0e,8, -11,-3,0 *08C8E,44,primitiva 2,0e,8,-7,-15,2,8,3,15,1,090,0fc,038,2,8,-6,11,1,090,2,8,-9,-5,1, 090,2,096,1,0ac,8,-1,-3,01a,01a,2,8,18,0,2,0e,8,-11,-3,0 *08CB3,61,primitiva 2,0e,8,-7,-15,2,042,1,02b,02a,018,2,0d0,1,012,034,2,069,1,01e,040,2,8, -8,6,1,02b,2,8,4,5,1,08c,2,8,-3,8,1,03c,2,8,-5,3,1,0e0,2,8,-12,5,1, 0a0,2,8,6,-14,2,0e,8,-11,-3,0 *08CC3,34,primitiva 2,0e,8,-7,-15,2,0c1,1,06c,0a8,064,0a0,2,8,-5,9,1,09c,2,8,-7,5,1,0e0,2,8,4, -11,2,0e,8,-11,-3,0 *08CFB,22,primitiva 2,0e,8,-7,-15,2,0d2,1,0cc,0c8,0c4,0c0,2,8,5,-13,2,0e,8,-11,-3,0
NOTA: Nótese que las letras de los números en hexadecimal pueden escribirse en
En algunas disciplinas de esbozo, muchos símbolos especiales pueden aparecer en cadenas de texto. Es posible extender los tipos de letra de texto estándar de AutoCAD para incluir dichos símbolos, si bien esta operación de extensión tiene algunos límites.
Cada archivo de tipo de letra puede contener 255 formas como máximo. El juego de caracteres estándar utiliza casi la mitad de los números de forma disponibles. Sólo es posible usar los códigos 1-9, 11-31 y 130-255. Para utilizar varios tipos de letra de texto, es necesario duplicar las definiciones de símbolo de cada tipo de letra. Para usar un símbolo especial, es necesario indicar %%nnn, donde nnn representa el número de forma del símbolo.
Con el tipo de letra grande se evitan estos problemas. Podemos seleccionar uno o varios caracteres poco usados —como la tilde (~) o la barra vertical (|)— como códigos de escape y utilizar el carácter siguiente para escoger el símbolo especial apropiado. Por ejemplo, se puede emplear el siguiente archivo de tipo de letra grande para dibujar letras griegas indicando una barra vertical (código ASCII 124) seguida de la letra latina equivalente. Dado que el primer byte de cada carácter es 124, los códigos de carácter se incrementan en 124 × 256, o lo que es lo mismo, en 31744. Veámoslo.
*BIGFONT 60,1,124,124 *0,4,greek
encima,debajo,modos,0
*31809,n,amy
... definición Alfa en mayúsculas, activada con "|A" *31810,n,bmy
... definición Beta en mayúsculas, activada con "|B" *31841,n,amn
... definición Alfa en minúsculas, activada con "|a" *31842,n,bmn
... definición Beta en minúsculas, activada con "|b" *31868,n,barrav
... definición de barra vertical, activada con "||" ...