pátek 30. listopadu 2012

Vytvoření katalogu ocelových prvků pomocí dynamického bloku 2. díl

V minulém příspěvku jsme rozebírali definici dynamického bloku čtvercového jeklu, který v sobě obsahoval celou výrobní řadu tohoto profilu. Kdybychom nenastavili, že výška profilu se rovná šířce a do Block Properties Table bychom zahrnuli i výšku profilu, mohli bychom pomocí jednoho bloku definovat jak čtvercové tak obdélníkové jekly. V tabulce by se ale vyskytovalo už více jak 300 položek a vyhledání potřebného profilu by mohlo být zdlouhavé. Proto je lepší si blok čtvercového jeklu vložit do prázdného výkresu, zde blok přejmenovat a upravit parametry a rozměry profilu tak, aby odpovídala výrobní řadě obdélníkových jeklů.

Po přejmenování bloku si ho otevřeme v Block Editoru a v Parameters Manageru změníme pole Expression u parametru H tak, aby se H rovnalo nějakému číslu nikoliv W. ja15
V Block Properties Table doplníme pomocí ikony v horním menu parametr H a tabulku vyplníme výrobní řadou obdélníkových jeklů. Blok uložíme a tím máme nadefinovaný další blok obdélníkových jeklů. ja16
Podobný postup můžeme uplatnit, budeme-li definovat ocelový profil typu IPE. Jestliže jednou nadefinujeme Geometric a Dimensional Constraints, můžeme pak pomocí takového bloku pouze přepsáním hodnot v Block Properties Table definovat i profily HEB, HEA, HEM ... Všechny tyto profily charakterizují rozměry, které jsou v bloku definovány jako Dimensional Constraints. Je to šířka profilu (W), výška profilu (H), tloušťka pásnice (tf), tloušťka stojiny (tw) a poloměr zaoblení mezi stojinou a pásnicí  (r). ja17
rozměrová řada profilů IPE
ja18
rozměrová řada profilů HEB
ja19
rozměrová řada profilů HEM

Přestože jsme v předchozím příspěvku podrobně popsali vkládání Geometric Constraints do bloku profilu jeklu je nutno upozornit na to, že neexistuje pouze jeden správný způsob jak vazby mezi entitami profilu definovat. Srovnáte-li například Geometric Constraint I profilu, který jsme vytvořily a profilu, který je součástí instalace AutoCADu zjistíte, že jsou u obou profilů použity jiné Geometrical Costraints jiným způsobem, přesto jsou oba bloky stejně funkční.

ja20
námi definovaný I profil
  ja21
I profil, který je součástí instalace AutoCADu

Jan Panoch

úterý 20. listopadu 2012

Vytvoření katalogu ocelových prvků pomocí dynamického bloku 1. díl

V tomto příspěvku se po dlouhé době opět vracíme ke dynamickým blokům. Chceme-li vytvořit dynamický blok, který bude reprezentovat nějaký standardně vyráběný ocelový profil, je výhodné, aby celá výrobní řada tohoto profilu byla definována pomocí jediného bloku. Než byly do AutoCADu uvedeny Costraints, museli jsme používat Visibility nebo Lookup parametry. Využitím Constraints a Block Properties Table, se ale definování výrobní řady (například ocelového profilu) výrazně zjednodušuje. Dejme tomu. že potřebujeme vytvořit blok čtvercového ocelového uzavřeného profilu (jeklu), ve kterém bude definována celá výrobní řada.

Začneme tak, že si nakreslíme libovolný čtvercový jekl, převedeme ho na blok a přesuneme se do editoru bloků. Pokud jsme jekl nakreslili pomocí polyline, rozložíme entity tak, aby byl průřez složen s úseček a oblouků. Zaoblená část jeklu nesmí tvořit s rovnou částí jeden prvek. Průřez se tak bude skládat z osmi úseček nebo polyline a osmi oblouků. Při definování vazeb v tomto bloku nebudeme vůbec využívat Actions a Parameters, které se obyčejně při vytváření dynamických bloků používají, ale pouze Geometric a Dimensional Constraints. ja01
Všechny koncové body rovných částí a oblouků, které na sebe navzájem navazují sepneme pomocí Coincident Constraint. Coincident Constraint použijeme tak celkem 16x. ja02
Stejně tak 16 x použijeme Tangent Constraint, pomocí něhož zajistíme, aby rovné úseky byly vždy tečnou k zaoblení profilu.
Ke čtyřem vodorovným čarám připojíme Horizontal Constraint a ke čtyřem svislým čarám Vertical Constraint.
ja03
Nyní nadefinujeme, že všechny oblouky vnějšího pláště a všechny oblouky vnitřního pláště mají stejný poloměr. Použijeme Equal Constraints, vybereme levý spodní oblouk vnějšího zaoblení a poté levý horní oblouk vnějšího zaoblení. Znovu vybereme Equal Constraints, znovu vybereme levý spodní oblouk vnějšího zaoblení a poté pravý horní oblouk vnějšího zaoblení. Nakonec s levým spodním obloukem vnějšího zaoblení sesouhlasíme ještě pravý spodní oblouk vnějšího zaoblení. Stejně postupujeme i u oblouků vnitřního pláště, kdy s levým spodním obloukem vnitřního zaoblení postupně pomocí Equal Constraint sesouhlasíme všechny ostatní tři oblouky vnitřního zaoblení. ja04

Tím jsme přidali všechny Geometric  Constraints, které potřebujeme a dále budeme přidávat již jen Dimensional Constraints.

Nejprve přidáme dvakrát Linear Constraint (jeden vodorovný a druhý svislý), které budou řídit rozměr profilu. V Parameters Manageru, který můžeme spustit z ribbon menu ikonou fx, je přejmenujeme.  Protože se bude jednat o čtvercový profil, můžeme do pole Expression u parametru h napsat w. Výška se tak bude rovnat šířce.

ja05

Ke středům rovných částí profilu přichytíme 2x Horizontal a 2x Vertical Constrint Parameter, které budou řídit tloušťku stěny jeklu. Zde jsou tyto hodnoty pojmenované jako tw1 až tw4. Protože tloušťka stěny bude po celém obvodu stejná může do pole Expresson u tw2 až tw4 napsat tw1.

ja06
Jako poslední parametr přidáme k zaoblením v levém spodním rohu 2x Radius Constraint Parameter. Zde jsou pojmenované jako ri pro vnitřní rádius a re pro vnější rádius. Přitom poloměr ri se rovná tloušťce stěny tw1 a re = 1.5*tw1. Dle toho vyplníme pole Expression v Parameters Manageru. ja07
Nakonec z palety Actions vložíme do bloku Block Properties Table, ve které budeme definovat rozměrovou řadu jeklů. Poklepeme na ikonu vložené tabulky a objeví se dialog Block Properties Table. Prostřední ikonou v Block Properties Table vložíme do tabulky prví sloupec. Zde byl pro první sloupec použit název velikost. Pole Value můžeme nechat beze změny. V poli Type nesmíme ovšem zapomenout změnit typ patrametru na String. klepneme na OK a do tabulky se vloží první sloupec. ja08
Pomocí první ikony v Block Properties Table Adds properties Which appear... přidáme postupně parametr šířky a tloušťky stěny jeklu. Ostatní parametry přidávat nemusíme, protože jsou závislé právě na těchto dvou vložených. ja09
Tabulku vyplníme rozměry výrobní řady ocelového jeklu a dialog Block Properties Table ukončíme. ja10
Než opustíme Block Editor, provedeme ještě jednu kosmetickou úpravu. Vybereme parametr šířky průřezu a tloušťky stěny jeklu (tedy parametry, které jsou charakteristické pro jednotlivé velikosti profilů a nejsou počítány z ostatních parametrů) a v paletě Properties nastavíme Number of Grips na 0. Kdybychom tak neučinili, objevovaly by se u těchto parametrů uzly jejichž tažením bychom mohli měnit velikost profilu. Tak bychom mohli vytvořit profil, který se ve skutečnosti neválcuje. Proto budeme profil měnit jen vybráním rozměru ze zadané tabulky. ja11
Nyní se po vložení bloku zobrazuje na místě vložení Block Properties Table zobrazuje uzel, na který když klepneme vyroluje se první sloupec naší tabulky. Vybráním typu jeklu se samozřejmě změní i jeho velikost. ja12
Přehlednější způsob výběru při velkém množství položek je možný přímo z Block Properties Table. Tato tabulka se zobrazí po vybrání bloku v okně AutoCADu klepnutí na název tabulky v paletě Properties. ja13
  ja14

Jan Panoch

čtvrtek 1. listopadu 2012

Zábradlí s prosklenými výplněmi v AutoCADu Architecture

Nastavení zábradlí (Railing) v ACA je poměrně rozsáhlé a díky tomu nemusíme vytvářet jen klasická “žbrdlinková” zábradlí, ale například zábradlí s prosklenými výplněmi, jehož tvorba je popsána v následujícím příspěvku.
Prosklené výplně jsou u tohoto zábradlí tvořené pomocí komponenty Balusters.
Railing01
Na kartě Rail Locations nastavíme výšku zábradlí, tak jako obvykle. Ačkoliv Handrail / Guardrail ani Bottomrail u zábradlí nebudeme vidět, nastavíme jejich výškové úrovně, protože podle nich se nám bude řídit výška a spodní odsazení komponenty Balusters, pomocí které je vytvořena prosklená výplň. Railing02
V tomto případě bude maximální mezera mezi hranou prosklené výplně a sloupkem (Dynamic Post) 50 mm. Proto je na kartě Post Locations u Dynamic Post nastavena hodnota C – Maximum Center to Center Spacing na 750 mm a stejná hodnota E u Balusters na 650 mm Railing03
Na kartě Components nastavíme profil prvku tvořící výplň zábradlí na 8/650 mm. Teoreticky se tedy může u konkrétního zábradlí stát, že by na sebe jednotlivé výplně přímo navazovaly bez mezery. V takovém případě bychom pak upravili jednu z hodnot Maximum Center to Center Spacing. Railing04
Na kartě Materials Nastavíme pro výplň a ostatní komponenty požadovaný materiál. Railing05
Styl zábradlí uložíme a vytvoříme si nový 3D blok, který bude reprezentovat uchycení prosklených výplní ke sloupkům zábradlí. Rozteč jednotlivých uchycení odpovídá rozměru výplně. Vkládací bod je dole uprostřed. Když blok definujeme, musíme mít nastaven správný souřadný systém – tedy globální WCS a blok vytvořit tak, jak bude skutečně v zábradlí osazen. U komponent bloku zadáme přes paletu Properties i požadovaný materiál. V tomto případě byl definován materiál shodný s materiálem sloupků zábradlí. Railing08
Čelní pohled na blok

Railing09 
Axonometrický pohled na blok
Nyní se vrátíme do definice stylu zábradlí, klepneme na kartu Display Properties a dále se přesuneme na kartu Other. Pomocí tlačítka Add přidáme v předchozím kroku vytvořený blok, který jsem v tomto případě nazvali uchycení skla. V části Components zaškrtneme, že se blok bude vkládat k Balusters. V části Attach To zaškrtneme, že se bude vkládat ke všem výplním. Railing07
Na kartě Layer/Color/Linetype vypneme zobrazování komponent Guardrail, Handrail a Bottomrail. Railing06
Zábradlí je tedy definované, ovšem s takto nastaveným zábradlím se dostaneme do problémů, budeme-li ho chtít připojit ke schodišti. Výplně definované pomocí Balusters jsou totiž pravoúhlé a ne kosé, jaké potřebujeme u zábradlí na schodišti. Aby se nám zábradlí zobrazovalo tak, jako je na obrázku vpravo, musíme si založit nový styl a postupovat následovně:  Railing10
Nastavení Rail Locations může zůstat stejné jako u předchozího stylu. Railing19
Nastavení Post Locations se mírně liší, protože jsou požadovány delší prosklené výplně. Railing20
Na rozměru komponenty Baluster v tomto případě již nezáleží. Komponeta bude totiž kompletně nahrazena uživatelsky definovaným blokem, který se stane součásti stylu zábradlí. Railing21
Protože konkrétně schodiště na předchozím obrázku má krátké nástupní a výstupní rameno a dlouhé rameno střední, nadefinujeme si dva nové bloky, které nebudou reprezentovat již pouze uchycení skleněné výplně, ale rovnou celou výplň i s jejím uchycením. Velikost a sklon výplně je nutno zadat podle konkrétního schodiště. Vkládací bodu bloků definujeme stejně jako u předchozího zábradlí dole uprostřed. Railing17
Boční pohled na bloky

Railing16
Axonometrický pohled na bloky
Přesuneme se na kartu Other schovanou pod Display Properties v definici stylu zábradlí a pomocí tlačítka Add přidáme jednou velkou prosklenou výplň pro střední rameno schodiště a dvakrát malou prosklenou výplň pro krátké nástupní a výstupní rameno. Railing12
Nastavení bloku reprezentujícího velkou prosklenou výplň ve středním rameni schodiště.
Ačkoliv tato výplň je použita pouze ve druhém až pátém poli, můžeme klidně zaškrtnout, že se bude používat všude. Do krátkých polí se totiž nevejde a tak se tam stejně nezobrazí. Stejného výsledku bychom dosáhli i při zatržení možnosti Selection a zadáním 2 – 5. V části Componnets nesmíme opět zapomenout zatrhnout Balusters.
Railing13
Nastavení bloku reprezentujícího malou prosklenou výplň v nástupním rameni schodiště.
Protože se do nástupního ani výstupního ramene nevejde námi nastavená výplň (nastavení Maximum Center to Center Spacing), musíme blok připojit k prvnímu fixnímu sloupku. Správné umístění pak doladíme nastavením v části Insert Offset. Toto nastavení se bude lišit dle konkrétního schodiště a zábradlí.
Railing14
Nastavení bloku reprezentujícího malou prosklenou výplň ve výstupním rameni schodiště.
Toto nastavení je podobné předchozímu, jen v části Attach To zaškrtneme Last a nastavíme odpovídající Insertion Offset.
Railing15
Na kartě Layer/Color/Linetype pak oproti předchozímu stylu zábradlí vypneme i komponentu Balusters. Railing11
Jak je vidět z dialogu Custom Block, nabízí definice zábradlí jedno z možná nejrozsáhlejších nastavení s jakým se v ACA vůbec setkáme. Výše popsaný postup je jen jednou z možností, jak prosklené zábradlí vytvořit. Railing18

Jan Panoch

úterý 30. října 2012

Regapps

V AutoCADu a dalších produktech na něm založených se můžeme často setkat s neúměrně velkými výkresy jejichž chování je značně pomalé. Příčinou mohou být Regapps – Registrované aplikace. Níže uvádíme upravený a mírně doplněný překlad příspěvku Toma Stoeckela z blogu Without a Net, který se této problematice podrobně věnuje.

Regapp je zkratka pro registrované aplikace. Pomocí jednoho z Autodeskem poskytovaného programovacího rozhraní - APIs jako je AutoLISP nebo Object ARX, je možné připojit k objektům ve výkresu další data (XData). XData umožňují připojit k objektům různé typy dat, které se ukládají společně s výkresem. XData existují již velmi dlouho a jsou stále hojně využívána pro svou efektivitu (při malém množství dat) a pro snadné zapisování.

XData jsou seskupena pod názvem registrované aplikace. Aby mohla být XData identifikována, je jméno registrované aplikace vyžadováno AutoCADem nebo jiným produktem. Aby aplikace mohla číst a ukládat XDAta musí mít jedinečný identifikátor – Regapp ID. Takže jméno registrované aplikace nebo ID je identifikátor XDat, která jsou nebo byla připojena k objektům ve výkresu. Pokud chceme zjistit, jaké identifikátory registrovaných aplikací existují ve výkresu můžeme spustit následující LISP:

(defun c:ListRegappIDs (/ appname)
  (if (setq appname (tblnext "appid" T))
    (princ "\nRegistered application IDs in drawing:")
  )
  (while appname
    (princ (strcat "\n" (cdr (assoc 2 appname))))
    (setq appname (tblnext "appid"))
  )
  (princ)
)

Dokonce i když tento LISP spustíme v čistém výkresu uvidíme jako výsledek několik jmen registrovaných aplikací. Jakékoliv registrované aplikace jejichž jméno začíná ACAD například AcadAnnotative, označuje aplikace vytvořené Autodeskem. Autodesk doporučuje vývojářům, aby používali jména registrovaných aplikací s předponou, která je unikátní a specifická pro tvůrce aplikace. To pomůže zabránit případným kolizím s jmény jiných registrovaných aplikací a dále pomáhá identifikovat autora registrované aplikace. Toto doporučení není ale vždy respektováno a můžeme se setkat s identifikátory registrovaných aplikací, z nichž se nedá zjistit kdo a za jakým účelem je vytvořil. Autodesk vytváří jednoduše identifikovatelné Regapp IDs ale mnoho vývojářů třetích stran vytváří stovky a tisíce registrovaných aplikací pro uložení dat jejich aplikace a to často bez možnosti jasné identifikace odkud tato data pocházejí. Možná, že mnoho Regapp IDs, která vidíme jsou používány a referovány na objekty ve výkresu, ale možná že ne. Bohužel pokud jsou objekty s připojenými XDaty z výkresu smazány identifikátory registrovaných aplikací zůstávají v tabulce symbolů ID aplikací, dokud nejsou z výkresu manuálně smazány. A tím se dostáváme k podstatě problému.

Problém s nadbytkem identifikátorů registrovaných aplikací (Regapp IDs)

Nadbytek Regap IDs, které již nejsou referovány k žádnému objektu ve výkresu může mít na tento výkres negativní vliv. Nadbytečné Regap IDs mohou výrazně zvětšit velikost výkresu a zpomalit chování AutoCADu. Speciálně se to týká operací jako je otevírání, tisk, eTransmit a dalších, při kterých se musí prohledat celá databáze výkresu.

Jeden uživatel mi poslal výkres, který obsahoval 109 337 Regapp IDs a měl velikost 2.37 MB. Po vyčištění nepoužívaných Regapp IDs zůstalo ve výkresu jen 46 Regapp IDs a velikost výkresu klesla na 459 KB. Tento výkres tedy obsahoval přes 109 000 Regapp IDs, které již nebyly navázány na žádný objekt, které ale zároveň zabíraly 80% velikosti výkresu.

Aby byla celá problematika ještě horší, mohou se Regapp IDs šířit do dalších výkresů prostřednictvím externích referencí. Jestliže výkres s Regapp IDs připojíme do jiného výkresu jako externí referenci, jsou tyto identifikátory klonovány do hostitelského výkresu, kde trvale zabírají místo. dokonce i když externí referenci z výkresu odpojíme Regapp IDs v hostitelském výkresu zůstanou. Představme si veliký projekt na síti, kde do tisíce výkresů je jako externí reference vložen jeden společný výkres, který obsahuje veliké množství nereferovaných Regapp IDs. Po připojení xrefu do každého souboru budou všechny soubory obsahovat kopii Regapp IDs a to ať je ve výkresu potřebujeme nebo ne. Každý z výkresů tak může být poznamenán problémy s velikostí a rychlostí, které byly popsán výše.

První otázka, kterou často slýchám je “Proč Autodesk neumožňuje nastavit nějakou systémovou proměnnou tak, aby umožnil zablokovat načítání Regapp IDs, když se výkres otevírá?” Problém tohoto přístupu je v tom, že to není bezpečné. I když nejsou identifikátory registrovaných aplikací připojeny k žádným objektům může být jejich načítání oprávněné. Jejich nenačtení by mohlo mít důsledky jak pro AutoCAD tak pro aplikace třetích stran, která přes tyto identifikátory načítají svá data. Bylo by to jako zavést systémovou proměnnou, která by řídila, zda se budou načítat bloky z externích referencí, nebo externí reference jako celek. Jsou to potenciálně důležitá data, která nelze takto regulovat. Mohli bychom vyzkoušet takový způsob otevírání výkresů, při kterém by se načetly jen ty Regapp IDs, které jsou skutečně referovány. Tím by se ovšem výrazně prodloužila doba otevírání takového výkresu. Prozatím nejbezpečnější způsob jak tento problém vyřešit je manuální odstranění Regapp IDs.

Pro jednotlivé výkresy mohou být nereferované Regapp IDs vymazány použitím příkazu –PURGE (v cz verzi _-PURGE) a následným vybráním volby Regapp. Tato možnost není přístupní přes dialog Purge, který se objeví po zavolán příkazu PURGE ( v cz verzi _PURGE). Je nutno použít bezdialogovou formu příkazu.

Command: -purge

Enter type of unused objects to purge
[Blocks/Dimstyles/LAyers/LTypes/MAterials/MUltileaderstyles/Plotstyles/SHapes/te
xtSTyles/Mlinestyles/Tablestyles/Visualstyles/Regapps/Zero-length
geometry/Empty text objects/All]: R
Enter name(s) to purge <*>:
Verify each name to be purged? [Yes/No] <Y>: n
Deleting registered application "ACAD_DSTYLE_DIM_EXT1_LINETYPE".
Deleting registered application "ACAD_DSTYLE_DIM_EXT2_LINETYPE".
Deleting registered application "ACAD_DSTYLE_DIM_LINETYPE".
Deleting registered application "ACAD_EXEMPT_FROM_CAD_STANDARDS".
Deleting registered application "ACAD_MATERIAL_MAPPER".
Deleting registered application "ACAD_MLEADERVER".
Deleting registered application "AcadAnnoAV".
Deleting registered application "AcadAnnoPO".
Deleting registered application "ACAUTHENVIRON".
Deleting registered application "AEC_DWGVARSSETUP_DATA".
Deleting registered application "PalladioXData".
Deleting registered application "RAK".
12 registered applications deleted.

Command:

Tento postup je ale značně zdlouhavý v případě, že máme velké množství výkresů, protože musíme každý výkres zvlášť otevřít a spustit v něm příkaz na čištění. Navíc tímto způsobem nevyčistíme Regapp IDs u výkresů s připojenými externími referencemi, takže tyto výkresy musíme čistit samostatně. Pro rychlejší a důkladnější čištění výkresů od nereferovaných Regapp IDs můžeme použít Regapp ID Cleanup Utility. Pomocí tohoto nástroje je možné odebrat nereferované Regapp IDs z více výkresů nebo složek obsahujících výkresy a ze všech externích referencí, které jsou do výkresů připojeny a to vše v jedné operaci. Vzhledem k tomu, že nástroj běží mimo aplikaci AutoCADu, může vyčistit více výkresů za méně času než manuální čištění anebo čištění pomocí skriptu. Protože se Regapp IDs mohou šířit do dalších výkresů přes připojené externí reference, je tento nástroj užitečný především pro firmy, které získávají neznámé výkresy od konzultantů a dodavatelů a chtějí si zajistit čistotu těchto podkladů předtím než je umístí na svou síť pro potřebu ostatních.

Regapp ID Cleanup Utility můžete stáhnout zde.

překlad a úprava Jan Panoch

sobota 20. října 2012

Zamrznutí AutoCADu 2011 ihned po startu

Pokud se Vám stane, že po startu AutoCADu 2011 se Vám vůbec neobjeví v kreslícím okně nitkový kříž, nebo se s ním nedá hýbat a AutoCAD vůbec nelze ovládat, není nutno aplikaci restartovat. Stačí spustit správce úloh a na kartě procesy ukončit proces WSCommCntr2.exe AutoCAD se v tu chvíli normálně rozeběhne. Tento postup lze uplatnit i při stejné chybě v AutoCADu Architecture 2011 a možná i v ostatních produktech na AutoCADu 2011 založených. WSCommCntr2.exe je soubor náležející k infocentru Autodesku.

Jan Panoch

pondělí 15. října 2012

Rychlejší otevírání výkresů s oříznutými externími referencemi

V případě, že je ve výkresu vloženo více oříznutých externích referencí nebo více kopií jedné oříznuté reference, může být otevírání výkresu v AutoCADu nebo AutoCADu Architecture zdlouhavé. Řešením je pak přenastavení systémové proměnné INDEXCTL z 0 na hodnotu 3. Tato proměnná řídí, zda se indexy hladin a prostorové indexy vytvářejí a ukládají do výkresu.

hodnota proměnné INDEXCTL popis
   
0 žádné indexy se nevytvářejí
1 vytvářejí se indexy hladin
2 vytvářejí se indexy prostoru
3 vytvářejí se indexy prostoru a hladin

 

Při nastavení na vyšší hodnotu než je 0 je nutno počítat s mírně delší dobou ukládání výkresu.

Jan Panoch

středa 10. října 2012

Změna v definici čar v AutoCADu 2011

AutoCAD 2011 umožňuje oproti předchozím verzím použít v definici čar s textem parametr pro zarovnání textu tak, aby se ve výkresu nevyskytovala čára s textem čitelným shora nebo zleva. Změna spočívá v nahrazení parametru R (rotation) parametrem U (upright). Ostatní parametry S (scale) a X a Y (počátek vložení textu nebo tvaru) zůstávají beze změny.

Novou možnost si ukážeme na definici čáry reprezentující kabel vojenské ubytovací a stavební správy (VUSS).
Ve stávající definici se používal parametr R roven nule (nulová rotace textu). Jak je vidět na obrázku vpravo, text je u prostřední čáry vzhůru nohama a u horního oblouku je čitelný zleva.

*VUSS, - - - VUSS - - -
A,7,-3,7,-3,["VUSS",STANDARD,S=1.5,R=0.0,X=0,Y=-0.75],-10
ltype01
Nahradíme-li parametr R=0.0 parametrem U=0.0 zobrazuje se text tak, jako na obrázku vpravo.

*VUSS, - - - VUSS - - -
A,7,-3,7,-3,["VUSS",STANDARD,S=1.5,U=0.0,X=0,Y=-0.75],-10
ltype02

Parametr U nemusím mít jen nulovou hodnotu. Je možné s ním pracovat stejně, jako s parametrem R. Jen text zůstane vždy čitelný zprava. Na čáry v jejichž definici je použit parametr U nemá pak logicky vliv použití příkazu _REVERSE

*VUSS, - - - VUSS - - -
A,7,-3,7,-3,["VUSS",STANDARD,S=1.5,U=45,X=0,Y=-0.75],-10

ltype03

Jan Panoch