Skladba formátu XML používaného pro popis výkresů v QElectroTechu 0.3

Příklad elektrotechnického výkresu

Příklad výkresu QET

Výkres je možné získat pomocí následujícího kódu XM: Podívejte se na kód XML tohoto výkresu.

Projekt

Úplně nahoře ve stromu XML se nachází kořenový prvek „project“, jenž představuje projekt QElectroTech (soubory *.qet). Prvek XML „project“ přijímá:

  • vlastnost „version“, která musí obsahovat verzi QElectroTechu mající zaznamenaný soubor. Slouží to usnadnění pozdější zpětné snášenlivosti v případě změny formátu.
  • vlastnost „title“: název projektu

Prvek XML „projet“ obsahuje:

  • 0 až 1 prvek XML „newdiagrams“, shrnující výchozí vlastnosti, které se musí použít při přidání nového výkresu do projektu;
  • 0 až n prvky XML „diagram“, každý představující jeden výkres;
  • 0 až 1 prvek XML „collection“, který představuje naloženou sbírku prvků.

Výchozí vlastnosti nových výkresů

Tento prvek XML je určen pro shrnutí všech vlastností, které se na výkres mohou používat a které se musí použít při přidání nového výkresu do projektu. Toto zahrnuje tři prvky XML:

Výkres

Pod projektem se nachází výkres v podobě prvku XML „diagram“. Tento přijímá různé vlastnosti.

Vlastnosti vztahující se k vložce (kartuši)

Následující vlastnosti slouží naplnění výkresové vložky (kartuše):

  • title: název oznámený ve vložce (kartuši)
  • author: autor oznámený ve vložce (kartuši)
  • date: datum ve formátu RRRRMMDD oznámené ve vložce (kartuši)
  • filename: název souboru oznámený ve vložce (kartuši). Tato hodnota je přísně nezávislá na souboru, jenž obsahuje XML.
  • folio: Volná hodnota oznámená ve vložce (kartuši). Od verze s číslem 0.2 jsou představovány následující hodnoty:
    • %id: Číslo výkresu v projektu
    • %total: Celkový počet výkresů v projektu
Vlastnosti související s rozměry výkresu

Od verze s číslem 0.11, QElectroTech vyjadřuje rozměry svých výkresů v řádcích a ve sloupcích, a už ne ve sloupcích a ve výšce sloupců. Výkres tedy musí vystavovat následující vlastnosti:

  • cols: počet sloupců
  • colsize: šířka sloupců, v pixelech
  • rows: počet řádků
  • rowsize: výška řádků, v pixelech
  • height: vlastnost uchovávaná kvůli zpětné snášenlivosti verzí; je totožná s rows × rowsize
Vlastnosti související se zobrazením výkresu

Od verze 0.11, je možné díky následujícím vlastnostem zobrazit nebo nezobrazit záhlaví řádků a sloupců:

  • displayrows: „true“ pro zobrazení záhlaví řádků, „false“ pro jejich zakrytí
  • displaycols: „true“ pro zobrazení záhlaví sloupců, „false“ pro jejich zakrytí

Povšimněte si, že prostor zaujímaný záhlavím není odstraněn. Jen se nezobrazují.

Prvek XML „diagram“ pak přijímá čtyři další prvky: výchozí vlastnosti vodičů, prvky, vodiče a textová pole.

Výchozí vlastnosti vodičů

Prvek XML „defaultconductor“ umožňuje stanovit výchozí typ vodičů pro daný výkres. Ve skutečnosti se při práci na výkresu používá obecně jen jeden typ vodiče, jehož vlastnosti jsou úplně stanoveny. Je tedy nezáživné znovu stanovovat u každého nového vodiče, že má být takového typu, s takovými vlastnostmi, atd. Všimněte si, že to vůbec neovlivňuje zobrazení výkresu, jedná se pouze o údaj kvůli zacházení s vodiči a ulehčení obsluhy WYSIWYG editoru programu QElectroTech.

Vodiče mohou být tří typů: jednoduché („simple“), jednodrátové („single“) nebo vícedrátové („multi“). Vícedrátový vodič obsahuje textové pole dovolující jej očíslovat. Jednodrátový vodič neobsahuje textové pole, ale vystavuje symboly, které umožňují určit dráty, které představuje. Jednoduchý vodič nemá ani symboly ani textové pole.

Prvek XML „defaultconductor“ přijímá vlastnost „type“ pro stanovení typu vodiče. Pokud platí, že typ je „simple“, ostatní vlastnosti nebudou brány v potaz. Pokud platí, že typ je „multi“, bude textové pole obsahovat hodnotu vlastnosti „num“. Pokud platí, že typ je „single“, vodič bude vystavovat:

  • nulový symbol, pokud platí, že vlastnost „neutral“ je „true“
  • symbol země, pokud platí, že vlastnost „ground“ je „true“
  • 0 až 3 symbol(y) fáze podle hodnoty vlastnosti „phase“: 0, 1, 2 nebo 3

K tomu se přidává:

  • vlastnost „color“, která za hodnotu vezme hexadecimální kód představující jednu z barev červená-zelená-modrá. kterou předchází křížek; příklad: color=„#5fffac“
  • vlastnost „style“ - její používání odpovídá tomu, jak je uvedeno ve standardech HTML a XHTML: její hodnota je řadou dvojic styl/hodnota oddělených středníky. V tomto okamžiku je podporován jen jeden styl: line-style, který může vzít hodnoty normal, pro plnou čáru, nebo dashed, pro tečkovanou čáru.

Prvky

Vlastnost XML „elements“ sdružuje seznam elektrotechnických prvků, které se ve výkresu objevují. Každý prvek XML „element“ (a je to, začne se plést) přijímá následující vlastnosti:

  • x: úsečka (abscissa) polohy prvku
  • y: pořadnice (ordináta) polohy prvku
  • type: jedná se o myšlenou (virtuální) adresu vymezení prvku, který se umísťuje na výkres
  • orientation: 0 (sever), 1 (východ), 2 (jih), 3 (západ)

Co se týče umístění prvku, jedná se o polohu bodu uchopení „hotspot“ prvku, a ne o jeho horní levý roh nebo o jeho těžiště. Tato poloha je dána v ortonormálním označení, přičemž počátek je umístěn nahoru vpravo okna úprav (pro informaci, horní levý roh výkresu je umístěn v 5px,5px), přičemž vektor x směřuje doprava a vektor y směřuje dolů.

Virtuální adresy začínají:

  • common:// pro označení prvku ze společné sbírky
  • custom:// pro označení prvku z uživatelovy sbírky
  • embed:// pro označení prvku naloženého do projektu. Tato funkce je podporována od verze 0.2

V nitru každého prvku XML „element“ lze nalézt:

  • svorky (prvky XML „terminal“) shrnuté do prvku XML „terminals“
  • textová pole (prvky XML „input“) shrnuté do prvku XML „inputs“
Svorky

Tak jako ve vymezení prvku je svorka vymezena vlastností XML „terminal“ a vyžaduje vlastnosti „x“, „y“ a „orientation“ v souřadnicích prvku. Tyto vlastnosti jsou používány pro označení svorky odpovídající prvku. Vlastnost id umožňuje tuto svorku rozpoznat mezi všemi těmi svorkami, které se na výkresu objevují. Jedná se o spolehlivý celek. Je nemožné spojit vodič se svorkou bez id. Stejně je nemožné připojit svorku k prvku bez toho, že by se tento prvek upravoval.

Textová pole

Tak jako svorky vyžadují textová pole (prvky XML „input“) vlastnosti „x“ a „y“ v souřadnicích prvku kvůli označení textového pole odpovídajícího prvku. Už není možné připojit textové pole, které není plánováno ve vymezení prvku. Textové pole takto označené se uvidí přidělené hodnotě vlastnosti „text“. Od verze 0.3, il je možné stanovit směrování textových polí prvků. Jako výchozí sep oužívá ve vymezení prvku stanovené natočení. Lze je nicméně přepsat vlastností „userrotation“ (zvláštní pro každé textové pole). Její hodnotou je desetinné číslo, které musí být vpočtu mezi -360.0° a 360.0°. 0° odpovídá poloze malé ručičky hodin, když jsou tři hodiny. Záporná hodnota představuje úhel ve smyslu proti směru hodinových ručiček, kdežto kladná hodnota představuje úhel ve smyslu po směru hodinových ručiček. Umístění a otáčení se uskutečňuje naproti středu levé strany textového pole.

Vodiče

Shrnuty v prvku XML „conductors“ jsou vodiče představovány prvky XML „conductor“ (ano!). Pro vymezení svého typu a svých voleb přijímají stejné vlastnosti jako prvek XML „default conductor“. K tomu se přidávají vlastnosti „terminal1“ a „terminal2“, které za hodnotu musí mít id svorek, které vodič spojuje.

Vodič je volitelně složen z částí (= prvky XML „segment“, tak, tak!), jež popisují jeho dráhu. Pokud není přítomna žádná část nebo když je popisovaná dráha nesouvislá, přechází program pro to, aby spojil dvě svorky, na výchozí cestu.

Část má vlastnost „orientation“, která může mít vlastnosti „horizontal“ nebo „vertical“ kvůli vymezení smyslu části. Stejně tak má vlastnost length, která vymezuje její délku. Části jsou čteny popořadě a představují dráhu od svorky 1 ke svorce 2.

Od verze 0.3 je možné stanovit natočení textových polí vodičů pomocí vlastnosti „rotation“. Par défaut, le champ de texte est horizontal. La valeur de l'attribut „rotation“ est un nombre décimal qui doit être compris entre -360.0° et 360.0°. 0° odpovídá postavení malé hodinové ručičky ve tři hodiny. Záporná hodnota představuje úhel ve smyslu proti směru hodinových ručiček, kdežto kladná hodnota představuje úhel ve smyslu po směru hodinových ručiček. Umístění a otáčení se uskutečňuje naproti středu levé strany textového pole. Umístění a otáčení se uskutečňují naproti levému hornímu rohu textového pole.

Textová pole nezávisející na výkresu

Shrnuty v prvku XML „inputs“ umístěny pod prvkem XML „diagram“ jsou textová pole představována prvky XML (nejistota…) „input“ (báli jste se, což?). Opačně k „inputs“ prvků nebo k „num“ vícedrátových vodičů, nejsou spojeny s vodičem nebo prvkem a mohou být na výkresu rozmístěny volně.

Prvek XML „input“ přijímá následující vlastnosti:

  • x: úsečka (abscissa) levého horního rohu textového pole
  • y: pořadnice (ordináta) levého horního rohu textového pole
  • text: obsah textového pole - použijte 
 pro vstoupení na řádek.
  • rotation: od verze 0.3 je možné stanovit natočení textového pole. Text je ve výchozím nastavení vodorovný. Hodnotou této vlastnosti je desetinné číslo, které musí být vpočtu mezi -360.0° a 360.0°. 0° odpovídá postavení malé hodinové ručičky ve tři hodiny. Záporná hodnota představuje úhel ve smyslu proti směru hodinových ručiček, kdežto kladná hodnota představuje úhel ve smyslu po směru hodinových ručiček.

Umístění a otáčení se uskutečňuje naproti středu levé strany textového pole. Umístění a otáčeníse uskutečňují naproti levému hornímu rohu textového pole.

Naložená sbírka

Prvek XML „collection“ dovoluje naložit prvky a skupiny, jako by se jednalo o jednu sbírku s prvky na pevném disku. Nepřijímá zvláštní vlastnost. Může obsahovat prvky XML „category“ a „element“.

Prvek XML „category“ přijímá vlastnost name, která se používá pro označení názvu této skupiny v cestě; tak, embed://test označuje skupinu „test“ naloženou do obvyklého projektu. Skupina musí obsahovat seznam lidských názvů, představovaný prvkem XML „names“, který obsahuje 1 až n názvů, které jsou představovány prvky XML „name“. Tento přijímá vlastnost lang mající za hodnotu dvě písmena, která představují lidský jazyk (příklad: en pro english, fr pro français, es pro espagnol, cs pro čeština atd.). Tento prvek XML musí obsahovat název elektrotechnického prvku v jazyce, jenž odpovídá vlastnosti lang.

Skupina může také obsahovat:

  • 0 až n prvků XML „category“
  • 0 až n prvků XML „element“

Prvek XML „element“ se řídí pravidly popsanými v Skladba formátu XML používaného pro popis prvků v QElectroTechu 0.3. K těmto pravidlům se přidává přítomnost vlastnosti name, která se používá pro označení názvu tohoto elektrotechnického prvku v cestě; tak, embed://test/nouvel_element.elmt označuje prvek „nouvel_element.elmt“, umístěný ve skupině „test“ sbírky naložené do projektu.

Příklad naložené sbírky:

    <collection>
        <category name="test" >
            <names>
                <name lang="en" >English test</name>
                <name lang="f" ></name>
            </names>
            <element name="nouvel_element.elmt" >
                <definition width="30" version="0.2" hotspot_x="15" hotspot_y="35" height="70" type="element" orientation="dyyy" >
                    <names>
                        <name lang="en" >Quadrilateral</name>
                        <name lang="fr" >Quadrilatère</name>
                    </names>
                    <description>
                        <polygon antialias="true" style="line-style:normal;line-weight:normal;filling:none;color:black" x1="-7.25" y1="-1.5" x2="1.25" y2="-20.25" x3="10.5" y3="-0.5" x4="-1.5" y4="22" />
                    </description>
                </definition>
            </element>
        </category>
    </collection>
Tisk/export