CorelDraw - jak na výpočet obvodu objektu - Grafika.cz - vše o počítačové grafice

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:



Vektory

CorelDraw - jak na výpočet obvodu objektu

pismo praxe sign signmaking

10. září 2003, 00.00 | V dnešním tutoriálu se pokusíme odpovědět na dotaz, jak v Corelu zjistit obvod libovolného objektu. To je úkol, který je často potřebný např. při výrobě reklamních nosičů, na které je nutné zakoupit speciální materiál.

Dnešní tutoriál se nebude tak úplně týkat práce v Corelu, nicméně doufám, že bude dobrým příspěvkem k práci mnohých výrobců reklamních komodit. Se zajímavým dotazem se na mě totiž obrátil pan Pozar ze Slovenska. Jeho dotaz zněl, zda by bylo možné v Corelu zjistit obvod libovolného objektu. Pan Pozar chtěl na konkrétním případu písmene "E" zjistit, kolik milimetrů má po obvodu toto písmenko. Panu Pozarovi jsem přislíbil pomoc a v dnešním tutoriálu si ukážeme jak na to.
Upřímně řečeno, ze začátku po přečtení jeho mailu mi nebylo moc jasné proč takovou věc vlastně potřebuje zjistit, ale pak jsem si uvědomil, že i já sám se ve své praxi s takovým problémem setkávám. Je to v případě výroby velkých písmen pro světelnou reklamu. Pro výrobu světelné reklamy se používají speciální lišty a před jejich zakoupením je dobré alespoň zhruba vědět, kolik metrů lišt budeme potřebovat. V případě písmenka E je to celkem triviální, ale pokud vyrábíme písmenka například z fontu Crescent nebo Cupertino, je odhad velmi obtížný.

Lišty pro světelnou reklamu

S Corelem sice dělám už poměrně dlouho, nicméně žádnou takovou funkci, která by uměla zjistit obvod objektu, jsem v něm nenašel. Nezbývá tedy nic jiného, než to nějak obejít.
A protože se, mimo jiné, zabývám i programováním, zkoušel jsem něco napsat. Jít cestou dekódování formátu CDR a počítat délku Bezierových křivek, se kterými Corel pracuje, se mi zdálo příliš složité. Psát něco přímo ve Visual Basicu v Corelu se mi také moc nechtělo a tak jsem sáhl po osvědčeném ovladači pro náš řezací plotter, který používá jakýsi ekvivalent HPGL příkazů. Aplikaci, která posílá Corelskou grafiku na náš plotter jsem si napsal sám a na rozdíl od komerčního softwaru, který jsme používali dříve pracuje, stoprocentně spolehlivě a bez problémů.

Krok 1.: Krátké seznámení s formátem HPGL

HPGL (zkratka pro Hewlett Packard Graphic Language) je jazyk vyvinutý firmou HP speciálně pro pérové plotry a na rozdíl od jazyka PCL (Printer Control Language) je velice velice jednoduchý na pochopení, dekódování a jakoukoli další práci s ním. Jedná se totiž pouze o textovou informaci.
Část takového PLT souboru v jazyce HPGL může vypadat třeba takto:

IN;
VS32,1;
VS32,2;
...
...
VS32,8;
WU0;
PW0.350,1;
PW0.350,2;
...
...
PW0.350,8;
SP1;
LT;
PU1907 1376;
PD2009 1379;
PD2111 1386;
PD2210 1400;
PD2309 1417;

Sami vidíte, že se jedná pouze o textovou informaci ve formátu PŘÍKAZ PARAMETR PARAMETR... anebo PŘÍKAZ SOUŘADNICE SOUŘADNICE. A právě informace o souřadicích bude pro nás důležitá při výpočtu obvodu. HPGL jazyk totiž nedělá nic jiného, než že jednotlivé objekty Corelu převede na spoustu kraťoučkých úseček a zapíše je jako textovou informaci (teď jsem to řekl ale velice jednoduše...). Říká se tomu aproximace a vzhledem k tomu, že HPGL formát má standardní rozlišení (jinak též "přesnost") 40 plu na milimetr (PLU = plotter units) je aproximace úsečkami více než dostatečná.
Jazyk HPGL mimo jiné používá čtyři základní příkazy:

PD - Pen Down - pero dolů
PU - Pen Up - pero nahoru
SP - Select Pen - vyber pero
VS - velocity speed - rychlost rychlosti? ale to je asi zřejmě rychlost...

z nichž nejdůležitější je pro nás příkaz PD (Péro Dolu :o) na nějž plotr reaguje tak, že spustí pero (nebo nůž) na médium a posune jej o zadaný počet PLU v X-ové i v Y-ové ose. Ostatní příkazy nás víceméně nemusí zajímat, protože nejsou důležité pro výpočet obvodu objektu.
Zní-li tedy příkaz PD400 400 znamená to, že plotr spustí pero a posune jej o 10mm vpravo a o 10mm nahoru (nakreslí krátkou šikmou čárku). Pokud je pero dole a plotr kreslí (řeže) znamená to, že vytváří objekt a tím pádem z těchto příkazů můžeme spočítat jeho obvod. Stačí mít aplikaci (nebo třeba jen makro v Excelu) které z PLT souboru "vytáhne" pouze příkazy PD a spočítá celkovou délku všech úseček. A právě takové makro bych vám rád nabídl.

Krok 2.: Export do PLT z Corelu

Exportovat cokoli do HPGL formátu z Corelu je triviální záležitost. Stačí klávesová zkratka Ctrl+E nebo menu Soubor -> Exportovat anebo ikonka pro export.

Ikona pro export

Objeví se vám dialogové okno, ve kterém musíte nastavit několik věcí: předně je to soubor typu PLT - HPGL plotter (pokud ho v rozbalovací nabídce nemáte, je nutné použít instalační CD a podporu HPGL si doinstalovat), dále samozřejmě určíte jméno exportovaného souboru a také nesmíte zapomenout na zatržítko "Pouze vybrané". Corel totiž umí exportovat nejen celý výkres ale i jen jednotlivé, naposledy vybrané objekty před stisknutím klávesové zkratky pro export. Zatržení tohoto zatržítka je důležité hlavně v případě na jaký se ptal pan Pozar, tedy obvod jednoho písmenka... vyberu si pouze písmenko E, vyexportuji do HPGL a zjistím si jeho obvod.

Dialog pro export

V dalším dialogovém okně s názvem "Export do formátu HPGL" potvrdíte jen OK, protože pro náš případ není nutné nic nastavovat. Corel grafiku převede do HPGL (dostanete PLT soubor) a na ten už můžete použít Excelské makro.

Krok 3.: Vzhůru do Excelu

Poprvé v sérii tutoriálů o Corelu opouštíme náš drahý a milovaný program a pronikneme do džungle microsoftích aplikací, hlavně do pralesa se jménem "Excel". Jestli mám být upřímný, mezi softwarovými více či méně lepšími "zázraky" mám rád dvě aplikace. Na prvním místě je to Corel (který skutečně pro vekotorovou grafiku u mne znamená číslo 1) a za druhé MS Excel... Byly doby, kdy jsem se tohoto programu přímo bál, ale v posledních zhruba pěti letech jsem mu přišel tak na chuť, že v něm dnes dělám téměř veškerou agendu potřebnou k mojí práci, peněžním deníkem počínaje a třeba výpočtem obvodu corelského objektu konče. O Excelu se traduje jedno takové přísloví - všichni prý tvrdí, že v něm jdou udělat ty nejfantastičtější věci, ale každý ho používá jen pro základní práci. Ano, je to tak, s excelem jdou skutečně dělat zázraky (pokud víte jak na ně) a sám se snažím Excel v maximální míře pro své účely používat. Zkusme se tedy podívat na to, zda Excel zvládne spočítat obvod corelského objektu z HPGL dat.
Samotný Excel žádnou podporu HPGL samozřejmě nemá, ale pokud mu vysvětlíme, jak se má na HPGL data dívat, myslím, že to pro Excel nebude tolik práce. Stáhněte si z internetu excelský soubor, který má v sobě makro na výpočet obvodu objektu z Corelu. Na otázku o makrovirech s klidem odpovězte, že makra chcete povolit.
Otevřete si vyexportovaný PLT soubor v jakémkoli textovém editoru (třeba ve windowsím notepadu), vyberte celý text (Ctrl+A v notepadu) a zkopírujte do schránky (Ctrl+C v notepadu). Poté obsah schránky vložte do excelského souboru obvod.xls pomocí stisku Ctrl+V. Nyní pouze pozor na jednu věc - jak vidíte, HPGL příkazy jsou v Excelu pěkně řádek po řádku. Ale při větším objemu dat v PLT souboru byste mohli narazit na jedno omezení Excelu a tím je maximální počet řádků 65536, se kterým je Excel schopen pracovat. Při větším počtu řádků by bylo nutné grafiku exportovat na víckrát tak, aby ani v jednom případě nebyl počet řádků PLT souboru větší než 65536 a jednotlivé obvody si pak posčítat, ale to myslím nehrozí...

Excelské okénko

A teď už je práce úplně jednoduchá - stiskem tlačítka OBVOD se za pár vteřin spočítá celkový počet všech objektů a jejich celkový obvod (vězte, že třeba písmenko O je bráno jako dva objekty!!!) a tlačítkem VYNULOVAT se vyčistí celý list a bude připraven k další práci.
A to je celé... :o) Jak jednoduché, že? Rád bych ještě připomněl, že může vzniknout chyba při zaokrouhlování přímo v Excelu. Dále bych rád připomenul, že HPGL aproximuje přímkami a s těmi také počítá Excel, takže VŽDYCKY dostanete obvod o trošičku menší než je skutečnost. Tím "trošičku" se myslí řádově rozdíl necelé desetiny procenta od skutečnosti. Ale to stejně celou věc nekazí, protože pokud byla moje domněnka o původu dotazu pana Pozara ve výrobě světelné reklamy správná, stejně musíte připočíst k nákupu lišt něco navíc na "prořez" a tak podobně.
Na závěr vám všem popřeji hodně zábavy při zjišťování délek vašich corelských malůvek a doufám, že i přes to, že dnešní povídání nebylo tak úplně jen o Corelu, přinesl vám článek něco nového. Děkuji za pozornost a těším se u dalších tutoriálů.

Tématické zařazení:

 » Rubriky  » Go verze  

 » Rubriky  » Vektory  

 

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: