MÓDULO CINCO

Definición de formas y tipos de letra

 

CINCO.1. INTRODUCCIÓN

Después de vista la creación y personalización de menús de todo tipo para AutoCAD 14 (desplegables, de imagen, etcétera), de barras de herramientas y botones, de tipos de línea y de patrones de sombreado, parece lógico pensar que tenemos la posibilidad de crear archivos de formas y de tipos de letras de AutoCAD, así como de personalizar los ya existentes proporcionados por el programa. Pues así es, esa posibilidad es tangible y es precisamente lo que vamos a estudiar en este MÓDULO CINCO.

Los archivos de formas de AutoCAD, de los cuales hablamos por encima al introducir formas en determinados tipos de línea (véase el MÓDULO TRES), son ficheros de texto ASCII con extensión .SHP que, posteriormente, habremos de compilar desde AutoCAD con el comando COMPILA (en inglés COMPILE) para producir los correspondientes archivos de extensión .SHX, que son con los que el programa trabaja.

Por otro lado, y refiriéndonos ahora a los archivos de fuentes de tipos de letra, decir que existen tres tipos integrados en AutoCAD 14: los archivos de fuentes escalables WYSIWYG (What You See Is What You Get, lo que ves es lo que obtienes), esto es, las fuentes True Type con extensión .TTF —gracias a la integración en Windows—, los archivos .SHX que reciben el mismo tratamiento que los archivos de formas, en cuanto a creación desde un .SHP y posterior compilación, y los archivos de fuentes con tecnología PostScript, de extensión .PFB y también personalizables para AutoCAD 14. Los que vamos a tratar en este MÓDULO son los archivos .SHX exclusivamente.

Los dos tipos principales, sin meternos en la tecnología PostScript, son las fuentes True Type y los archivos .SHX. La diferencia entre ambos tipos de fuentes de letras es evidente. La fuentes True Type, como hemos dicho, son fuentes escalables, es decir, podemos aumentar su tamaño sin que disminuya la resolución, ya sea en pantalla o a la hora de imprimir. Esto se consigue gracias a la tecnología WYSIWYG, que produce una visualización en pantalla perfectamente similar a lo que después obtendremos por una impresora o trazador. La programación de fuentes True Type para Windows requiere conocimientos amplios que escapan a los objetivos de este curso, así como la tecnología PostScript y el diseño de fuentes que la utilicen.

Las fuentes .SHX de AutoCAD, son tipos de letra vectorizados los cuales, al aumentar de escala pierden definición y terminan por verse todos los trazos o vectores rectos que las forman. Estos tipos de letra, por el contrario, son los más recomendados a las hora de materializar un texto en un plano o dibujo. La razón es que su regeneración y procesado no implica tanta carga de memoria y de tiempo al sistema. Además, para una letra de tamaño pequeño, como por ejemplo números de cota en un plano mecánico, industrial, de construcción y demás, o textos de un cajetín o lista de materiales, u otros, producen un efecto muy deseado y no se aprecia su vectorización. Por otro lado, hemos de pensar que muchos de estos tipos de letra que contiene AutoCAD 14 siguen rigurosamente normas ISO de rotulación necesarias para muchos tipos de planos.

En resumen, utilizaremos textos .SHX casi siempre en la rotulación de planos técnicos y dejaremos la fuentes True Type para títulos, cajetines, planos no normalizados y textos en general que han de producir una presentación visual impactante. Recordemos que AutoCAD es un programa de dibujo estándar; es factible de ser utilizado por un ingeniero técnico en topografía o por un publicista.

La tecnología PostScript sólo podremos utilizarla con medios de impresión o trazado que la admitan.

Comencemos pues aprendiendo a diseñar ahora nuestros propios archivos fuente de formas.

 

CINCO.2. ARCHIVOS DE FORMAS PROPIOS

Las formas de AutoCAD son esos pequeños dibujos que se utilizan, más que nada, a la hora de diseñar tipos de línea. También podemos insertarlos como leyenda de planos o como simbología esquemática de otros, por ejemplo de calderería o electrónica (válvulas, condensadores...). También pueden ser utilizados como símbolos propios de alguna característica de representación, como tolerancias geométricas.

Los archivos de formas, como ya hemos explicado, son archivos ASCII que contiene las definición de una o varias formas que, luego, podremos utilizar a la hora de definir, por ejemplo, tipos de líneas o insertarlas como tales. El archivo fuente ASCII ha de tener la extensión .SHP. Veamos, desde un editor de texto, las definiciones contenidas en el archivo LTYPESHP.SHP que se proporciona junto a AutoCAD 14 y preparado para la inclusión de sus formas en patrones de tipos de línea. Este archivo es más o menos de la siguiente forma:

;;;
;;; ltypeshp.SHP - shapes for complex linetypes
;;;

*130,6,TRACK1
014,002,01C,001,01C,0

*131,3,ZIG
012,01E,0

*132,6,BOX
014,020,02C,028,014,0

*133,4,CIRC1
10,1,-040,0

*134,6,BAT
025,10,2,-044,02B,0

Como viene siendo habitual en los archivos que estudiamos últimamente, el carácter punto y coma (;) establece la situación de un comentario que será ignorado por AutoCAD. Al igual que en los archivos de tipos de línea y de patrones de sombreado, con un sólo carácter ; es suficiente para definir una línea de comentario. La inclusión de más de uno solamente produce comodidad a la hora de examinar el fichero en sí. Además, los espaciados interlineales pueden ser usados para dar claridad al texto general y separar las formas por grupos o entre sí.

Nosotros podemos incluir nuevas formas en este archivo o, por el contrario y siendo una técnica más lógica, crear nuestro propio fichero .SHP de formas desde un editor ASCII. Para ello habremos de asimilar la sintaxis de creación.

 

CINCO.2.1. Sintaxis de creación de formas

Una forma se define en dos o más líneas dentro del archivo de definición. En realidad, con dos líneas es suficiente. Lo que ocurre es que, a veces, por la excesiva extensión de la segunda de ellas —que es la que realmente define la forma— se suele separar en más de una por comodidad.

La primera de las líneas es el encabezado y tiene la sintaxis:

*número_forma,octetos_definición,nombre_forma


El asterisco (
*) es obligatorio para indicar a AutoCAD que lo siguiente es la definición de una forma. A continuación, número_forma es un número entre 1 y 255 que identifica a cada forma del archivo. Podemos escoger cualquiera dentro del rango, pero no podemos repetir cualquiera de ellos dentro el mismo archivo de definición de formas; evidente. Así, podemos deducir fácilmente cuántas formas se nos permite incluir, en principio, en un solo archivo: doscientas cincuenta y seis. Si se duplica el número de una forma, AutoCAD proporcionará un mensaje de error al respecto a la hora de compilar el archivo (que ya veremos).

octetos_definición es el número de octetos necesarios para definir la forma, es decir, el número de octetos que se utilizan en la segunda línea de definición. Y nombre_forma es el nombre que le damos a la forma creada, el que la identificará. Con este nombre cargaremos después la forma desde el programa; ha de ser obligatoriamente un nombre en mayúsculas para que, posteriormente, AutoCAD lo almacene en memoria. Si no es así, no se producirá ningún error en la compilación, pero AutoCAD no reconocerá la forma al cargar el archivo e intentar insertarla.

Todos los parámetros han de ir separados por comas (,). Se pueden incluir espacios o tabuladores entre los diversos parámetros, tanto en esta línea como en las demás, excepto inmediatamente antes del nombre de la forma, ya que no se reconocerá después, e intentar incluir un espacio antes del nombre al llamar a la forma desde el editor de dibujo producirá un INTRO no deseado.

NOTA: Aunque los nombres pueden ser largos, recomendamos, como hemos dicho muchas veces, utilizar nombres en formato MS-DOS para todos los nombres en archivos de personalización de AutoCAD.

Veamos entonces uno de los ejemplos, el tercero, del archivo expuesto anteriormente:

*132,6,BOX
014,020,02C,028,014,0

Como vemos, tras el asterisco obligatorio, se indica el número que se le asigna (132), el número de octetos de definición de la segunda línea, esto es 6 (014,020,02C,028,014,0) y, por último, el nombre de la forma (BOX). Pero, ¿qué definen estos octetos y cómo lo hacen? Vamos a pasar a explicarlo seguidamente.

Los octetos que definen la forma en sí contienen la dirección y longitud de cada vector (línea o arco) de la misma. Los octetos han de ir todos ellos separados por comas y, como ya se ha dicho, pueden existir espaciados o tabulaciones de separación.

Si el primer dígito de un octeto es 0, como en el ejemplo anterior 014, 020, 02C..., se entiende que está expresado en notación hexadecimal (que es lo más habitual); en caso contrario estaría en decimal.

La primera parte del octeto, tras el 0 hexadecimal, es la longitud del vector. Dicha longitud será generalmente unitaria, es decir, igual a 1, debido a que a ella se le aplicará posteriormente el factor de escala de la forma. Como se utiliza la primera parte del octeto para la longitud, ésta será como mucho igual a 15 (0F en hexadecimal). En el ejemplo, las longitudes son los segundos dígitos indicados (después del 0).

La segunda mitad del octeto es la dirección del vector en cuestión. Esta dirección se indica por un dígito hexadecimal, correspondiente a 16 direcciones predefinidas, como se muestra en la tabla siguiente:

NOTA: En la siguiente tabla se expresa la dirección teniendo en cuenta que el ángulo de 0 grados sexagesimales está en la dirección Este (las 3 en la esfera de un reloj) y que el sentido positivo es el trigonométrico (el antihorario). De todas formas, se aclara con la indicación de una dirección conocida; las direcciones de las bisectrices se refieren a la parte que tiene el sentido que escapa del centro de coordenadas.

Dígito ------------- Dirección


0 ------------------ 0 grados (dirección de la parte positiva del eje X)

1 ------------------ 22,5 grados (dirección de la bisectriz al primer octante)

2 ------------------ 45 grados (dirección de la bisectriz al primer cuadrante)

3 ------------------ 67,5 grados (dirección de la bisectriz al segundo octante)

4 ------------------ 90 grados (dirección de la parte positiva del eje Y)

5 ------------------ 112,5 grados (dirección de la bisectriz al tercer octante)

6 ------------------ 135 grados (dirección de la bisectriz al segundo cuadrante)

7 ------------------ 157,5 grados (dirección de la bisectriz al cuarto octante)

8 ------------------ 180 grados (dirección de la parte negativa del eje X)

9 ------------------ 202,5 grados (dirección de la bisectriz al quinto octante)

A ------------------ 225 grados (dirección de la bisectriz al tercer cuadrante)

B ------------------ 247,5 grados (dirección de la bisectriz al sexto octante)

C ------------------ 270 grados (dirección de la parte negativa del eje Y)

D ------------------ 292,5 grados (dirección de la bisectriz al séptimo octante)

E ------------------ 315 grados (dirección de la bisectriz al cuarto cuadrante)

F ------------------ 337,5 grados (dirección de la bisectriz al octavo octante)

NOTA: Los vectores diagonales se consideran siempre de la misma longitud que los que están en las direcciones X e Y.

Volvamos sobre el ejemplo anterior. La explicación al primer octeto (014), una vez vista la sintaxis correspondiente, es: un 0 que indica notación hexadecimal, una longitud 1 y una dirección 4 (90 grados). De esta manera se dibuja un trazo unitario perpendicular al eje X y hacia arriba.

El siguiente octeto (020) es: 0 hexadecimal, trazo de longitud 2 y dirección 0 (0 grados); dibuja un trazo recto —partiendo del punto final del anterior— horizontal hacia la derecha y de dos unidades de dibujo de longitud.

Tras estos dos octetos, aparecen otros tres que, si los estudiamos detenidamente de la misma forma anterior, podemos ver que van dibujando un cuadrado cuyo semilado es igual a 1 (ˇ). Por último, un octeto final que sólo contiene 0, acaba la definición. Este último octeto debe estar presente al final de todas las definiciones de formas; es un código especial que indica el final de la definición. Un poco más adelante hablaremos de estos códigos especiales.

Vamos a ver otro ejemplo del archivo LTYPESHP.SHP:

*131,3,ZIG
012,01E,0

La primera línea indica el número de forma, el número de octetos de definición (2 más el 0 final) y el nombre asignado, además del asterisco inicial. La segunda línea, en su primer octeto, especifica un trazo unitario en la dirección 2 (45 grados) y, en su segundo octeto, un trazo unitario en la dirección E (315 grados). Al final se encuentra el 0 de fin de definición. Esta forma representa un símbolo similar al del acento circunflejo (^).

CINCO.2.2. Cómo cargar e insertar formas

Para poder insertar una forma en el dibujo actual, debemos cargar antes el archivo que contiene dicha forma. Así pues, para poder acceder a las formas contenidas en el archivo que hemos puesto de ejemplo en la sección anterior, deberemos cargarlo antes en memoria.

Para cargar un archivo de formas se utiliza el comando CARGA (o LOAD en versiones inglesas) en línea de comandos. Este comando llama a un cuadro de diálogo desde el que se elige la forma que deseamos cargar. Pero atención, únicamente podemos cargar archivos de extensión .SHX, es decir, los archivos de formas compilados, y no los fuente .SHP.

NOTA: Posteriormente veremos la manera de compilar nuestros .SHP.

Una vez cargado el archivo, y si no se produce ningún error de carga, se procederá a insertar las formas con el comando FORMA (en inglés SHAPE) desde la línea de comandos también. Este comando proporciona la posibilidad de escribir el nombre de una forma (el último parámetro de la primera línea de definición) o de listar los nombres de todas o algunas de las formas cargadas en memoria.

NOTA: Puede haber más de un archivo de formas cargado en memoria.

Al insertar las forma se nos pedirá el punto se inserción, la altura de la forma y ángulo rotación. En este punto, debemos recordar la necesidad de diseñar formas unitarias para luego proporcionarles una altura o factor de escala en esta entrada. El punto de donde viene "enganchada" la forma a la hora de insertarla, es el primer punto de definición de la misma, es decir, desde donde se comenzó a dibujar en el primer octeto.

Vamos entones a crear nuestro primer archivo de formas. Para este ejercicio diseñaremos una forma que representará un cuadrado con una de sus diagonales dibujada.

Tras abrir un editor de texto ASCII procederemos a escribir lo siguiente:

*1,6,CUADRADO
014,010,01C,018, 012, 0

La explicación es bien sencilla. Le proporcionamos un número 1 a la forma y le indicamos que va a ser descrita con 6 octetos (este número lo sabremos siempre al final de escribir la forma, lógicamente) y que se llamará CUADRADO. Comenzando desde la esquina inferior izquierda, trazamos (siempre trazos unitarios) un vector vertical hacia arriba, otro horizontal hacia la derecha, otro vertical hacia abajo, otro horizontal hacia la izquierda y un último vector inclinado (la diagonal) desde el punto inicial del cuadrado (donde ha acabado también el último vector) hasta el final del segundo vector (a 45 grados). Recordemos que los vectores diagonales han de considerarse todos de la misma longitud que los que no son diagonales, por ello tienen todos los vectores la misma medida en este ejemplo.

NOTA: Conviene hacer un pequeño boceto o esquema de la forma que queremos diseñar, anotando un punto de origen y la dirección y longitud de cada vector, para guiarnos.

NOTA: Al final de un archivo de definición de formas, como en todos los archivos vistos hasta ahora en este curso, deberemos introducir un INTRO (tras el último carácter de la última línea) para que el archivo funcione correctamente. De no ser así, no será reconocido como archivo de formas válido.

Guardaremos nuestro archivo (como archivo de texto si estamos en un editor que admite texto con formato; esto debemos tenerlo en cuenta, como deberíamos saber ya, en todos los archivos de personalización y programación de AutoCAD 14) con el nombre que deseemos y extensión .SHP.

CINCO.2.3. Compilando el fichero .SHP

Para poder insertar nuestra forma recién creada debemos cargar el archivo de definición, como hemos explicado. Pero para ello, habremos de compilarlo previamente para convertirlo en un archivo .SHX y que sea válido para AutoCAD.

Los archivos de formas fuente .SHP se compilan en AutoCAD 14 desde la línea de comandos con la orden COMPILA (COMPILE en inglés). Este comando abre un cuadro Windows de búsqueda de archivos que permite localizar el .SHP fuente para compilarlo. En la casilla desplegable Archivos de tipo: debe especificar *.shp, de los otros archivos se habla más adelante en este mismo MÓDULO.

Una vez escogido, pulsamos el botón Abrir y el archivo, si no encuentra ningún error el programa, será compilado con éxito. A partir de aquí, únicamente deberemos cargarlo e insertar la forma creada como se ha indicado anteriormente. El archivo se compilará con el mismo nombre que tenía el fuente, pero con extensión .SHX.

Al compilar un archivo de definición de formas se nos indicará en línea de comandos el nombre del archivo de salida (compilado) y su ubicación, así como el número de bytes que contiene u ocupa. Si existe algún error, además del correspondiente mensaje se nos proporcionará el número de la línea en el archivo ASCII que produce el fallo.

NOTA: Si intentamos cargar un archivo .SHX y nos aparece un error de AutoCAD que dice algo así como: Ruta_y_nombre_de_archivo es un archivo de fuente de texto normal, no un archivo de formas, quiere decir que estamos intentado cargar como archivo de formas un archivo de tipos de letra (que veremos después). Estos archivos no se pueden cargar de esta manera.

Ahora, vamos a ver algún ejemplo práctico más. La siguiente forma dibuja un símbolo parecido a una señal de tráfico de las que indican la dirección a algún sitio dentro de una población (mirando a la derecha):

*12,6,DIRECC
014,020,01E,01A,028,014, 0

La siguiente definición dibuja una forma que representa una flecha mirando a la derecha:

*56,6,FLECHA
020,014,02F,029,014, 0

NOTA: Podemos cargar archivos de formas que contengan números iguales asignados a las definiciones, pero no puede haber números idénticos dentro del mismo archivo —como ya se ha comentado—. Si se cargan archivos que contengan formas con nombres idénticos, solamente se podrá insertar la forma que resida en el primer archivo cargado. Si se carga un archivo con dos formas que tengan el mismo nombre, sólo se podrá insertar la que esté definida antes.

NOTA: Al editar un archivo de definición de formas y cambiar sus líneas, recordemos volver a compilarlo y volver a cargarlo para comprobar sus variaciones. Pero ojo, para volver a cargarlo deberemos entrar en un dibujo nuevo para que AutoCAD descargue de memoria las antiguas definiciones, de otra manera, no veríamos cambios en nuestras formas.

 

CINCO.2.4. Códigos especiales

Aparte de las orientaciones que definen los vectores, se puede indicar a modo de octetos una serie de códigos especiales que realizan algunas operaciones adicionales para facilitarnos el dibujado de formas. Estos códigos comienzan por el 0 hexadecimal (que ya hemos visto) y llegan al 0E hexadecimal. En decimal van, evidentemente, del 0 al 14. Suele ser norma lógica especificar estos códigos en decimal para distinguirlos de los de dirección básica de vectores en hexadecimal.

Los códigos especiales y su explicación vamos a ir viéndolos a continuación uno por uno.

· Código 0 (0 hexadecimal). Termina la definición de una forma. Ya lo hemos visto antes y, como sabemos, ha de acabar siempre una definición.

· Código 1 (01 hexadecimal). Activa el modo de dibujo. Los vectores que se indiquen en los octetos que le sigan serán dibujados normalmente. Actúa como si se bajara una pluma conectada al cursor que traza la forma y sólo tiene sentido después del siguiente código.

· Código 2 (02 hexadecimal). Desactiva el modo de dibujo. Los vectores que se indiquen a continuación de este código no se dibujarán; se recorrerá la distancia indicada pero no se trazará ninguna línea o arco. Actúa como si se levantará una pluma conectada al cursor que traza la forma; para volver a activar el modo de dibujo se recurre al código anterior.

De esta forma —con estos códigos 01 y 02—, podemos dibujar trazos un poco más complejos que los estudiados hasta ahora, ya que no hace falta que pasemos varias veces por un mismo sitio para llegar a un punto. Por ejemplo, la siguiente forma se corresponde con el símbolo de una cruz:

*10,11,CRUZ
010,014,002,01C,001,01C,002,014,001,010,0

Expliquémosla un poco; es muy simple. Dibujamos un trazo de una unidad de dibujo en el sentido horizontal hacia la derecha (010) y otro trazo unitario hacia arriba (014). En este momento, y para seguir dibujando la cruz por el medio, desactivamos el modo de dibujo (002). Debemos indicar el primer 0 porque es notación hexadecimal, como se explicó. Ahora, recorremos el espacio inverso al último tramo dibujado pero sin trazar (01C), volvemos a activar el modo de dibujo (001) y trazamos el tramo inferior vertical (01C). A continuación, desactivamos el dibujo de nuevo (002) para volver al centro (014), lo volvemos a activar (001) y realizamos el último tramo horizontal hacia la derecha (010). Acabamos con el 0 de rigor.

Si hubiéramos indicado los códigos especiales en decimal habría sido así:

*11,11,CRUZ
010,014,2,01C,1,01C,2,014,1,010,0

· Código 3 (03 hexadecimal). Divide la longitud de los vectores a partir de él por el factor indicado en el octeto siguiente.

· Código 4 (04 hexadecimal). Multiplica la longitud de los vectores a partir de él por el factor indicado en el octeto siguiente.

El efecto de estos dos códigos es acumulativo si se utilizan repetidas veces. Para anular el efecto de uno de ellos de utiliza el otro, es decir, si establecemos que todas las longitudes siguientes se dividan entre dos, por ejemplo, para paliar este efecto y volver a las medidas originales en otros vectores, debemos multiplicar por dos su longitud. Veamos un ejemplo:

*1,13,CUA2

014,3,2,010,01C,4,2,018,3,2,01C,010,0

El primer trazo es unitario y vertical hacia arriba (014), luego se define que todos los trazos siguientes habrán de ser divididos (3) entre dos (2). Ahora se indica un trazo de 1 horizontal hacia la derecha (010), pero se dibujará de 0,5 unidades de dibujo —porque será dividido entre dos: 1 / 2 = 0,5—. A continuación, un trazo unitario vertical hacia abajo (01C), pero será también de 0,5. Luego se especifica que todos los trazos siguientes se multipliquen (4) por dos (2), esto es, se deshace la operación anterior, por lo que ahora los trazos medirán la longitud indicada. Se traza un tramo de 1 horizontal hacia la izquierda (018) y se vuelve a establecer la especificación de división (3) entre dos (2). Se termina con dos trazos de 0,5 hacia abajo y hacia la derecha (01C y 010), y con el 0 final. El resultado son dos cuadrados unidos por sus vértices inferior izquierdo y superior derecho, respectivamente.

· Código 5 (05 hexadecimal). Memoriza la posición actual del cursor de dibujo en un acumulador o pila. Este acumulador puede almacenar hasta cuatro posiciones. Todos los valores almacenados en la pila deben después ser extraídos con el código siguiente y no debe quedar ninguno almacenado al terminar la definición de la forma.

· Código 6 (06 hexadecimal). Toma la posición actual del acumulador. Ésta debe haber sido previamente almacenada con el código anterior. Vamos a ver un ejemplo:

*10,9,CRUZ
010,5,014,6,5,01C,6,010,0

Este ejemplo se corresponde con el anterior estudiado de la cruz, pero realizado aquí de una manera más simple. Tras realizar el primer trazo hacia la derecha (010) de guarda la posición del cursor en el acumulador —esta posición será la del final del trazo, es decir, el centro de la cruz—. Dibuja el trazo vertical hacia arriba (014) y vuelve a la posición anterior guardada en el acumulador (6). Antes de dibujar nada guarda esta posición de nuevo (5), dibuja el trazo vertical inferior de la cruz (01C) y vuelve a la posición guardada (6). Finaliza dibujando el último trazo horizontal derecho y con el 0 último.

NOTA: Nótese que hemos de guardar una posición para poder luego recuperarla, es decir, con guardar una sola vez no podemos recuperar luego varias, aunque sea la misma posición como en este caso anterior. Cada vez que se llama al acumulador se pierde la posición. En resumen, habrá tanto códigos 6 como 5 haya; ni más 6 que 5, ni más 5 que 6.

NOTA: Las posiciones pueden estar anidadas: podemos llamar tres veces y luego ir recuperando los valores uno a uno y empezando por el último guardado hacia el primero. Como máximo puede haber cuatro niveles de anidación (los cuatro valores que guarda el acumulador como mucho).

· Código 7 (07 hexadecimal). Llama a una subrutina consistente en una forma ya definida, o sea, una subforma de la forma actual. El octeto siguiente al de este código debe ser el número asignado (entre 1 y 255) a la subforma en el mismo archivo de definición. Una vez dibujada la subforma, se reanuda el dibujo del resto de octetos de la forma actual en curso. El siguiente es un archivo de ejemplo (con dos formas) en el que se usa este código:

; Ejemplo de forma con una subforma incluida

*134,11,CRUZ
5,014,5,014,6,5,018,6,010,6,0
*201,17,CUACRUZ
024,020,02C,028, 2,010,1, 7,134, 01C,3,2,5,018,6,010,0

Aquí (CUACRUZ) se dibuja un cuadrado de lado igual a 2 y se inserta (7) la forma CRUZ (134) en el medio (subforma), dividiéndolo en cuatro cuadrantes. Luego se dibuja una especie de pie al conjunto. El resto de la definición tiene que comprenderse ya perfectamente.

NOTA: Nótese en el ejemplo anterior que la subforma se dibujará comenzando en el punto en el que acabe la forma principal y desde el punto de inicio de dibujo de la subforma. La forma principal se reiniciará en el punto en el que acabe la subforma. Por eso hay que tener muy presente los puntos de inicio y final de las subformas, así como los puntos intermedios donde se van a insertar dentro de las formas principales. Y es por ello que la cruz de este ejemplo no se dibuja de la misma manera que la de ejemplos anteriores.

NOTA: Nótese también la técnica de anidamiento de memorizaciones y llamadas al acumulador en la subforma CRUZ.

· Código 8 (08 hexadecimal). Permite dibujar un vector en cualquier dirección y con cualquier longitud. De esta forma, evitamos las limitaciones impuestas por los octetos básicos de definición que, como sabemos, sólo nos permiten una longitud máxima de 15 en 16 orientaciones predeterminadas. Los dos octetos que siguen a este código se toman como incrementos en X e Y del vector que va ser definido. Por ejemplo:

*1,6,HOLA
024,8,-7,18,020,0

Esta forma define un trazo vertical hacia arriba de dos unidades y, posteriormente, indica un vector (8) con sendos incrementos X (-7) e Y (18). Después acaba con un trazo horizontal hacia la derecha de dos unidades de dibujo, y el 0 final.

Estos vectores, como vemos, están definidos por coordenadas cartesianas: desde el último punto trazado, una distancia en X y otra distancia en Y. Trazando una recta paralela imaginaria al eje Y que pase por dicho punto en X, y otra paralela imaginaria al eje X que pase por el punto en Y, donde se corten ambas rectas se producirá un punto que, unido con el inicio (el final del vector anterior), dará la dirección del vector actual propuesto, y tendrá como sentido el tomado desde el inicio hacia el final.

Para mayor claridad de los datos, se admiten paréntesis en la definición —entre ambos valores de X e Y—. Así el ejemplo anterior podría haberse escrito:

*1,6,EJEMPLO1

014,8,(-7,18),010,0

NOTA: Apréciese que, aunque vayan los vectores entre paréntesis, el número de octetos sigue siendo el mismo, esto es, el número de valores entre comas; o el número de comas más uno.

· Código 9 (09 hexadecimal). Permite indicar varios valores seguidos de vectores personales con incrementos X e Y, tal como se ha explicado en el código anterior. De esta forma, nos ahorramos el tener que especificar continuamente este código anterior, ya que todos los pares de valores que sigue al código 9 se toman como incrementos en X y en Y (respectivamente) hasta un par 0,0 que debe terminar siempre la secuencia. Se admite también la inclusión de paréntesis. Por ejemplo:

*2,9,EJEMPLO2
9,(7,-5),(16,-8),(-2,21),(0,0)

· Código 10 (0A hexadecimal). Permite definir un arco octante mediante los dos octetos siguientes. Un arco octante abarca un ángulo múltiplo de 45 grados y empieza y termina siempre en los límites de uno de los octantes de la circunferencia. Esto no quiere decir que solamente pueda ocupar un octante, sino que pueden ser varios los que abarque. El primer octeto que sigue a este código especifica el radio del arco y, el segundo, contiene dos datos: la primera mitad del octeto es el octante inicial y, la segunda mitad, el número de octantes cubiertos de 0 a 7; 0 significa 8 octantes, es decir, la circunferencia completa. Si el arco se genera en sentido antihorario o trigonométrico no deberemos indicar signo. Por el contrario, si se genera en sentido horario habrá que indicar signo negativo (-). Se admiten paréntesis por claridad. Veamos un ejemplo:

*10,6,EMPALME
034,10,(2,-043),02E,0

Este ejemplo indica lo siguiente: un primer trazo vertical hacia arriba de tres unidades de dibujo (034), ahora comienza la definición de un arco de octantes (10) de radio dos unidades (2), que se dibujará en sentido horario (signo -), que comenzará en el octante cuarto, es decir en 180 grados, y abarcará tres octantes, es decir 135 grados (043). Después se traza un tramo vertical hacia abajo (02E) y se acaba con 0. Esta forma asimila a dos líneas unidas con un empalme o enlazadas tangentemente.

El siguiente ejemplo traza un círculo completo:

*1,4,CIRCUL
10,(2,010),0

NOTA: Indiquemos siempre el segundo octeto de los paréntesis en formato hexadecimal, es decir, comenzando con el 0. Lo mismo para el código siguiente.

· Código 11 (0B hexadecimal). Permite definir arcos que no comienzan ni terminan en octantes. Los cinco octetos siguientes a la especificación del código son utilizados para definir el arco. Los parámetros de dichos cinco octetos son:

— desplazamiento inicial: la distancia a la que empieza el arco desde el último octante completo que abarca. Se indica en fracción de octeto, multiplicado por 256 para que dé un valor de 0 a 255.

— desplazamiento final: la distancia a la que termina el arco desde el último octante completo que abarca. Se indica igual que el anterior.

— radio mayor: el octeto de mayor valor del radio. Será 0 salvo en los casos en que el radio exceda de 255.

— radio menor: el radio del arco, tal como se ha explicado en el código anterior (10).

— octante inicial y número de octantes: el mismo significado que con el código 10.

Como vemos, con este código se indica también un octante de arranque y un número de octantes cubierto, así como el radio del círculo. La única diferencia es que hay que especificar los desplazamientos necesarios con respecto a los límites de los octantes del círculo. De ahí que se pueda trazar cualquier arco. El siguiente ejemplo muestra un arco construido de esta manera:

*255,7,ARCO
11,(85,171,0,5,012),0

Veamos la explicación, ya que este código resulta un poco árido al principio. Lo primero que se indica es el código (11) para trazar el arco. Después, y como hemos expuesto antes, el desplazamiento inicial. El arco comienza en un ángulo de 60 - 45 = 15 grados del primer octante. Esto supone una fracción de 15 / 45 = 1 / 3 de octante. Expresado en un octeto de definición se obtiene una cifra de 0,3333 * 256 = 85 (85).

El desplazamiento final es el siguiente octeto. Se obtiene de igual modo que el desplazamiento inicial, esto es, el arco termina en 120 - 90 = 30 grados del segundo octante. Luego el valor es (30 / 45) * 256 = 171 (171).

Como el radio es inferior a 255, el valor del radio mayor es 0 (0). El radio del arco, que se representa como radio menor es 5 (5) y, por último, se indica el octante inicial que es 1 (1), ya que empieza una fracción después del primer octante, y el octante final que es 2 (2), ya que empieza una fracción después del segundo octante.

La manera de trazar un círculo completo con este código sería la que sigue:

*1,7,CIR
11,(0,0,0,10,010),0

· Código 12 (0C hexadecimal). Permite definir arcos mediante incrementos en X e Y, aplicando un factor de curvatura (tres octetos). Los incrementos indican el punto final del arco y, el factor de curvatura es el resultado de 2 * H / D, siendo H la flecha del arco y D la cuerda. Como el factor se indica en un octeto con signo (+ si es antihorario y - si es horario), la curvatura debe multiplicarse por 127. Los incrementos también se indican en un octeto con signo, por lo tanto van de -127 a 127. Por ejemplo:

*1,5,SEMICIR
12,(0,5,127),0

Este ejemplo dibuja una forma que es un semicírculo. Los incrementos, 0 en X y 5 en Y, se refieren, como hemos dicho, al punto final del arco, por lo que, en este caso, será un arco de diámetro igual a 5. Al ser un semicírculo, la flecha es igual al radio, por lo que 2 * 2,5 / 5 = 1; o sea, 1 × 127 = 127 (curvatura).

· Código 13 (0D hexadecimal). Al igual que el código 9 permitía indicar varios vectores seguidos para no tener que especificar continuamente el código 8, este código 13 permite definir varios arcos seguidos de la forma explicada en el código anterior. De esta manera no habremos de repetir el código 12 de forma continua cuando se quiera definir más de un arco seguido. De la misma forma que en aquel caso, deberemos acabar la secuencia con el par 0,0. Veamos un ejemplo que dibuja una forma que es similar a una letra S con los extremos alargados en dos segmentos:

*120,12,ESE
020,13,(0,5,127),(0,5,-127),(0,0),020,0

· Código 14 (0E hexadecimal). Es una señal de procesamiento vertical. Se utiliza sólo en descripciones de tipos de letra —que enseguida veremos— que pueden tener generación vertical. Establece una alternativa, de forma que el código siguiente se procesa o se salta, según se esté dibujando el texto con generación vertical o no.

NOTA: Los paréntesis pueden ser usados como aclaración en cualquier parte de la definición, no exclusivamente donde se ha indicado aquí; AutoCAD no los procesará.

NOTA: AutoCAD 14 proporciona otros archivos de formas adicionales (aparte del LTYPESHP.SHX) que pueden encontrarse en el directorio \ACAD\BONUS\FONTS\ del CD-ROM de instalación (probablemente no habrán sido copiados a disco duro). Esos archivos de ejemplo son ES.SHX y PC.SHX (con sus correspondientes .SHP). Podemos revisar dichos archivos para comprender mejor el proceso de creación de una forma.

 

CINCO.3. ARCHIVOS DE TIPOS DE LETRA

Los tipos de letra .SHX son archivos de formas de AutoCAD que se definen siguiendo el mismo método explicado hasta este punto. Únicamente 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 14 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 archivo .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 14, 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.

 

CINCO.3.1. Utilizar los tipos de letra creados

Así como se compilan de la misma manera que los archivos de formas, los archivos de tipos de letra no se pueden cargar como se hacía con aquellos. La manera de utilizarlos es simplemente eligiendo el tipo de letra creado (una vez compilado) desde Formato>Estilo de texto..., en el área Tipo de letra en la casilla desplegable Nombre del tipo de letra. Desde aquí se establecen las características generales de la fuente asociada a un estilo de texto. Luego, únicamente habremos de escoger dicho estilo para escribir con cualquiera de los comandos de dibujo de textos (TEXTO, TEXTODIN o TEXTOM, cuyas correspondencias inglesas son TEXT, MTEXT y DTEXT, respectivamente).

Para que nuestro archivo de texto aparezca en la lista indicada, dicho archivo habrá de encontrarse en uno de los directorios de soporte del programa. Recordamos que desde Herr.>Preferencias..., en la pestaña Archivos y en la carpeta Camino de búsqueda de archivos de soporte, se pueden añadir carpetas o directorios de soporte que el programa reconocerá como tales.

El tipo de letra también se puede escoger con el comando ESTILO (STYLE en inglés) tecleado en la línea de comandos —aparecerá el mismo cuadro expuesto— o con su equivalente del mismo nombre para manejo desde línea se comandos, -ESTILO (-STYLE).

 

CINCO.3.2. Tipos de letra Unicode

Existe un juego de caracteres básico comunes a todos los idiomas, los cuales se introducen directamente desde cualquier teclado y de la misma forma. Pero también existen otros caracteres que son específicos de cada idioma, como letras acentuadas (Á, é, è, ù...) o con diéresis (ö, ë, ä, Ë...) u otros. Estos caracteres cambian la funcionalidad de algunas teclas, según en el idioma en que se esté trabajando.

Internamente, los tipos de letra estándar de AutoCAD 14 corresponden a la asignación de caracteres usada por el sistema operativo base. Esto se debe a que los caracteres se almacenan directamente en la base de datos con el formato adquirido en el teclado. Se utilizan los mismos códigos de carácter para generar los tipos de letra. Esto puede convertirse en un problema si se emplean, por ejemplo, caracteres acentuados (de 8 bits) para los que existen muchas normas de codificación.

Las limitaciones de la asignación de caracteres han obligado a incluir este juego de tipos de letra para las diferentes páginas de códigos usadas por AutoCAD. Aunque en esencia estos tipos de letra son iguales, algunos de sus caracteres se encuentran en posiciones distintas, según la página de códigos para la que están definidos. Si la codificación de tipo de letra no se corresponde con la del texto del dibujo, es posible que se dibujen caracteres erróneos.

Con los tipos de letra Unicode, las cadenas de texto se convierten a este código antes de dibujarse. Esto garantiza una correcta generación de textos procedentes de otros idiomas, sin que aparezcan caracteres extraños o no reconocidos. De esta forma ya no se necesitan tipos de letra adicionales para otros idiomas o plataformas. Gracias a su amplio juego de caracteres, un solo tipo de letra Unicode permite utilizar cualquier idioma y plataforma. Para el usuario esta función resulta transparente porque, en caso necesario (debido a las distintas páginas de códigos), los dibujos se convierten a la página de códigos de sistema de AutoCAD 14 durante el proceso de carga. Los dibujos siempre se guardan en la página de códigos de sistema de AutoCAD.

NOTA: Dado que Unicode no permite usar todos los idiomas asiáticos, algunas o todas las versiones asiáticas tendrán que utilizar tipos de letra grandes, los cuales serán explicados más adelante.

La sintaxis de los archivos de definición de tipos de letra Unicode es prácticamente idéntica a la de los archivos de definición de tipos habituales ya explicados. La principal diferencia se encuentra en la sintaxis del encabezamiento de tipo de letra, como lo indica este código:


*UNIFONT,6,nombre_tipo_letra
arriba,abajo,modos,codificación,tipo,0

Los parámetros nombre_tipo_letra, arriba, abajo y modos son iguales a los de los tipos de letra habituales. Por su lado, codificación es un valor que indica la codificación del tipo de letra según la tabla siguiente:

Valor ------ Codificación



0 --------- Unicode

1 --------- Multibyte comprimido 1

2 --------- Archivo de forma

Y tipo es la información de incrustación de tipo de letra. Este parámetro especifica si el tipo de letra tiene licencia. Los tipos de letra con licencia no pueden modificarse ni intercambiarse. Los valores según la tabla que sigue:

Valor ------ Información de incrustación



0 --------- Puede incrustarse

1 --------- No puede incrustarse

2 --------- Incrustación de sólo lectura

Otra diferencia adicional entre estas definiciones y las habituales son los números de forma. Las definiciones con Unicode utilizan siempre números de forma hexadecimales en lugar de valores decimales. Cada tipo de letra se especifica mediante un código de la forma:

\U+nnnn

donde nnnn es el número de código hexadecimal. Esto no es necesario, pero conveniente para establecer correspondencia entre los números de forma y los valores de carácter de control \U+. Lo que sí es necesario es establecer los números de forma en hexadecimal. Las dos líneas siguientes son equivalentes:

*00031,18,num1

*\U+031,18,num1

 

CINCO.3.3. Tipos de letra grande y grande extendido

Algunos idiomas, como el japonés, utilizan tipos de letra de texto con miles de caracteres que no son ASCII. Con AutoCAD 14 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

------------------- ------------------- ------------------- forma.

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 mayúscula, como hacíamos antes, o en minúscula, como en este caso.

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 "||"

...

 

CINCO.3.3.1. Utilizar estos tipos de letra grande

Si deseamos utilizar un tipo de letra grande para dibujar texto, debemos definir un estilo de texto y especificar el nombre de un archivo de tipo de letra que admita letra grande. Esto lo podemos comprobar cuando en el cuadro Estilo de texto esté disponible la casilla Usar tipos de letra grandes. Si así es, la activaremos y elegiremos el tipo de letra grande en la lista desplegable Tipo de letra grande:.

Si se hace desde la línea de comandos, con las órdenes de AutoCAD 14 expuestas anteriormente, debe indicarse el tipo de letra grande separado con una coma del tipo normal, así:

txt,greek

AutoCAD supone que el primer nombre corresponde al tipo de letra estándar y que el segundo es del tipo de letra grande. Si sólo se escribe un nombre, AutoCAD supone que se trata del tipo de letra estándar y suprime cualquier tipo de letra grande asociado.

Si utilizamos comas iniciales o finales al especificar los nombres de archivo de tipo de letra, podemos cambiar un tipo de letra y dejar los demás intactos, como se indica en la tabla siguiente.

Entrada ------------------ Resultado


estándar,grande --------- Se especifica el tipo de letra estándar y grande.

estándar, ---------------- Sólo se especifica el tipo de letra estándar (el grande

--------------------------- permanece intacto).

,grande ------------------ Sólo se especifica el tipo de letra grande (el estándar

--------------------------- permanece intacto).

estándar ----------------- Sólo se especifica el tipo de letra estándar (si es necesario

--------------------------- se suprime el grande).

INTRO (respuesta nula) ---- Ningún cambio.

Cuando utiliza el comando -ESTILO (-STYLE), con su opción ?, para presentar los estilos o revisar uno existente, AutoCAD muestra el archivo de tipo de letra estándar, una coma y el archivo de tipo de letra grande. Si el estilo sólo tiene un archivo de tipo de letra grande, aparece con una coma inicial, como en ,greek.

AutoCAD primero busca los caracteres de una cadena de texto en el archivo de tipo de letra grande. Si no los localiza, los busca en el archivo de tipo de letra estándar.

 

CINCO.3.4. Soporte PostScript

Sabemos que AutoCAD 14 contiene funciones de soporte PostScript. Estas funciones, además de muchas otras cosas, permite utilizar tipos de letra que utilicen la tecnología PostScript.

El archivo de soporte ACAD.PSF, en el directorio \SUPPORT\ de AutoCAD 14, es un fichero ASCII que contiene las asignaciones de archivos de forma a tipos de letra PostScript y las definiciones y procedimientos de codificación para dichos tipos de letra, entre otras. Los archivos de definiciones de tipos de letra PostScript tiene la extensión .PFB y hay que compilarlos con el mismo comando que los archivos de formas o tipos de letra estándar.

Por otro lado decir que el archivo de mapa de tipos de letra de AutoCAD 14 (FONTMAP.PS) es un catálogo, o mapa, de todos los tipos de letra reconocidos por el intérprete PostScript de AutoCAD 14 (ACADPS.ARX). Cuando se ejecuta CARGAPS, este archivo ASCII asigna los nombres de tipo de letra de idioma PostScript a los nombres de los archivos de definición de tipo de letra (.PFB) correspondientes. Los tipos de letra que han de cargarse automáticamente al especificarlos deben declararse en FONTMAP.PS.

Cuando se importa un archivo .EPS (PostScript Encapsulado) con CARGAPS, ACADPS.ARX usa FONTMAP.PS para localizar los archivos .PFB correspondientes a los tipos de letra indicados en el archivo .EPS. Si ACADPS.ARX encuentra un archivo .PFB en FONTMAP.PS pero no en el sistema, la aplicación muestra un mensaje de advertencia y utiliza un tipo de letra por defecto. Por lo que es posible declarar tipos de letra no instalados sin problema alguno.

El archivo FONTMAP.PS suministrado hace referencia a un juego de tipos de letra Type 1 proporcionado con AutoCAD, así como a los tipos de letra distribuidos con Adobe Type Manager for Windows, Adobe Plus Pack y Adobe Font Pack 1. Si se han adquirido otros tipos de letra, se puede editar el archivo de mapa de tipos de letra y declararlos de la misma manera que los existentes.

Para obtener más información, véase el contenido del archivo FONTMAP.PS, incluidos los comentarios que explican la sustitución de tipos de letra.

 

CINCO.4. EJEMPLOS PRÁCTICOS DE FORMAS Y TIPOS
DE LETRA

CINCO.4.1. Cuadrado con diagonales

*1,9,CUADIA2
014,010,01C,5,018,012,6,016,0

 

CINCO.4.2. Subforma anterior y triángulos

*2,11,TRICUA
5,7,1,3,2,012,01E,6,01E,012,0

 

CINCO.4.3. Número ocho simple

*00038,16,OCHO
13,(0,5,127),(0,5,-127),(0,-5,-127),(0,-5,127),(0,0),0

 

CINCO.4.4. Letra G mayúscula románica

*00047,102,gmayus
2,14,3,2,14,8,(-23,-42),14,4,2,14,5,8,(17,18),1,8,(1,-3),064,
8,(-1,-3),026,8,(-3,1),028,8,(-3,-1),02A,02B,8,(-1,-3),05C,
8,(1,-3),02D,02E,8,(3,-1),020,8,(3,1),022,2,8,(-7,18),1,029,02A,
02B,8,(-1,-3),05C,8,(1,-3),02D,02E,02F,2,8,(7,8),1,08C,2,8,(1,8),
1,08C,2,085,1,070,2,8,(2,-8),14,6,14,3,2,14,8,(23,-18),14,4,2,0

 

CINCO.4.5. Letra n minúscula gótica

*0006E,80,nminus
2,14,8,(-9,-14),14,5,8,(2,12),1,010,01E,08C,029,010,02F,01E,2,8,
(-2,13),1,01E,0AC,02F,2,8,(-5,11),1,022,02E,09C,02F,02A,2,0B4,1,
8,(3,1),021,012,01E,02F,010,029,08C,01E,010,2,8,(-5,11),1,02F,
0AC,01E,2,8,(-5,11),1,010,02F,09C,02E,022,2,8,(2,-2),14,6,
14,8,(9,-9),0

 

CINCO.FIN. EJERCICIOS PROPUESTOS

  1. Crear una forma que represente un arco y una flecha.
  2. Crear una forma con el símbolo base para mecanizados.
  3. Créese una forma que represente un jalón con banderola, apta para situar estaciones topográficas.
  4. Diseñar una forma que represente un helipuerto.
  5. Diseñar una forma que represente un vértice geodésico.
  6. Crear una forma con el símbolo eléctrico para una resistencia.
  7. Crear una letra f minúscula sencilla.
  8. Diséñese una letra Q mayúscula sencilla.
  9. Créese una letra K mayúscula itálica.
  10. Crear un letra alfa griega minúscula.
  11. Diseñar un archivo con múltiples formas y una fuente de tipo de letra nueva completa con todos los caracteres y signos necesarios para la acotación normalizada de un delineante mecánico. Inclúyanse en ambos archivos símbolos de tolerancia, símbolos de mecanizado, símbolos de acotación, flechas de cota y letras normalizadas.

 

 

EJERCICIOS RESUELTOS DEL MÓDULO TRES

EJERCICIO I

*Mult, __ . _ __ . _ __ . _
A, 2,-1,0,-1,1,-1

 

EJERCICIO II

*Justif, __Texto __Texto __
A, 3,-4,["TEXTO",STANDARD,S=1,R=0,X=-2.5,Y=-.5], -4

 

EJERCICIO III

*Relatv
A, 2, -1,0,-3.5,["TEXTO",STANDARD,S=1,R=90,X=.5,Y=-.5],-3.5, 0,-1

EJERCICIO IV

*Formas
A, 2,[BOX,ltypeshp.shx,S=1], -2,2,[CIRC1,ltypeshp.shx,S=1], -2,2,[ZIG,
ltypeshp.shx,S=1], -2

 

EJERCICIO V

*ForTex, Combinación de forma y texto
A, 1,[CIRC1,ltypeshp.shx,S=1],-2, 2,["TEXTO",STANDARD,S=1,A=30,X=0.5,Y=-1.5],-4,1

 

EJERCICIO VI

 

(Ejercicio completo para resolver por técnicos y/o especialistas).

 

 

EJERCICIOS RESUELTOS DEL MÓDULO CUATRO

EJERCICIO I

*TRAZOPUN, Trazos y dos puntos inclinadas
45, 0,0, 1, 1, 1,-.5,0,-.5,0,-.5

 

EJERCICIO II

*CRUZADAS, Líneas continuas que se cruzan
0, 0,0, 0, 1.414213562373
45, 0,0, 0, 1
135, 0,0, 0, 1

 

EJERCICIO III

*GRUP, Grupos de líneas continuas
90, 0,0, 0, 2
90, .5,0, 0, 2

 

EJERCICIO IV

*Celos, Cuadros de lado 1 y espacio 0.5
0,0,0,0,1.5,1,-.5
0,0,1,0,1.5,1,-.5
90,0,0,0,1.5,1,-.5
90,1,0,0,1.5,1,-.5

 

EJERCICIO V

*Ladrillos, Trama de ladrillos
0,0,0,0,.25
90,0,0,.25,.25,.25,-.25

 

EJERCICIO VI

*Estrellas, Estrellas de seis puntas
0, 0, 0, 0, 5.49926, 3.175, -3.175
60, 0, 0, 0, 5.49926, 3.175, -3.175
120, 1.5875, 2.74963, 0, 5.49926, 3.175, -3.175

 

EJERCICIO VII

(Ejercicio completo para resolver por técnicos y/o especialistas).

 

Autor: Jonathan Préstamo Rodríguez

Para: La Web del Programador