Základy kreslenia#

Princíp vytvárania zapojení v CircuitMacros spočíva v zapise príkazov do štandardného textového súboru, ktorý po kompilácii vytvára prvky zapojenia na virtuálnej ploche. Súbor s príkazmi začína .PS a končí .PE, príkazy a texty mimo tohoto označenia sú ignorované.

.PS               - zaciatok postupnosti prikazov
scale=2.54        - nastavenie parametru velkosti obrazku
cct_init          - inicializacia kniznice s analogovými prvkami (rezistor, ...)

resistor;         - príkaz pre vykreslenie rezistoru

.PE               - koniec postupnosti prikazov

Najjednoduchším spôsobom kreslenia zapojení je použitie jednoduchého programu pycirkuit, ktorý obsahuje editor diagramov, prehliadač generovaných obrázkov a umožnuje ich export do rôznych formátov. V ďaľších príkladoch budeme uvádzať len príkazy na kreslenie zapojenia bez spoločných príkazov pre formátovanie a nastavenie generovania obrázkov (.PS, .PE …)

_images/pck_01.png

Obr. 5 Editácia a preklad zapojenia v programe pycirkuit#

Príkaz na riadku je ukončený bodkočiarkou ; alebo ukončenim riadku (neviditeľný znak \n). Bodkočiarku využijeme aj vtedy, ak budeme do jedného riadku zadávať niekoľko príkazov.

Ukladanie prvkov #

Každý prvok diagramu alebo schémy je vykreslený na v diagrame na 2D pozícii, ktorá je uchovávaná v virtuálnom kurzore označenom ako Here. Prvky v zapojení (resistor, capacitor) ukladáme za sebou v zadaných smeroch príkazmi up_, down_, right_ a left_ . Pri zmene smeru sa automaticku mení aj orientácia prvku. Pre zobrazenie bodu spojenia niekoľkých prvkov použijeme makro dot

right_;
resistor;
resistor;
dot;
down_;
capacitor;
right_;
diode;
_images/beg_010.png

Obr. 6 Ukladanie prvkov zapojenia#

Po vykreslení nejakého prvku zapojenie sa hodnota Here posúva tak, aby prvky zapojenie na seba nadväzovali. Polohu kurzoru môžeme presunúť na pozíciu (x,y) pomocou príkazu

move to (x,y);

alebo vykreslením prepojovacieho vodiča alebo čiary príkazom line, Here sa po vykreslení presunie na koniec čiary

line to (x,y);                 - vykrelenie čiary z Here do (x,y) 
line right_ d;                 - čiara z Here zadaným smerom a dĺžkou
line from (x1,y1) to (x2,y2);  - čiara medzi dvoma bodmi

Referencie a atribúty #

Každý prvok v zapojení môžeme označiť pomocou textovej referencie ukončenej znakom :, táto musí byť zapísaná veľkými písmenani a nesmie začínať číslicou. Po vytvorení je referencia globálna, je ju možno použiť v ktorejkolvek časti zapojenia.

R1: resistor;       - referencia R1
r1: resistor;       - chyba
1R: resistor;       - chyba

K prvkom zapojenia a polohe ich častí pristupovať pomocou referencie a pomenovaných atribútov oddelených od seba bodkou . Skupiny prvkov, napríklad dvojpóly (resistor …), majú spoločné atribúty a každý typ prvku môže mať naviac aj vlastné, špecifické atribúty. Napríklad, spoločné atribúty pre dvojpóly sú:

.start    .s          - bod v ktorom bol začiatok kreslenia prvku
.end      .e          - bod v ktorom skončilo kreslenie prvku
.center   .c          - geometrický stred prvku

Atribút má hodnotu súradnice označenej časti prvku. Na nasledujúcom príklade je ukázané použitie referencií a atribútov v zapojení. Pomocná mriežka je vykreslená pre zobrazenie skutočných pozícií prvkov zapojenia.

move to (1,1);
R1: resistor;                 # referncia, R1.start = (1,1)
move to (1,2)
C1: capacitor;                # referencia C1.start = (1,2)
line from R1.start to C1.end; # vykreslenie ciary medzi bodmi
                              # zadanými atribútmi prvkov
_images/beg_011.png

Obr. 7 Použitie referencií v prvkoch zapojenia.#

Vlastnosti prvkov #

Makrá pre zobrazenie prvkov majú zvyčajne niekoľko parametrov, pomocou ktorých môžeme meniť a upravovať zobrazenie prvku v zapojení. Napríklad pre zobrazenie rezistoru má makro zo štandardnej knižnice CircuitMacros nasledujúci formát:

resistor(linespec, n, chars, cycle wid)

linespec    - dĺžka rezistoru, môže byť aj so zadaním smeru
n           - počet cyklov v USA norme rezistoru
chars       - typ zobrazenia rezistoru (napr. E - europske zobrazenie)
cycle wid   - velkosť cyklov v USA norme

Súčasťou zapojenia elektronickéjho obvodu je textový popis prvkov, ktorý zvyčajne pozostáva z označenie prvku, napríklad $R_1$ a jeho hodnoty, napríklad $100 \Omega$. Ukladanie popisov prvkov v komplikovanejších obvodoch pomocou jednoduchých textov by bolo značne náročné, naviac s rizikom nesprávneho označenia alebo pomiešania označenia napríklad pri zmene alebo úprave polohy prvkov. Pre zjednodušenie popisu (označenie, hodnota) posledného zobrazovaného prvku typu dvojpól môžeme preto použiť makrá, ktoré zväzujú texty s označením a s príslušným prvkom.

llabel( slabel, xlabel, elabel )  - označenie po lavej strane v smere ukladania
rlabel( slabel, xlabel, elabel )  - označenie po pravej strane v smere ukladanie 

parametre:

    slabel       - označenie v bode začiatku prvku
    xlabel       - označenie v strede prvku
    elabel       - označenie v bode konca prvku

Použitie makier na označovanie prvkov garantuje presné a definované umiestnenie popisu voči prvku a rovnaké umiestnenie popisov pre všetky prvky v zapojení. Relatívna poloha popisu prvku sa nemení ani pri presunutí prvku do iného bodu zapojenia. Tieto vlastnosti značne uľahčujú kreslenie zapojení, pretože v zapojeniach elektronických obvodov je zvyčajne veľké množstvo textu a popisov prvkov. Nasledujúci príklad ukazuje zapojenie s označením prvkov a využitie referencie pre zadanie počiatočného bodu kreslenia prvku (R2). V označení prvkov zapojenia môžeme použiť syntax pre zápis matematických výrazov v LaTeX-e, napríklad R_1 = $R_1$ (vyžaduje inštaláciu LaTeX-u).

move to (1,2);
R1: resistor(2,,E); llabel(a,R_1,b); rlabel(,10k,);
D1: dot;
C1: capacitor(down_ 2,); rlabel(,C_1,); llabel(,10 \mu F,);
R2: resistor(from D1 right_ 2,,E); llabel(,R_2,); rlabel(,33k,);
_images/beg_012.png

Obr. 8 Označenie prvkov zapojenia.#

Kreslenie diagramov #

V CircuitMacros môžeme využívať príkazy jazyka dpic pre kreslenie diagramov pomocou 2D objektov ako je box, circle, ellippse, arc, ako aj lineárnych objektov line, arrow, spline a príkaz pre presun kurzora move. Pre kreslenie komplikovanejších diagramov (signálové grafy, vývojové diagramy) sú v CircuitMacros dostupné knižnice špecializovaných makier pre zvolený typ diagramu.

box wid 2 ht 1 "Box";
line -> right_ 1;
circle rad 0.5 "r=0.5";
line -> right_ 1;
ellipse wid 2 ht 1 "Ellipse";
_images/beg_013.png

Obr. 9 Jednoduchý diagram vykreslený pomocou príkazov dpic#