La estructura XML utilizada para describir los elementos en QElectroTech 0.2

. . . o la guía del creador de elementos en XML. Esta página tiene por objeto describir la estructura XML utilizada para almacenar las definiciones de los elementos utilizados en QElectroTech. Estas direccionan a los desarrolladores de QET pero también a los no desarrolladores que querrían prescindir del editor de elemento.

Ejemplo y estructura general de una definición de elemento

<!DOCTYPE definition SYSTEM "definition_element.dtd">
  <definition type="element" width="45" height="65" hotspot_x="25" hotspot_y="45" orientation="dnnn">
    <names>
      <name lang="fr">Moteur asynchrone triphasé</name>
      <name lang="en">Three-phase induction motor</name>
    </names>
    <description>
      <!--U-->
      <polygon x1="-20" y1="-40" x2="-20" y2="-20" x3="-14" y3="-14" antialias="false" closed="false"/>
      <!--V-->
      <line x1="0" y1="-40" x2="0" y2="-20" antialias="false"/>
      <!--W-->
      <polygon x1="20" y1="-40" x2="20" y2="-20" x3="14" y3="-14" antialias="false" closed="false"/>
      <circle x="-20" y="-20" diameter="40" antialias="true" style="filling:white;"/>
      <!--Lettre M-->
      <text x="-13.5" y="12" size="24" text="M"/>
      <!--Bornes-->
      <terminal orientation="n" x="-20" y="-40"/>
      <terminal orientation="n" x="0"   y="-40"/>
      <terminal orientation="n" x="20"  y="-40"/>
    </description>
  </definition>

Este código XML representa un “motor asincrónico trifásico”: motor asincrónico trifásico

El doctype en primera línea no es muy importante en la medida en que un DTD no es suficiente para validar completamente una definición de elemento

El elemento XML principal es pues el tag ” definition”. En caso de que tuviéramos varios tipos de definiciones a futuro, se utiliza el atributo type (tipo) para especificar que se trata de una definición de elemento.

Dimensiones del elemento

Una de las primeras cosas que deben precisarse en la definición de un elemento es su tamaño: anchura (width) y altura (height), en pixeles. Estas dos dimensiones deben ser totalidades múltiples de 10. Si este no es el caso, QET los redondeará a la decena superior (ejemplo : 50 por 42 pixeles). Determinan el tamaño y el rectángulo que delimita el elemento.

Esquema explicativo

Punto de gancho (hotspot) del elemento

El punto de gancho del elemento designa el punto colgado al cursor del ratón entonces de un drag and drop (selecciona y arrastra) del elemento, Debe actuar de datos enteros. “hotspot_x” este es la abscisa, “hotspot_y” este es la ordenada. Se considera que la esquina superior izquierda del rectángulo que delimita el elemento es el origen. Si los valores proporcionados sobrepasan del rectángulo que delimita, se limitará al tamaño del elemento. El hotspot es el centro también de rotación utilizado en el cambio de orientación del elemento.

Orientación del elemento

Es necesario a continuación definir cuáles son las orientaciones posibles del elemento. La orientación del elemento se utiliza en la instalación de los conductores pero también para impedir al usuario de volver un elemento en una dirección que no tendría sentido. El atributo de orientación es definido por una secuencia de 4 caracteres, cada carácter definiendo el comportamiento para una orientación.

  • 1er carácter : Norte
  • 2do carácter : Este
  • 3er carácter : Sur
  • 4to carácter : Oeste

Cada carácter puede tener el siguiente valor:

  • d para “default” (defecto) : indica que, por défaul, el elemento se considera como que está orientado en esta dirección. Es necesario indicar absolutamente una orientación por defecto.
  • y para “sí” : el usuario puede orientar el elemento en esta dirección.
  • n para “no” : el usuario no puede orientar el elemento en esta dirección.

Ejemplo: orientation=“ydny” significa que el elemento se dibuja orientado hacia el este y que pueden volverle hacia el norte y al oeste pero no hacia el sur.

Conexiones internas

Por defecto, no es posible conectar dos terminales de un mismo elemento. Este comportamiento puede cambiarse con el atributo “ic” y el valor true.

El resto de la definición

El resto de la definición se divide en dos partes: la primera es la definición de los nombres del elemento, con el élément XML “names”. El segundo es la descripción del dibujo y la composición del elemento, con el element XML “description”.

Definir uno o más nombres para el elemento

Un elemento dado un nombre por lengua. Es pues posible definir tantos nombres que de traducciones posibles. Según la lengua del sistema (que puede ser diferente de las traducciones disponibles para QET), se indica el nombre adecuado y se elige. Internamente, QET sólo dirige nombres de ficheros. El élément XML “names” acepta elementos XML pequeños “name”. Cada “name” debe tener un atributo “lang”, conteniendo dos letras que representan una lengua. actúan en realidad las dos primeras letras del “locale” del sistema. Ejemplo: para especificar el nombre de un elemento bajo un sistema configurado con la lengua (Frances) /locale“fr_FR@euro”, es necesario indicar lang=“fr”.

Los elementos “name” sin atributo “lang” se ignoran. Si la lengua del sistema no se encuentra en los nombres del elemento, la lengua inglesa (lang=“en”) se utiliza en su lugar.

Dibujar y componer el elemento

La definición del dibujo del elemento es bastante próximo a la codificación de una imagen al formato SVG. Las partes del dibujo se dibujan en el mismo orden que los elementos XML, debe decirse que un elemento cubrirá eventualmente a sus antecesores. Se ignoran los elementos XML no válidos.

Atributos de estilo

Para la mayoría de los elementos XML que representan una parte del dibujo, es posible definir atributos de estilo referentes, en particular, al tipo de característica y el relleno de estas partes de dibujo.

La utilización del atributo “style” corresponde a la que se hace en las normas HTML y XHTML : su valor es una consecuencia de pares estilo/valor separados por puntos y comas. Ejemplo:

<circle x="-20" y="-20" diameter="40" antialias="true" style="line-weight:none;filling:white;"/>

Característica de Estilo

La característica de estilo se define con el estilo “line-style”. Los valores posibles son:

  • dashed (rayado): característica punteada
  • normal [por defecto] : característica llena

Característica de Color

La característica de color se define con el estilo “color”. Los valores posibles son:

  • white (blanco) : característica blanca
  • black (negro) [por defecto]: característica negra

Este parámetro es aplicable también al texto

Característica de Grosor

La característica de grosor se define con el estilo “line-weight”. Los valores posibles son:

  • thin (fino): característica fina, siempre indicado con un grosor de 1 pixel
  • normal [por defecto] : característica normal
  • none (ninguno) : característica no visible

Relleno

El relleno se define con el estilo “filling”. Los valores posibles son:

  • white (blanco): relleno en blanco
  • black (negro): relleno en negro
  • none [por defecto] : no hay relleno

El atributo antialiasing

Además del atributo “style”, es posible de utilizar el atributo “antialiasing”; este atributo, acepta los valores “true” o “false” (verdadero o falso). El antialiasing (anti dentado) es desactivado por defecto. Este atributo permite especificar si la vuelta de esta parte del dibujo (y no del elemento entero) se hará de manera anti dentada o no.

Antialiasing

El elemento con y sin antialiasing. A tener en cuenta que el antialiasing no es siempre deseable.

Señal

Los datos se expresan con relación a la señal que tiene por origen el punto de enganche (hotspot) y no la esquina superior izquierda del rectángulo que delimita el elemento. El eje x es horizontal y se dirige hacia la derecha. el eje y es vertical y se dirige hacia abajo. La unidad es el pixel. Se aceptan los valores reales (ejemplo: x=“2.5”).

Vele no salir del rectángulo que delimita el elemento, bajo pena de bugs gráficos.

Línea

El elemento line (linea) acepta los siguientes atributos:

  • x1 : abscisa de la primera extremidad de la línea
  • y1 : ordenada de la primera extremidad de la línea
  • x2 : abscisa de la segunda extremidad de la línea
  • y2 : ordenada de la segunda extremidad de la línea
  • end1 : tipo de salida para la primera extremidad
  • length1 : longitud utilizada para dibujar la salida de la primera extremidad. El valor por defecto es “none”.
  • end2 : tipo de extremidad para la segunda extremidad
  • length2 : longitud utilizada para dibujar la salida de la segunda extremidad. El valor por defecto es “none”.

Los tipos de salidas posibles son:

Embout valor para el atributo
end1 (u end2)
normal “none” ninguno
Flèche simple “simple”
Flèche triangulaire “triangle” triangulo
cercle “circle” circulo
carré “diamond” diamante

Rectángulo

Un rectángulo es definido por los datos de su esquina superior izquierda y por sus dimensiones (anchura y altura). El elemento rectangulo acepta pues los siguientes atributos:

  • x : abscisa de la esquina superior izquierda del rectángulo
  • y : ordenada de la esquina superior izquierda del rectángulo
  • width : anchura del rectángulo
  • height : altura del rectángulo

Ellipse

Une ellipse est définie par le rectangle dans lequel elle s'inscrit. L'élément ellipse accepte donc les attributs suivants :

  • x : abscisse du coin supérieur gauche du rectangle
  • y : ordonnée du coin supérieur gauche du rectangle
  • width : largeur du rectangle
  • height : hauteur du rectangle

Círculo

El elemento circle es definido por los siguientes atributos:

  • x : abscisa de la esquina superior izquierda de la cuadratura del círculo
  • y : ordenada de la esquina superior izquierda de la cuadratura del círculo
  • diameter : diámetro del círculo

Elipse, círculo y arco

Arco

Se define un arco de círculo como una porción de elipse. El elemento arco comparte pues atributos con la elipse:

  • x : abscisa de la esquina superior izquierda del rectángulo
  • y :ordenada de la esquina superior izquierda del rectángulo
  • width : anchura del rectángulo
  • height : altura del rectángulo

A estos atributos se añaden dos otros:

  • start : ángulo inicial : El ángulo “0 grados” es a las tres horas
  • angle : amplitud (en grados) del arco de círculo; un valor positivo va en el sentido contrario de las agujas de un reloj

Polígono

El polígono es definido por una secuencia de puntos. El elemento polígono toma pues una serie de atributos de la siguiente forma: x1, y1, x2, y2, x3, y3, x4, y4, etc… Por defecto el polígono es cerrado. Se puede abrir utilizando el atributo facultativo closed al valor “false”. Ejenplo:

<!-- Dessine un carré -->
<polygon x1="1" y1="1" x2="41" y2="1" x3="41" y3="41" x4="1" y4="41" />
<!-- Dessine 3 côtés du carré -->
<polygon x1="1" y1="1" x2="41" y2="1" x3="41" y3="41" x4="1" y4="41" closed="false" />

Texto

El elemento text acepta los siguientes atributos:

  • x : abscisa del principio del texto
  • y : ordenada del principio del texto
  • text : texto que debe dibujarse
  • size : tamaño que debe utilizarse para el orden del carácter

El orden utilizado es “Sans Serif”

Borne (Terminal )

Los terminales (bornes) son los puntos de conexiones utilizados para conectar elementos el uno con el otro por intermedio de conductores. Se dibuja siempre al último (sobre las otras partes del dibujo), cualquiera que sea su sitio en el fichero XML.

Toman pues tres atributos:

  • x : abscisa del terminal
  • y : ordenada del terminal
  • orientation : orientación del terminal = Norte (n), Sur (s), Este (e) y Oeste (w)

Los campos de texto

Los campos de texto son textos editables por el usuario; las modificaciones introducidas al texto se registran en los esquemas.

Un campo de texto es un elemento XML “input” (entrada). Acepta los mismos atributos que un elemento “text” excepto esto que el atributo “text” representa el valor por defecto del texto.

Por defecto el campo de texto se implica para seguir siendo horizontal (a pesar de las rotaciones sufridas por su elemento padre). Este comportamiento puede cambiarse con el atributo “rotate” y el valor true.

Imprimir/exportar