dia-installer.de / Dokumentatsioon / Manuaal
Kohandatud kujundite moodul võimaldab uusi kujundeid luua C keeles programmeerimist oskamata. Piisab lihtsast XML failist, mis kireldab kujundit. See võimaldab etteantud mustrite baasil ka programmeerimisoskuseta kasutajatel uusi kujundeid luua.
Kujund kirjeldatakse kasutades SVG spetsifikatsiooni alamosa. Toetatud on joon, kompleksjoon, hulknurk, ristkülik, ring, ellips, trajektoor ja g kujund. Trajektoori element toetab ainult M,m,L,l,H,h,V,v,C,c,S,s,A,a,Z,z käske. Transformatsioonid ja CSS ühikud pole toetatud, CSS atribuutidest on samuti ainult piiratud hulk kasutuses.
Kujundiga saab vastavusse panna mitu ühenduspunkti, mille asukohad kirjeldatakse sama koordinaatsüsteemi abil nagu kujundite endi kirjeldused.
Kujundiga saab seostada ka tekstikasti. Ka selle puhul kasutatakse kujundiga sama koordinaatsüsteemi.
Tekstikasti suuruse ja asukoha valimiseks võid ette kujutada kahte ristkülikut - üks sisaldab tekstikasti ja teine kõiki SVG elemente (nimetagem seda pildi ristkülikuks). Kui asetad kujundi lõuendil ja kirjutad sellele teksti, siis peab kogu tekst tekstikasti ära mahtuma. Kui vaja, siis tekstikasti mõõdud kasvavad ja nendega samas proportsioonis kasvab ka pildi ristkülik).
Kõige ülejäänu eest on juba sinu eest hoolitsetud (suuruse muutmine, liigutamine, joontega ühendamine, laadimine, salvestamine, unustamine jne).
Tüüpiline kujundifail näeb välja umbes selline:
<?xml version="1.0"?>
<shape xmlns="http://www.daa.com.au/~james/dia-shape-ns"
xmlns:svg="http://www.w3.org/2000/svg">
<name>Circuit with identifiers - NPN Transistor</name>
<icon>npn.xpm</icon>
<connections>
<point x="0" y="0"/>
<point x="6" y="-4"/>
<point x="6" y="4"/>
</connections>
<aspectratio type="fixed"/>
<textbox x1="4" y1="-3" x2="12" y2="3" />
<svg:svg>
<svg:line x1="0" y1="0" x2="3" y2="0" />
<svg:line x1="3" y1="-3" x2="3" y2="3" />
<svg:line x1="3" y1="-2" x2="6" y2="-4" />
<svg:line x1="3" y1="2" x2="6" y2="4" />
<svg:polyline points="5,4 6,4 5.6154,3.0769" />
</svg:svg>
</shape>
Kujundifailis on kohustuslikud ainult name ja
svg elemendid. Kõik muud pole kohustuslikud.
Element name annab objektile nime. Seda kasutatakse
antud kujundi salvestamisel ja laadimisel unikaalse identifikaatorina.
Nagu näites toodud saad kasutada mitmeosalist nime. Enamikul kujunditest märgib esimene nimeosa lehte, millel kujund asub, kuid ka see pole kohustuslik.
icon element määrab
xpm või png faili, mida kasutatakse Dia tööriistakastis ikoonina.
Failinimi võib olla relatiivne kujundifaili suhtes. Kui seda pole määratud
kasutatakse vaikimisi ikooni.
connections osa kirjeldab kujundi ühenduspunkte.
Nende asukohta kirjeldav koordinaatide süsteem on sama nagu kujundi kirjeldamisel kasutatakse.
aspectratio element kirjeldab kuidas kujundit venitada saab.
Selleks on kolm võimalust:
<aspectratio
type="free"/> - Kõik proportsioonid on lubatud (vaikimisi).
<aspectratio
type="fixed"/> - Fikseeritud proportsioonid.
<aspectratio type="range"
min="n" max="m"/> - Etteantud valik proportsioonidest.
Viimane valik võimaldab määrata lubatud muutmise piire.
The textbox element lubab kujundiga tksti siduda. Süntaks:
<textbox x1="left" y1="top" x2="right" y2="bottom"/>
Ühe kujundi kohta on lubatud vaid üks tekstikast! Atribuudid annavad tekstikastile piirded samas koordinaatsüsteemis nagu kujundi kirjeldus.
<textbox/> elemendil on ka mittekohustuslikke atribuute:
Kujunditele antakse loomisel vaikimisi suurus. Kui see ei sobi, siis
saad selle uuesti defineerida (ainult ühe või mõlemad:
<default-width>1cm</default-width>
<default-height>3cm</default-height>
Vaikimisi ühiku "cm" võib ära jätta.
svg element kirjeldab kujundit.
Kõrgust ja laiust ignoreeritakse ning on kirjas vaid SVG
spetsifikatsioonile vastamiseks. SVG kohta loe lähemalt: http://www.w3.org/Graphics/SVG
Järgmine osa kirjeldab lubatud SVG alamhulka kujundifailides.
SVG ehk skaleeruva vektorgraafika formaati kasutatakse kujundi defineerimisel. Seetõttu kasutatakse selle faili osa jaoks eraldi nimeruumi.
Iga SVG joonistuselement saab aru stiili atribuudist. Atribuut peaks olema järgmisel kujul:
<svg:whatever style="name1: value1; name2: value2; ... name42: value42"/>
Hetkel saab kasutada ainult järgmisi stiili atribuute:
stroke-width - Joone laius kasutaja defineeritud laiuse suhtes.
stroke-linecap - Joone otsa stiil, üks järgnevast nimekirjast:
butt, round, square, projecting (sünonüü
square jaoks) või
default.
stroke-linejoin -
Joone ühenduse stiil, üks järgnevast nimekirjast: miter, round, bevel või default.
stroke-pattern - Kriipsu muster, üks järgnevast nimekirjast: none, dashed, dash-dot, dash-dot-dot, dotted või default.
stroke-dashlength -
Katkendjoone mustris joone pikkus kasutaja defineeritud väärtuse suhtes (default on 1.0 sünonüüm).
stroke - Joone värv. Saad kasutada ühte neist sümboolsetest
nimedest:
foreground,
fg, default, background, bg inverse, text või none või kasuta kuueteistkümnendsüsteemis (0-9,A-F)
värvi väärtust kujul #rrggbb.
fill - Täitevärv.
Kasutab samu väärtusi nagu joon (stroke), ainult default ja inverse tähendused on vahetuses. Vaikimisi pole elemendid täidetud,
seega vaikimisi täitmise saamiseks kasuta "fill:
default"
|
Nõuanne |
|---|---|
|
Kõige peenema joonega ristküliku joonistamiseks kasuta järgmist trikki:
|
Ordinaadid x ja y kasvavad sama moodi nagu Dias.
Tuvastatavad joonistuselemendid on:
<svg:g>
See on grupi element. Siia sisse saab paigutada teisi elemente. Grupi stiili atribuuti rakendatakse ka grupi sisse pandud elementidele kui nood seda ise üle ei defineeri.
<svg:line x1="..." y1="..." x2="..." y2="..."/>
See element on joon.
<svg:polyline points="...."/>
See element on kompleksjoon ehk mitu ühendatud joone segmenti. Punktide atribuut sisaldab joone segmentide lõpp-punktide koordinaate, mis eraldatakse üksteisest tühikute või komadega. Soovituslik formaat on "x1,y1 x2,y2 x3,y3 ...".
<svg:polygon points="...."/>
See on hulknurk. Punkti argumendid on samas formaadis nagu kompleksjoonel.
<svg:rect x1="..." y1="..." width="..." height="..."/>
See on ristkülik. Ülemine vasak nurk on (x1,y1) ja alumine parem nurk on (x1+width,y1+height).
<svg:image x1="..." y1="..." width="..." height="..." xlink:href="..." />
See on väline pilt. Ülemine vasak nurk on
(x1,y1) ja alumine parem nurk on (x1+width,y1+height).
Toetatakse kaht lingitüüpi - absoluutne failinimi kujul "file:///home/user/image.png"
ja relatiivne ilma eesliiteta "file://" näiteks
"image.png". Viimane on eelistatud, sest
see ei sõltu paigalduse asukohast. Failinimi on relatiivne kujundifaili asukoha suhtes.
Näites toodud PNG fail ja kujund peavad asuma samas kaustas.
<svg:circle cx="..." cy="..." r="..."/>
See on ring keskpunktiga (cx,cy) ja raadiusega r.
<svg:ellipse cx="..." cy="..." rx="..." ry="..."/>
See on ellips keskpunktiga (cx, cy) ja x-suunalise raadiusega rx ning y-suunalise raadiusega ry.
<svg:path d="...."/>
See on kõige keerukam joonistuselement.
See kirjeldab trajektoori, mis koosneb joone segmentidest ja Bezier kõveratest.
Hetkel ei toeta elliptilist kaart ja nelinurkseid Bezier kõveraid.
Sõne d koosneb käskudest kujul "x
arg1 arg2 ..." kus x on sümbolkood, mis identifitseerib käsu
ja argumentideks on tühikute või komadega eraldatud numbrid.
Igal käsul on absoluutne ja relatiivne variant. Absoluutsed käsud kirjutatakse
suure tähega. Relatiivsed väikese tähega ning kasutavad eelmise käsu
lõppu uue alguspunktina.
Toetatud käsud on:
M x,y - Kursori liigutamine
L x,y - x ja y vahele joone joonistamine
H x - Horisontaalse joone joonistamine x-ni
V y - Vertikaalse joone joonistamine y-ni
C x1,y1 x2,y2,
x3,y3 - Bezier kõvera joonistamine
(x3,y3)-ni kus (x1,y1) ja (x2,y2) on juhtpunktid.
C (suur täht) märgib absoluutseid ja c
(väike täht) märgib relatiivseid
koordinaate tähe järel.
S x1,y1 x2,y2
- Sama nagu eelmine, aga joonistatakse sujuv Bezier kõver.
See tähendab, et esimene kontrollpunkt järeldatakse
eelmise kõvera andmetest. S (suur täht) märgib absoluutseid ja s
(väike täht) märgib relatiivseid
koordinaate tähe järel.
A (rx ry
x-axis-rotation large-arc-flag sweep-flag x
y)+ - Joonistab elliptilise kaare praegusest punktist punkti (x, y).
Suuruse ja orientatsiooni määravad kaks raadiust (rx, ry)
ja x-telje pööre (x-axis-rotation).
Kese arvutatakse automaatselt.
large-arc-flag ja sweep-flag võtmed abistavad automaatsete
arvutuste juures ja aitavad määrata, kuidas kaar joonistada tuleb.
A (suur täht) märgib absoluutseid ja a
(väike täht) märgib relatiivseid
koordinaate tähe järel.
Z - Sulge trajektoor.
Kui trajektoori sulgemiseks kasutatakse z või Z, siis saab seda täita. Vastasel juhul ainult joonistatakse.
<svg:text x="..." y="..." style="...">
...
</svg:text>
Tekst kujundi sees. Tekst peab olema märgiste vahel.
Parameetrid on:
x,y - Teksti asukoht
style - Teksti vormistuse seaded
Toetatakse järgmisi vormistuse seadeid:
font-size - teksti suurus pt
Kohandatud kujundi sisse iseseisvalt skaleeritavate kujundite lisamine võimaldab alamkujundite tekitamist. See saavutatakse grupi elemendi lisaparameetrite abil.
<svg:g subshape="true" v_anchor="fixed.bottom" h_anchor="fixed.left" default_scale="1.0">
"fixed.top"
"fixed.bottom"
"proportional"
]
"fixed.left"
"fixed.right"
"proportional"
]
Kohandatud kujundile uute atribuutide lisamise saad kirja panna nii:
<ext_attributes>
<ext_attribute name="Integer" type="int" />
<ext_attribute name="String" type="string" />
<ext_attribute name="Float" type="real" />
</ext_attributes>
siltide <shape></shape> vahel.
Tulemuseks on kohandatud objektile uute atribuutide lisamine.
Need on redigeeritavad omaduste dialoogi abil ning neid laetakse
ja salvestatakse koos skeemiga. Programmselt saad nende
atribuutide poole pöörduda kui kasutad "custom:<name>"
Ühele lehele saab panna mitu objekti - nii omaloodud objekte kui ka juba mujal lehtedel leiduvaid.
Lihtne lehte defineeriv fail näeb välja selline:
<?xml version="1.0" encoding="utf-8"?>
<sheet xmlns="http://www.lysator.liu.se/~alla/dia/dia-sheet-ns">
<name>Circuit with identifiers</name>
<name xml:lang="es">Circuito con identificadores</name>
<description>Components for circuit diagrams</description>
<description xml:lang="es">Componentes para diagramas de circuitos
</description>
<contents>
<object name="Circuit with identifiers - NPN Transistor">
<description>A bipolar npn transistor</description>
<description xml:lang="es">Un transistor bipolar npn identificable
</description>
</object>
<object name="UML - Objet">
<description>An UML object</description>
<description xml:lang="es">Un objeto UML</description>
</object>
</contents>
</sheet>
Võid juba Dias olemasolevate elementide abil joonistada kujundi ja eksportida selle kujundifailiks kui valid menüüst ->->->.
Seni pole sellised kujundifailid sisaldanud tekstikaste. Need eeldatavasti peavad hakkama saama küll osade svg:text elementidega, aga Dia tekstikast pole toetatud. Kui vajad tekstikasti, siis pead eksporditud faili käsitsi muutma.
Koos kujundifailiga genereeritakse ka PNG fail, mida saad kasutada ikoonina.
Kasutades menüüd -> saad luua uusi lehti ning lisada, kustutada ja osaliselt redigeerida kujundeid või kujundeid erinevate lehtede vahel liigutada.
Kohandatud kujundi kood on disainitud nii, et üks lehekülg objektidega oleks omaette kaustas. Uusi objekte saab lisada pakkides .tar.gz faili lahti ~/.dia/shapes või $(prefix)/share/dia/shapes kausta ning lehe kirjelduse kausta ~/.dia/sheets liigutades.
Kui sul on selle koodi kohta soovitusi, siis anna mulle teada.
James Henstridge <james@daa.com.au>
koos mõnede muudatustega, mille kirjutas Dolores Alia de
Saravia <loli@unsa.edu.ar>
dia-installer.de / Dokumentatsioon / Manuaal