×

Hlášení

Smernice EÚ o e-Soukromí

Tato webová stránka používá vlastní cookies pro správu ověřování, navigaci a další funkce jako i cookies třetích stran (Google Analytics, Google AdSense). Užíváním našich webových stránek, souhlasíte s tím, že můžeme umístit tyto typy cookies na vašem zařízení.

Zobrazit zásady ochrany osobních údajů

Zakázali jste cookies. Stránka nemusí fungovat správně. Toto rozhodnutí lze změnit.

TECHSOFT s.r.o. TECHSOFT s.r.o., Podtatranská 4931/23, 05801 Poprad, Slovak Republic, http://www.techsoft.sk
CAD HELP


Tvary a fonty (užívateľom definované) - len "veľký" AutoCAD

Súbory tvarov a fontov (SHX) pre AutoCAD sú generované kompilovaním definící tvarov (SHP). Tieto definície (SHP) možno vytvárať, resp. modifikovať ľubovoľným textovým editorom umožňujúcom volne pracovat s ASCII súbormi.

Syntax popisu symbolu, alebo znaku je vždy zhodná bez ohľadu na cielové použitie (tvar vs. písmo) tejto definície. Ak takáto definícia má byť používaná ako písmo AutoCADu, tak prvá položka v súbore nepopisuje žiadny znak, ale nesie informáciu o vlastnom fonte. Ak táto úvodná položka je popisom tvaru, bude vygenerovaný súbor tvarov.

Byť schopný vytvoriť svoje vlastné definície tvarov je veľmi užitočná znalosť. Musíte však vziať na vedomie, že tento problém je vľmi zložitý a jeho pochopenie vyžaduje veľkú trpezlivosť.

Popis tvarů ve speciálním formátu (viz. dále) uložíte do textového souboru s koncovkou . shp. Takový soubor vytvoříte v obyčejném textovém editoru, nebo v textovém procesoru umožňujícím ukládat textové soubory v ASCII formátu. Zkompilováním takového souboru získáte soubor s příponou . shx.

Kompilovanie súboru tvaru, alebo fontu

Na príkazový riadok napíšte KOMPILUJ.

AutoCAD zobrazí dialogový box pre výber požadovaného súboru definícií tvarov (SHP). Po volbe súboru začína kompilácia. Ak AutoCAD narazí na chybu, hláškou vám oznámi typ chyby a číslo riadku, ktorý ju obsahuje. Po úspešnej kompilácii sa zobrazí následujúcí hláška:

Kompilácia prebehla úspešne.

Výstupný súbor názov.shx obsahuje nnn bytov.

Názov zkompilovaného súboru je rovnaký ako názov zdrojového súboru, len prípona je zmenená na SHX. Ak je súbor SHX definícií fontu, potom príkazom PÍSMO môžete vytvoriť novú definíciu písma vo výkrese. Potom môžete použiť pre umiestenie textu vo výkrese jeden z príkazov TEXT, DTEXT nebo MTEXT. Ak definícia obsahuje tvary, načítajte ich do pamäti príkazom ČTI a podľa potreby vkladajte príkazom TVAR (má podobnú filozófiu ako príkaz VLOŽ ).

Definícia tvarov

Tvary sú objekty používané podobným zpôsobom ako bloky. Skôr ako môžete tvary používať, musíte načítať příslušný skompilovaný súbor definícií tvarov príkazom ČTI. Príkazom TVAR (_SHAPE) neskôr vkladáte tvary definované týmto súborom do vášho výkresu. Behom procesu vkladania môžete špecifikovať merítko a rotáciu pre každý individuálny objekt tvar. AutoCADové SHP fonty sú zvláštnym typom tvaru a definujú sa rovnakým spôsobom ako tvary.

Bloky sú oveľa univerzálnejšie a jednoduhšie použitelné v porovnaní s tvarmi. Tvary sú na druhej strane velmi efektívne z hľadiska spotreby pamäti a náročnosti na vykreslovanie. Užívateľom definované tvary sú užitočným nástrojom v prípadoch, kedy je potrebné vkladať mnoho instancií určitého objektu a kedy rýchlosť je kritická.

Jednotlivé riadky v definícii tvarov môžu dosahovať dĺžky maximálne 128 znakov. Dlhšie riadky nieje možné spracovať. AutoCAD ignoruje prázdne riadky a text napravo od stredníku. Stredník je tým pádom prostriedkom pre vkladanie komentárov do týchto súborov.

Popis každého tvaru štartuje záhlavím a nasleduje jeden alebo viac riadkov nesúcích slabiky vlastnej definície. Tie sú oddelené čiarkami a ukončené hodnotou 0.

*číslo_tvaru,def_slabík,meno_tvaru

slabika1,slabika2,slabika3,...,0

Jednotlivé polia definícií majú nasledujúci význam:

číslo_tvaru

Číslo medzi 1 a 258 (pre Unicode písma až 65535), jednoznačné v rámci súboru začaté hviezdičkou (*).Každý tvar v definícii musí mať svoje číslo. Čísla 256, 257 a 258 sú, okrem Unicode písmen, vyhradené pre symboly stupeň, +/- a priemer. Tieto symboly sa v Unicode písmach objavujú v číslach tvarov U+00B0, U+00B1 a U+2205 a sú časťou rozšírenej znakovej sady Latin A".

V súboroch fontov (súbory definujúce pre každý znak odpovedajúci tvar) potom toto číslo musí odpovedať ASCII kódu daného znaku. Pre definíciu tvarov na konkrétnych číslach nezáleží.

def_slabík

Počet slabík (slabika1,slabika2,slabika3) vrátane ukončovacej hodnoty 0 použitých pre definíciu príslušného tvaru. Medzná hodnota je 2000 slabík.

meno_tvaru

Názov tvaru. Názvy TVARov musia byť písané veľkými písmenami; názvy obsahujúce malé písmená sa ignorujú a slúžia ako orientačné značky pri popisu písem.

slabika

Slabika špecifikácie tvaru. Každá slabika je buď informáciou o smere a dĺžke vektoru, alebo jedným zo špeciálnych kódov. Slabika môže byť zapísaná v desiatkovej, alebo šestnástkovej sústave. V tejto časti budeme v príkladoch používať obidva spôsoby (ako je to aj zvykom v množstve skutočných súboroch definícií). Ak je prvým znakom slabiky 0, potom je slabika interpretovaná v šestnástkovej sústave.

Najjednoduhšia slabika definície tvaru nesie informáciu o dĺžke a smere vektoru zakódovanú do jedného čísla. Kódy dĺžky a smeru vektoru sa najlepšie zapisujú v hexadecimálnom tvare - prvý znak je 0 (hovorí, že sa jedná o hex. číslo), druhý znak určuje dĺžku. Platné hodnoty sú 1 (vektor dlhý jednu jednotku) až F (15 jednotiek). Tretí znak znamená smer vektoru. Následujúcí obrázok ukazuje kódy smerov:

shp01

Kódy smeru vektoru

Údaj o dĺžke všetkých vektorov v predcháduajúcej ilustrácii je zhodný. Diagonálne vektory sú “pretiahnuté" aby sa zhodovali s X a Y súradnicami najbližších kolmých vektorov. Je to analógia funkcie rastru v AutoCADe.

Príklad:

Nasledujúci príklad definuje tvar nazvaný DBOX (bolo mu pridelené číslo 230):

*230,6,DBOX

014,010,01C,018,012,0

Takáto sekvencia definičných slabík vytvorila štvorec vysoký a široký práve jednu jednotku s diagonálou bežiacou z ľavého dolného do pravého horného rohu. Uložte túto definíciu do súboru dbox.shp a pomocou príkazu KOMPILUJ vygenerujte súbor dbox.shx. Príkazem ČTI natiahnite túto definíciu tvaru a vyvolajte príkaz TVAR (_SHAPE):

Príkaz: tvar

Meno (nebo ?): dbox

Počiatočný bod: 1,1

Výška <aktuálna>: 2

Úhol otočenia <aktuálny>: 0

Ďalšia ilustrácia ukazuje výsledný tvar:

shp02

Špeciálne kódy definície tvarov

Vedľa prostého kreslenia vektorov môže definičná slabika obsahovať nasledujúce špeciálne kódy znamenajúce ďalšie akcie a doplňujúce informácie. Špeciálny kód je štruktúrou podobný zápisu jednoduchého vektoru, ale jeho dĺžka je 0. V praxi teda prvý aj druhý znak trojznakového (hexa) zápisu sú nuly, alebo je kód zapísaný jednoducho dekadickým zápisom (t.j. 008 a 8 sú platné špecifikácie).

Špeciálne kódy

Kód      Popis

000       Koniec definície tvaru

001       Zapnúť kreslenie (pisátko dole)

002       Vypnúť kreslenie (pisátko hore)

003       Deliť dĺžky vektorov následujúcou slabikou

004       Násobiť dĺžky vektorov následujúcou slabikou

005       Uložiť aktuálnu pozíciu pisátka do zásobníka

006       Vybrať pozíciu pisátka zo zásobníka

007       Vykresliť podtvar určený následujúcou slabikou

008       Posun o (X,Y) - podľa dvoch nasledujúcich slabík

009       Niekoľko posunov o (X,Y) - ukončených slabikami (0,0)

00A      Osminový oblúk definovaný dvoma nasledujúcimi slabikami

00B      Obecný oblúk definovaný následujúcimi piatimi slabikami

00C      Oblúk definovaný posunom (X,Y) a vybúlením

00D      Niekoľko naväzujúcich oblúkov určených vybúlením

00E      Nasledujúcu operáciu vykonaj len ak je vykreslovaný vertikálny text

Kód 0:  Koniec definície tvaru

Kód 0 znamená ukončenie definičnej sekvencie tvaru.

Kódy 1 a 2: Riadenie pisátka

Kódy 1 a 2 ovládajú režim pisátka (pera). Myslené pisátko je spustené na začiatku definície každého tvaru. Ak je pisátko spustené (aktivované), definičné vektory znamenajú vykreslovanie odpovedajúcich čiar. Ak je zdvihnuté (deaktivované), vektory sú len posuny na novú pozíciu bez kreslenia.

Kódy 3 a 4: Riadenie veľkosti

Kódy 3 a 4 riadia relatívnu veľkosť jednotlivých vektorov. Výška zadaná v príkaze TVAR na počiatku odpovedá dĺžke jednotkového kolmého vektoru (smery 0, 4, 8, C). Kódy 3 a 4 sú nasledované slabikou odpovedajúcou celočíselnému faktoru zmenšenia, resp. zväčšenia (1 až 255). Ak chcete, aby výška v príkaze TVAR odpovedala výške celého symbolu a potrebujete pre jeho nakreslenie na výšku 10 rovnako dlhých vektorov (= používate raster vysoký 10), môžete použiť sekvenciu 3,10 pre úpravu merítka (jednotkový vektor odpovedá desatine výšky zadanej príkazom TVAR). Faktor merítka sa kumuluje - vynásobenie 2 a neskôr 6 dá merítko x12. Na konci tvaru budete obvyčajne potrebovať vrátiť merítko na pôvodnú hodnotu - velmi dôležité je to pre podtvary a fonty. AutoCAD totiž túto hodnotu za vás automaticky neupravuje.

Kódy 5 a 6: Uloženie a výber uloženej pozície

Kódy 5 a 6 uložia, resp. vyberú aktuálne súradnice pisátka behom kreslenia tvaru, takže sa môžete ľahko vrátiť k určitému bodu v tvare. Musíte(!) vybrať všetko, čo na zásobník uložíte - hĺbka zásobníku pozícií je len 4. Ak zásobník pretečie z dôvodu použitia príliš veľa operácií ulož a málo operácií výber, pokus o vykreslenie takého tvaru vyvolá nasledujúcu hlášku:

Zásobník pozící pretiekol pri kreslení tvaru nnn

Podobne, ak sa snažíte vybrať viac než bylo uložené, bude zobrazená následujúca hláška:

Zásobník pozící nedostačuje pri kreslení tvaru nnn

Kód 7: Podtvar

Kód 7 znamená odkaz na podtvar. Pre fonty, ktoré niesú UNICODE, slabika následujúca kód 7 určuje číslo tvaru, ktorý bude vykreslený (1 až 255). Pre UNICODE fonty, slabika následujúca kód 7 určuje číslo tvaru v rozsahu 1 až 65535. Čísla UNICODE tvarov musia byť definované pomocou 2 bytov. Potom je vykreslený tvar s týmto číslom (v rovnakom SHP súbore). Dajte pozor na to, že režim pisátka nieje automaticky nijak upravovaný. Po dokončení vykreslovania podtvaru pokračuje kreslenie vlastného tvaru.

Kódy 8 a 9: Posuny (X,Y)

Jednoduché vektory určené jednou slabikou môžu viesť len v 16 preddefinovaných smerech a ich maximálna dĺžka je 15. Takéto obmedzenia prinášajú vysokú úspornosť definície, ale niekedy sú príliš limitujúce. Pomocou kódov 8 a 9 môžete generovať neštandardné vektory určené relativnými súradnicami X a Y. Kód 8 musí byť nasledovaný dvoma slabikami vo formáte:

8,posun-X,posun-Y

Hodnoty posunu sa môžu pohybovať v rozmedzí -128 až +127. Znak + je nepovinný, naviac pre zvýšenie čitateľnosti môžete použiť zátvorky. Následujúci príklad kreslí čiaru (alebo psúva pisátko) na súradnice 10 vľavo a 3 hore.

8,(-10,3)

Po interpretácii dvoch hodnôt posunu sa ďalšia hodnota opät chápe ako jednoduchý vektor, alebo špeciálny kód.

Kód 9 možno použiť pre vykreslenie niekoľkých naväzujúcich neštandardných vektorov. Tento kód musí byť následovaný ľubovoľným počtom párov súradníc posunu. (0,0) ukončuje takúto sekvenciu. Nasledujúci príklad nakreslí tri neštandardné vektory a vráti sa do základného režimu:

9,(3,1),(3,2),(2,-3),(0,0)

Pamätajte, že sekvenciu musíte ukončiť párom (0,0) - AutoCAD inak nepozná ďalšie slabiky popisujúce štandardné vektory a špeciálne kódy.

Kód 00A: Osminový oblúk

shp03


Kód 00A (alebo 10) používa dve nasledujúce slabiky pre definíciu oblúku. Taký oblúk sa volá osminový, pretože sa tiahne cez niekoľko 45-stupňových oktantov na ktorých hranici tiež začína a končí. Oktanty sú číslované proti smeru hodinových ručičiek od pozíce “3 hodiny" - viď. obr:

Špecifikácia oblúku je:

10,polomer,(–)0SC

Polomer je ľubovoľná hodnota z rozsahu 1 až 255. Ďalšia slabika určuje smer oblúku (kladné číslo = proti smeru hod. ruč.), počiatočný oktant (hodnota S - číslo medzi 0 a 7) a počet oktantov, ktorými oblúk prechádza (hodnota C, číslo medzi 0 a 7, 0 znamená osem oktantov, teda celý kruh). Pre zlepšenie čitateľnosti môžete použiť zátvorky. Pozrime si nasledujúci fragment definície tvaru:

...012,10,(1,-032),01E,...

Taký úsek nakreslí jednotkový vektor diagonálne vpravo nahor, oblúk v smere hodinových ručičiek z oktantu 3 (s polomerom 1 a prechádzajúcim 2 oktantami) a ďalej jednotkový vektor diagonálne vpravo dole - ako to ukazuje nasledujúca ilustrácia.

shp04

 

Kód 00B: Obecný oblúk

Špeciálny kód 00B (11) je určený pre kreslenie oblúkov, ktorých koncové body nutne neležia na hraniciach oktantov. Popis oblúku vyžaduje 5 dalších slabík:

11,zač_posun,kon_posun,význ_pol,polomer,(-)0SC

Hodnoty zač_posun a kon_posun určujú, ako ďaleko od hranice oktantu oblúk začína, resp. končí. Význ_pol reprezentuje horných osem bitov vyjadrujúcich polomer; ak polomer nepresiahne 255, tak bude vždy 0. Skutočný polomer sa počíta ako 256-násobok význ_pol plus polomer. Hodnoty polomer a posledná slabika majú rovnaký význam, ako pri kóde 00A (osminový oblúk).

Číslo zač_posun dostanete tak, že vypočítate rozdiel (v stupňoch) medzi hranicou oktantu (t.j. násobkom 45 stupňov) a počiatkom oblúku. Tento rozdiel vynásobíte 256 a vydelíte 45. Ak oblúk začína práve na hranici oktantu, je táto hodnota 0.

Kon_posun sa vypočíta rovnakým spôsobom - použijete rozdiel medzi hranicou posledného pretnutého oktantu a konca oblúku. Ak oblúk končí na hranici oktantu, je táto hodnota 0.

Príklad:   oblúk s polomerom 3 začínajúci na 55 stupňoch a končiaci na 95 stupňoch sa kóduje následovne:

11,(56,28,0,3,012)

Tu je vystvetlenie:

zač_posun          = 56 pretože ((55 - 45) * 256 / 45) = 56

kon_posun          = 28 pretože ((95 - 90) * 256 / 45) = 28

význ_pol             = 0 pretože (ploměr < 255)

polomer              = 3

počiatočný oktant      = 1 pretože oblúk začína v 45 stupňovom oktante

koncový oktant   = 2 protože oblouk končí v 90 stupňovom oktante

Kódy 00C a 00D: 'vybúlením' definované oblúky

Špeciálne kódy 00C a 00D (12 a 13) sú ďalším mechanizmom vkladania oblúkov do definícií tvarov. Podobajú sa kódom 8 a 9 tým, že tiež definujú posun o (X,Y). Tieto kódy však umožňujú kresliť oblúky pridaním faktoru vybúlenia k tomuto posunu. Kód 00C kreslí jeden oblúk, zatiaľ čo kód 00D vykreslí naväzujúcu sekvenciu oblúkov (oblúková krivka) až do slabík posunu (0,0).

Kód 00C musí byť nasledovaný tromi slabikami popisujúcimi oblúk:

0C,posun_X,posun_Y,vybúlenie

shp05

Hodnoty posunu X a Y a hodnota vybúlenia sa môžu pohybovať od -127 do +127. Ak veľkosť posunu je D a výška oblúku je H, hodnota vybúlenia je ((2 * H / D) * 127). Ak oblúk ide po smere hodinových ručičiek, tak má záporné znamienko.

Polkruh má hodnotu vybúlenia 127 (alebo -127) a je to najväčší oblúk, aký možno týmto spôsobom vyjadriť (jedným segmentom, pre väčšie oblúky použite dve takéto inštrukcie). Hodnota 0 je platným zápisom úsečky. Všimnite si, že popis úsečky kódom 8 je o slabiku kratší.

Kód obloukovej krivky (00D, 13) je nasledovaný žiadnou alebo niekoľkými takými trojicami slabík a sekvencia je ukončená hodnotami (0,0). (Uvedomte si, že ukončovacia sekvencia je len dvojslabičná, vybúlenie nieje určené). Znak podobný S by mohol byť definovaný takto:

13,(0,5,127),(0,5,-127),(0,0)

Zdegenerované oblúkové segmenty (vybúlenie=0, úsečky) sú efektívne pre popis priamych segmentov vnútri oblúkovej krivky. Je to úspornejšia definícia, ako ukončovanie krivky, vloženie ptiameho segmentu a štart novej krivky.

Číslo -128 nesmie byť použité ako hodnota vybúlenia.

Kód 00E: Príznak vertikálneho textu

Kód 00E (14) sa používa len pri popise obojsmerných fontov (horizontálny aj vertikálny text). Ak na neho prekladač narazí, ďalší kód sa vykoná, alebo nevykoná - podľa orientácie práve vykreslovaného textu. Ak ide o text vertikálny, ďalšia operácia sa vykoná; ak je horizontálny, ďalší kód sa preskočí.

V horizontálnom texte je za počiatočný bod každého znaku považovaný ľavý koncový bod základnej čiary, vo vertikálnom potom najvyžší stredový bod znaku. Na konci definície sa obvykle vykoná zdvihnutie pisátka a presun na pozíciu ďalšieho znaku. Pre horizontálny text je to vpravo, pre vertikálny potom dole. Ďpeciálny kód 14 (00E) sa primárne používa k rozlíšeniu spôsobu presunu na nový znak v horizontálnom a vertikálnom texte. Napríklad táto definícia písmena D môže býť použitá v definícii textu pre horizontálne aj vertikálne použitie:

*68,22,ucd

2,14,8,(-2, 6),1,030,012,044,016,038,2,010,1,06C,2,050,

14,8,(-4,-3),0

 

shp06

 

 

Popis textových fontov

Ak sa rozhodnete vytvoriť si vlastnú znakovú sadu (font), preštudujte si najskôr súbor txt.shp a zdrojové formy ostatných dodávaných fontov. Sú to praktické príklady použitia tu popisovaných techník. Tento súbor nájdete na CD Autocadu.

AutoCADové znakové sady sú súbory popisujúce tvary, kde čísla tvarov odpovedajú ASCII kódom jednotlivých znakov. zoznam ASCII kódov nájdete tiež na konci tejto nápovedy.

Kódy v rozmedzí 1 až 31 sú vyhradené pre riadiace znaky a len jeden sa v popisoch fontov používa:

10 (LF)

Odriadkovanie (LF) musí bez kreslenia posunúť pisátko o jeden riadok nižšie. Je využívaný napríklad po sebe idúcimi príkazmi TEXT pre umiestnenie nového riadku pod posledný.

*10,5,lf2,8,(0,-10),0

Zmenou hodnoty pre posun dole môžete upraviť riadkovanie textov.

Fonty musia obsahovať definíciu špeciálneho tvaru 0 nesúceho informácie o vlastnom fonte. Má nasledujúcu syntax:

*0,4,názov_písma

hore,dole,režim,0

Hodnota hore udáva koľko dĺžok jednotkových vektorov odpovedá vzdialenosti vrškov veľkých písmen od základnej čiary a obdobne dole špecifikuje o koľko sú najnižšie krivky malých písmen pod základnou čiarou. Základná čiara odpovedá linke na papieri. Tieto hodnoty udávajú základné informácie o veľkosti písma a slúžia pre určenie faktoru zmenšenia tak, aby veľkosť písma odpovedala výške zadanej príkazom TEXT.

Slabika režim musí byť 0 pre horizontálny font a 2 pre obojsmernoú (horizontálnu aj vertikálnu) sadu. Špeciálny kód 00E (14) je platný len keď režim je 2.

Štandardné sady dodávané s AutoCADom obsahujú naviac niektoré znaky nutné pre správnu funkciu kótovania.

%%d - Symbol stupňa (°)%%p - Plus/mínus tolerančný symbol (±)%%c - Znak priemeru (&)

Poznámka:

AutoCAD vkláda znaky podľa ich ASCII hodnoty, nie podľa názvu. Aby ste šetrili pamäťovým miestom, píšte meno tvaru malými písmenami. Tie kompilátor ignoruje (neukláda do pamäte), slúžia len pre vašu orientáciu.

*65,11,uca

024,043,04d,02c,2,047,1,040,2,02e,0

Pretože meno tvaru uca je písané malými písmenami, nie je načítané do pamäte AutoCADu. Je však praktické pre rozpoznánie znaku pri editácii tohoto súboru - uca je v tomto prípade skratkou anglického výrazu pre 'veľké A'.

Veľké sady

Niektoré jazyky, napr Japonština, používajú stovky, alebo tisíce nie-ASCII znakov. Aby takéto znaky bolo možné vkladať do výkresu, podporuje AutoCAD špeciálny typ definície nazývaný “veľká sada".

Definovanie veľkej sady

So znakovou sadou obsahujúcou stovky alebo tisíce znakov treba pracovať jiným spôsobom, než s bežným ASCII fontom obsahujúcom max 256 znakov. Vedľa náročných techník pre prehľadávanie takého súboru musí AutoCAD poznať spôsob, ako vyjadrovať znaky jednou a zároveň viac (2) slabikami. Taký font musí na začiatku súboru obsahovať špeciálnu definíciu.

Prvý riadok Veľkej sady musí vyzerať následovne:

*BIGFONT počet_znakov,počet_rozsahov,z1,k1,z2,k2,...

kde počet_znakov je približný počet znakov v tejto definícii; ak sa líší tento odhad o viac ako 10%, tak sa to prejaví buď zbytočnou veľkosťou súboru, alebo zníženým výkonom. Zbytok riadku môžete použiť pre popis rozsahov znakov uvádzajúcich dvojslabičné kódy. Napríklad v japonskom prostredí Kanji znaky začínajú slabikami v rozsahu 90-AF, alebo E0-FF. Ak operačný systém narazí na takúto slabiku, skombinuje ju s nasledujúcou do dvojslabičného kódu Kanji znaku. V riadku BIGFONT hodnota počet_rozsahov udáva koľko neprerušených rozsahov slabík sa používa pre uvádzanie dvojslabičných znakov a odpovedajúce z1,k1,z2,k2, ... určujú prvé a posledné slabiky takýchto rozsahov. Preto hlavička Japonskej vľkej sady by mohla byť:

*BIGFONT 4000,2,090,0AF,0E0,0FF

Po tomto riadku sa formát 'veľkej sady' zhoduje s běžným popisom fontu - s tým rozdielom, že čísla tvarov môžu byť až 65535.

Definovanie rozšírenej veľkej sady

Aby bolo možné zmenšiť veľkosť popisu zložených znakov Kanji, bola zavedená “rozšírená veľká sada". Taká sada používa kódy pre podtvar nasledovaný 0.

Prvý riadok rozšírenej sady odpovedá štandardnej veľkej sade. Toto je formát nasledujúcich riadkov súboru:

*0,5,meno_sady
výška_znaku, 0, režim, šírka_znaku,0
           .
           .
           .
*číslo_tvaru,poč_slab,meno_tvaru
           .
kód,0,číslo_prim,x,y,šírka,výška,
           .
           .
kód,0,číslo_prim,x,y,šírka,výška,
           .
ukončenie

Popis jednotlivých polí vo Veľkej sade:

výška_znaku

Používa sa spolu so šírkou znaku pre určenie počtu jednotiek definujúcich znak.

šírka_znaku

Používa sa spolu s výškou znaku pre určenie počtu jednotiek definujúcich znak. Šírka a výška slúží k určeniu merítka primitív definujúcich znaky. V tomto kontexte rozumieme primitívami body, čiary, polygóny a znakové reťazce geometricky usporiadané v dvojrozmernom priestore. Znaky Kanji sa skladajú z rôzneho počtu primitív v rôznych merítkach a kombináciách.

režim

Slabika režim musí být 0 pro horizontální font a 2 pro obousměrnou (horizontální i vertikální) sadu. Speciální kód 00E (14) je platný jenom když režim je 2.

číslo_tvaru

Kód znaku.

poč_slab

Veľkosť bytu. Vždy je, môže obsahovať hexadecimálne alebo kombináciu hexadecimálnych a decimálnych kódov.

meno_tvaru

meno znaku.

kód

Špeciálny kód definície tvaru. V tomto prípade je to vždy kód 7 - vyvolanie podtvaru.

číslo_prim

Odkaz na podtvar. Vždy 2.

X

Súradnica X počiatku primitívy.

Y

Súradnica Y počiatku primitívy.

šírka

Merítko primitívy (šírková zložka)

výška

Merítko primitívy (výšková zložka)

ukončenie

Znak konca súboru - je vždy 0.

AutoCAD pracuje s merítkom tak, že odpovedajúci podtvar zmenší na jednotkový štvorec a potom upraví hodnoty šírky a výšky odpovedajúcim faktorom. Kódy znakov môžu byť až 65535. Nasledujúca tabuľka popisuje pole 'rozšírenej veľkej sady'.

Pole definícií rozšírenej 'veľkej sady'

Pole                 Hodnota      Poč. slabík    Popis

číslo_tvaru        xxxx            2 slabiky        Kód znaku
kód                  7,0              2 slabiky        Definícia rozšírenej veľkej sady
číslo_prim         xxxx            2 slabiky        Odkaz na podtvar
X                                        1 slabika        X počiatku
Y                                        1 slabika        Y počiatku
šírka                                    1 slabika        Šírkový faktor
výška                                  1 slabika        Výškový faktor
ukončenie         0                 1 slabika        Koniec definície tvaru

Nasledujúci obrázok ukazuje príklad matice 16x16, akú môžete použiť pre definovanie rozšírenej veľkej sady, ako napríklad znakov Kanji. V tomto obrázku je vzdialenosť medzi bodkami jedna jednotka. Popisok ukazuje na jednotkový štvorec.

shp07

Štvorcová matica pre znak Kanji

Na nasledujúcom obrázku sú príklady znakov Kanji. Každý zaberá maticu MxN (nemusí byť nutne štvorcová) podobnú tej na predchádzajúcom obrázku. Čísla nad každým obrázkom udávajú číslo príslušného tvaru.

shp08

Príklady znakov Kanji

Na ďalšom obrázku sú zobrazené Kanji primitívy.

Príklady Kanji primitív

shp09

Poznámka:

Znaky nemusia byť definované štvorcovými maticami - u niektorých sa používajú skôr obdĺžniky.

Takto vyzerá definíca tvarov v rozšírenej veľkej sade:

*BIGFONT 50,1,080,09e

*0,5,Extended Font

15,0,2,15,0

*08D91,31,unspecified

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,unspecified

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,unspecified

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,unspecified

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,primitive

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,primitive

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,primitive

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,primitive

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,primitive

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,primitive

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,primitive

2,0e,8,-7,-15,2,0d2,1,0cc,0c8,0c4,0c0,2,8,

5,-13,2,0e,8,-11,-3,0

Používanie veľkých sád

Aby ste mohli používať veľkú sadu, je nutné nejskôr príkazom PÍSMO nadefinovať štýl a v ňom určiť názov veľkej sady. Jeden štýl môže používať súčasne normálnu a veľkú sadu, zadajte jednoducho obidvaa názvy oddelené čiarkou. Nasledujúcí príklad používa príkaz PÍSMO z príkazového riadku. K povoleniu Veľkých sád z dialógu Textový štýl zaškrtnite voľbu Používať veľké sady (BIGFONT).

Príklad:

Příkaz: –písmo

Název písma (nebo ?) <aktuální>: název

Soubor fontu (TTF or SHX): txt,greek

AutoCAD predpokladá, že prvý je názov bežného fontu a druhý názov veľkej sady.

Ak zadáte len jeden názov, AutoCAD pochopí, že zadávate názov obyčajného fontu a odstráni prípadne asociovanú veľkú sadu.

Použitím čiarok na začiatku, alebo konci môžete zmeniť jeden font bez toho aby ste ovplivnili druhý. Nasledujúca tabuľka to vysvetluje:

Vstup pri zmene fontu

Vstup                                    Výsledok

normálny, veľký                      Oba fonty (normálny aj veľká sada) sú zmenené

normálny,                               Normálny je zmenený (veľká sada zostáva)

,veľký                                    Mení sa len veľká sada (normálny font zostáva)

normálny                                Zadáva sa len normálny font, veľká sada je odstranená

ENTER (prázdna odpoveď)     Žiadna zmena

Ak príkazom PÍSMO kontrolujete štýly, AutoCAD zobrazí normálny font, čiarku a meno veľkej sady. Ak je definovaná len veľká sada, zobrazí sa čiarka a názov tejto sady, ako napr. ,greek.

Každý znak je vyhľadávaný najskôr vo veľkej sade. Ak sa nenájde, prehľadá sa normálny font.

Alternatívne použitie veľkých znakových sád

V niektorých kresliacích technikách sa môže v textových reťazcoch objaviť mnoho špeciálnych znakov. Štandardné AutoCADové textové fonty môžu byť rozšírené o špeciálne symboly. Rozširovsnie štandardných textových fontov má však niektoré obmedzenia:

- Maximálny počet tvarov v súbore je 255.

- Štandardná sada znakov používa zhruba jednu polovicu všetkých možných čísel tvarov. Len kódy 1- 9, 11 - 31, a 130 - 255 sú použiteľné.

- Pri používaní viac textových fontov je nutné symboly definovať v každom z nich.

- Špeciálne symboly sa vkladajú pomocou kódu %%nnn, kde nnn je číslo tvaru symbolu.

Mechanismus veľkých sád tieto problémy odstraňuje. Môžete si vybrať jeden z málo používaných znakov napríklad vlnovku (~), vertikálnu čiaru (|), ako riadiaci kód a použiť následujúci znak k výberu špeciálneho symbolu. Napríklad môžete použiť veľkú sadu k nakresleniu gréckych písmen pomocou vloženia zvislej čiary (|, ASCII hodnota 124) a normálneho písmena. Pretože prvá slabika každého znaku je 124, kódy znakov sú chápané ako 124 × 256 alebo 31744.

*BIGFONT 60,1,124,124

*0,4,Greek

hore, dole, režim, 0

*31809,n,uca

. . .   definícia veľkej Alfy, vyvolávaná pomocou "|A"

*31810,n,ucb

. . . definícia veľkej Bety, vyvolávaná pomocou "|B"

*31841,n,lca

. . . definícia malej Alfy, vyvolávaná pomocou "|a"

*31842,n,lcb

. . .   definícia malej Bety, vyvolávaná pomocou "|b"

*31868,n,vbar

. . .   definícia zvislej čiary, vyvolávaná pomocou "||"

. . .

Popis fontov UNICODE

Štandardné AutoCADové fonty odpovedajú mapovaniu znakov na hostiteľskom OS. Znaky sú v databázi uložené priamo tak, ako ich program obdrží od ovládača klávesnice. Také kódy sa taktiež použijú pre generovanie fontov. Tento prístup je problematický pre národné znaky (8-bitov), kde existuje viac spôsobov kódovania.

Vzhľadom k tejto nepríjemnej vlastnosti rôznych operačných systémov bolo nutné mať jednotlivé sady fontov pre každú kódovú stránku, ktorú AutoCAD používa. Tieto fonty boly v podstate rovnaké, len niektoré znaky boly na iných miestach. Ak sa kódovanie fontu nezhodovalo s použitou kódovou stránkou výkresu, tak sa zobrazovali zlé znaky.

S fontami UNICODE sa texty prevádzajú do unikódového kódovania skôr, ako sa vykreslia, takže odpadá nutnosť dodávať jednotlivé fonty pre rôzné jazyky a platformy. Jeden UNICODE font dokáže vzhľadom ku svojmu znakovému rozsahu pokryť väčšinu jazykov a všetky platformy. Pre užívateľa je tento proces celkom transparentný, pretože výkresy sú prevádzané do odpovedajúcej kódovej stránky pri načítaní. AutoCADové výkresy sú vždy ukládané v systémovej kódovej stránke AutoCADu.

Poznámka

UNICODE fonty neponúkajú podporu pre všetky jazyky, takže napr. ázijské jazyky stále musia používať veľké sady.

Definície tohoto formátu sa takmer zhodujú s definíciou bežných fontov. Hlavný rozdiel je v syntaxi hlavičky fontu:

*UNIFONT,6,názov_fontu

hore,dole,režim,kódovanie,typ,0

Hore a dole a režim odpovedá definícii normálnych fontov. Ostávajúce dva parametre sú definované nasledovne:

kódovanie

Kódovanie fontu. Jedna z nasledujúcich hodnôt.

0 UNICODE 1 Packed multi-byte 1 2 Súbor tvarov

typ

Informácia o ukládaní fontu. Určuje, či je font pod licenciou. Taký font nesmie byť modifikovaný a distribuovaný. Hodnoty sú:

0 Font sa môže ukladať s výkresom 1 Font nie je možné ukladať 2 Uloženie je len pre čítanie'

Ďalším dôležitým a niekedy mätúcím rozdielom je obsluhovanie kódu 7 (odkaz na podtvar). Ak definícia tvaru obsahuje odkaz na podtvar (kód 7), dáta, následujúce za týmto kódom, sú interpretované ako dvojslabičné. To je ovplivnené celkovým početom datových slabík (def_slabik ) v hlavičke definície tvaru. Napríklad, nasledujúce riadky môžete nájsť v súbore romans.shp:

*00080,4,keuroRef

7,020AC,0

Druhé pole v hlavičke reprezentuje celkový počet slabík v popise tvaru. Ak nepracujete s UNICODE fontom, môžete inklinovať k používaniu 3 slabík miesto 4. To môže spôsobiť chybu pri kompilácii SHP súboru. Je to pravda i v prípade, že sa odkazujete na číslo tvaru, ktoré je jednoslabičné (menšie ako 255); kompilátor vždy chápe túto hodnotu ako dvojslabičnú. Preto je nutný tento zápis v hlavičke.

Posledný rozdiel v UNIFONT definícii a bežným fontom je ten, že pre UNIFONT sa doporučuje používať hexadecimálny zápis. Nie je to požiadavkou, ale zjednodušuje to vyhľadávanie znakov zapisovaných formou \U+hodnota.

Techniky definícií tvarov pre pokročilých

Standardné fonty (SHX) AutoCADu nepodporujú indexy. Nieje však obtiažné takúto vlastnosť doplniť.

Vytváranie fontov pre indexy vyžaduje dva kroky. Najskôr imaginárne pisátko vytvárajúce text musí byť posunuté dole a potom je nutné zmenšiť merítko tvaru. Naviac je nutné implementovať presne obrátený postup pre návrat k normálnemu textu. Taký font musí rozpoznávať štyri špeciálne kódy - dva pre index a dva pre “mocninu". Aby ste sa vyhli konfliktom s existujúcimi tvarmi, je možné použiť hodnoty zadávané cez numerickú klávesnicu.

Nasledujúci príklad bol vytvorený pri použití štandardne dodávaného fontu ROMANS, hoci túto metódu možno použiť s ľubovoľným fontom. Tento postup pridáva štyri nové znaky super_on, super_off (zapne, resp. vypne mocninu), sub_on a sub_off (zapne, resp. vypne index). ktoré riadia polohu a veľkosť znakov nasledujúcich. Pre zjednodušenie tento príklad nahradzuje definíciu hranatých a zložených zátvoriek ([,],{,}). Je vašou voľbou, či použijete iné znaky, alebo pridáte nové napr. v oblasti 128-255. V takovom prípade pre zadávanie týchto znakov použijete sekvenciu %%nnn kde nnn je ASCII hodnota odpovedajúceho znaku.

Pridanie definící indexov do fontu

1          Otvorte súbor SHP (v tomto prípade romans.shp) v ASCII textovom editore. Pravdepodobne bude lepšie vytvoriť nový súbor romanss.shp ako modifikovať originál. Tento súbor môžete nájsť na CD AutoCAD 2000.

2          Nájdite definície tvarov odpovedajúce znakom, ktoré nahradzujete. Budete musieť z týchto riadkov vytvoriť komentár, aby sa uvolnilo miesto pre nové znaky. Dosiahnete toho vložením stredníkov na začiatky týchto riadkov (pozor, jedna definícia môže zaberať ľubovoľný počet riadkov).

Kódy pre naše znaky sú 91, 93, 123, 125, resp. pre UNICODE 05B, 05D, 07B, 07D v poradí [, ], { a }.

3          Sčítajte prvú a druhú slabiku na druhom riadku definície fontu a vydelte výsledok 2. Viz príklad:

*UNIFONT,6,Extended Simplex Roman for UNICODE

21,7,2,0 21 + 7 = 28, a potom 28 / 2 = 14 (posledná hodnota bude použitá ďalej)

4          Doplňte na koniec SHP súboru nasledujúce riadky:

*91,8,super_on

2,8,(0,14),003,2,1,0

*93,8,super_off

2,004,2,8,(0,-14),1,0

*123,8,sub_on

2,8,(0,-14),003,2,1,0

*125,8,sub_off

2,004,2,8,(0,14),1,0

Všimnite si hodnôt 14 a -14. Sú to posuny imaginárneho pisátka po súradnici Y. 14 je polovica maximálnej výšky znaku v tomto fonte, čo je dobrá hodnota pre posun indexu. Táto hodnota musí byť vypočítaná pre každý font zvlášť (viď. predchádzajúci bod).

5          Uložte súbor.

6          Pomocou príkazu KOMPILUJ skompilujte vytvorený SHP súbor.

Keď máte súbor nadefinovaný a keď ste vytvorili odpovedajúcu definíciu štýlu príkazom PÍSMO, môžete využívať indexy a mocniny. Znak [ začína index a znak ] ho ukončuje. Obdobne { uvádza mocninu a } vracia text na normálny režim.

 

ASCII kódy

Prehľad štandardných ASCII kódov. Osmičková hodnota, ktorá je použiteľná v znakových alebo reťazcových konštantách, sa zadáva vo forme \nnn. Váš systém môže definovať ďalšie kódy v rozšírenej, 256 znakovej sade (kódy väčšie ako 127). Niektoré systémy tiež predefinovávajú niektoré málo používané kódy napr. 1-6 a 14-26. Ak chcete vidieť znakovú sadu vášho systému vrátane ich kódov v desiatkovej a osmičkovej sústave, použite príkaz definovaný AutoLISP®om ASCII. Znaky sú na obrazovke zobrazené v tabuľke.

Tabulka ASCII kódov

Des.           Osm.          Šes.         Znak                               Des.        Osm.       Šes.         Znak

0                 000            00           NUL                                64           100         40           @

1                 001            01           SOH                                65           101         41           A

2                 002            02           STX                                66           102         42           B

3                 003            03           ETX                                67           103         43           C

4                 004            04           EOT                                68           104         44           D

5                 005            05           ENQ                                69           105         45           E

6                 006            06           ACK                               70           106         46           F

7                 007            07           BEL (bell)                      71           107         47           G

8                 010            08           BS (backspace)            72           110         48           H

9                 011            09           HT                                  73           111         49           I

10              012            0A          LF (line-feed)                74           112         4A          J

11              013            0B          VT                                   75           113         4B          K

12              014            0C          FF                                    76           114         4C          L

13              015            0D          CR (return)                    77           115         4D          M

14              016            0E           SO                                   78           116         4E           N

15              017            0F           SI                                    79           117         4F           O

16              020            10           DLE                                80           120         50           P

17              021            11           DC1                                81           121         51           Q

18              022            12           DC2                                82           122         52           R

19              023            13           DC3                                83           123         53           S

20              024            14           DC4                                84           124         54           T

21              025            15           NAK                               85           125         55           U

22              026            16           SYN                                86           126         56           V

23              027            17           ETB                                87           127         57           W

24              030            18           CAN                               88           130         58           X

25              031            19           EM                                  89           131         59           Y

26              032            1A          SUB                                90           132         5A          Z

27              033            1B          ESC (escape)                91           133         5B          [

28              034            1C          FS                                    92           134         5C          \

29              035            1D          GS                                   93           135         5D          ]

30              036            1E           RS                                   94           136         5E           ^

31              037            1F           US                                   95           137         5F           _

32              040            20           (space)                           96           140         60           '

33              041            21           !                                       97           141         61           a

34              042            22           "                                       98           142         62           b

35              043            23           #                                      99           143         63           c

36              044            24           $                                      100         144         64           d

37              045            25           %                                     101         145         65           e

38              046            26           &                                     102         146         66           f

39              047            27           '                                        103         147         67           g

40              050            28           (                                       104         150         68           h

41              051            29           )                                       105         151         69           i

42              052            2A          *                                      106         152         6A          j

43              053            2B          +                                      107         153         6B          k

44              054            2C          ,                                       108         154         6C          l

45              055            2D          -                                       109         155         6D          m

46              056            2E           .                                       110         156         6E           n

47              057            2F           /                                       111         157         6F           o

48              060            30           0                                      112         160         70           p

49              061            31           1                                      113         161         71           q

50              062            32           2                                      114         162         72           r

51              063            33           3                                      115         163         73           s

52              064            34           4                                      116         164         74           t

53              065            35           5                                      117         165         75           u

54              066            36           6                                      118         166         76           v

55              067            37           7                                      119         167         77           w

56              070            38           8                                      120         170         78           x

57              071            39           9                                      121         171         79           y

58              072            3A          :                                       122         172         7A          z

59              073            3B          ;                                       123         173         7B          {

60              074            3C          <                                      124         174         7C          |

61              075            3D          =                                      125         175         7D          }

62              076            3E           >                                      126         176         7E           ~

63              077            3F           ?                                      127         177         7F           DEL (delete)