ú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

pondělí 1. října 2012

Project Butterfly – nyní AutoCAD WS

Project Butterfly (PB) je technologická ukázka Autodesku umožňující uživatelům AutoCADu editovat a spolupracovat na tvorbě DWG výkresů přes webové rozhraní. Klientům nemajícím nainstalovaný žádný produkt Autodesku pak umožní výkresy prohlížet, jednoduše editovat, vpisovat do nich poznámky, odměřovat délky a plochy, kreslit nové objekty, editovat ty stávající a další.

V Project Butterfly lze pozvat kolegy z projekčního týmu na online konferenci, kde všichni zúčastnění mohou nad výkresy diskutovat a editovat je. Přitom tato editace se všem ostatním zobrazí na jejich počítačích. Případně lze procházet komentáře k výkresům a změny podle nich provádět v kdykoliv jindy. Project Butterfly lze tak využít jak ke spolupráci s projekčními kolegy tak i se stavebníky a dodavateli.

Project Butterfly se vyvíjí a k testování je dostupný již delší čas. Poměrně často prochází změnami a je obohacován o nové funkce. V poslední verzi dosáhl již takové úrovně, že ho rozhodně stojí za to vyzkoušet i v praxi. Jeho tvůrci sami přiznávají, že inspirací pro Project Butterfly byly aplikace jako Google Docs.

pb254

Pomocí Project Butterfly lze sdílet výkresy s ostatními, zobrazovat a editovat DWG výkresy aniž by bylo nutné stahovat a instalovat další software. K práci v Project Butterfly postačí webový prohlížeč.
Do Project Butterfly má přístup kdokoliv a to i když nemá nainstalovaný AutoCAD a nemá Project Butterfly účet.
Pro ukládání výkresů na Project Butterfly lze použít přihlašovací údaje k Autodesk Subscription, Autodesk Labs nebo si lze zřídit účet samostatně. Přihlašovací stránka je na adrese: http://butterfly.autodesk.com/
pb01
Po přihlášení se na první stránce Home zobrazují nové a naposled editované výkresy. Po prvním přihlášení se zobrazí ukázkové výkresy, které lze smazat a nahrát výkresy vlastní. Jak je vidět z obrázku vpravo má PB zatím problémy s některými Českými znaky. pb02
Na druhé kartě Drawings vidíme všechny nahrané výkresy v zobrazení, jaké si vybereme a se strukturou adresářů a podadresářů. Výkresy lze přesouvat mezi adresáři stejně jako v průzkumníku Windows přetažením ikony výkresu. Tato karta má v podstatě funkci správce souborů. pb03
Poklepáním na některý z výkresů se dostaneme na třetí kartu Editor. Zde vidíme zjednodušené okno AutoCADu s osekaným Ribbon menu. Panoramování, Zoomování, zapínání a vypínání uchopovacích bodů a další se v editoru ovládá stejně jako v instalovaném AutoCADu. pb04
Obdobně jako v klasickém AutoCADu lze i v PB používat pro volání příkazů zkratky – shotcuts. Nelze ovšem používat zkratky vlastní definované v acad.pgp souboru. Další rozdíl spočívá v tom, že po napsání zkratky ji není nutno potvrzovat mezerníkem nebo nebo klávesou enter. Příkaz se začne vykonávat ihned po dopsání zkratky. Prozatím jsou v Project Butterfly definovány tyto zkratky příkazů:

Move: m / move
Rotate: ro / rotate
Scale: sc / scale
Mirror: mi / mirror
Offset: o / offset
Trim: tr / trim
Edit text: tedit
Explode: x / explode
Match Properties: ma / matchprop

Line: l / line
Polyline: pl / pline
Circle: c / circle
Rectangle: rec / rectangle
Ellipse: el / ellipse
Cloud: revcloud
Leader: le / leader
Arc: a / arc
Insert block: i / insert
Insert text: dt / dtext / text / mt / t
Linear dimension: dimlin / dimlinear
Aligned dimension: dal / dimali
Angular dimension: dimang / dimangular

Copy: cp / copy / co / CTRL+C
Cut: cutclip / CTRL+X
Paste: pasteclip / CTRL+V
Undo: u / undo / CTRL+Z
Redo: redo / CTRL+Y
Erase: e / erase / DEL key
Zoom window: z / zoom
Pan: p / pan
Ortho mode: ortho / F8
Snap mode: snap / os / F3
Line weight mode: F4

Color: col / color
Layers: la / layer
Linetype: lt / linetype

Layouts: lo / layout
Xrefs: er / xref

Funkce obsažené v ribbon menu fungují stejně nebo velmi podobně jako v instalovaném AutoCADu, jen o trochu těžkopádněji, což je ovšem pochopitelné. Například výběr více objektů pro posun, kopírování, zrcadlení… je v současné verzi omezen na 30 entit. V klasickém AutoCADu se ale naopak nesetkáme například s funkcí Select View Mode. Tato funkce nabízí po nahrání *.ctb stylu vykreslování na PB možnost zobrazit entit tak, jak budou vypadat při tisku, aniž bychom museli nastavovat tiskárnu, papír a pod. Výkres tedy není nutno tisknout do PDF/DWF formátu, abychom viděli jak bude vypadat při tisku.
*.ctb soubor se automaticky nahraje do složky Stylesheets, která se sama vytvoří při nahrání prvního *.ctb souboru.
Kromě *.ctb souborů lze na PB nahrát i vlastní fonty *.shx. Vlastní písma se tak díky práci přes webový prohlížeč zobrazují všem uživatelům správně. Bohužel vlastní typy čar s *.shx soubory se zatím správně nezobrazují. *.shx soubory se automaticky nahrají do složky Fonts.
pb05
V editoru výkresů lze mít stejně jako v normálním AutoCADu otevřeno více výkresů najednou, do výkresů lze pomocí funkce Insert vkládat bloky a dokonce zde existuje i editor bloků, který se otevře při poklepání na blok. pb06
pb07 pb08

 

Externí reference

Project Butterfly zvládá i práci z externími referencemi a to nejen typu DWG. Na vedlejším obrázku je DWG situace s podloženými podklady od správců sítí ve formátu *.jpg. pb09
Na PB je pouze potřeba nahrát i příslušné externí reference. pb10
Jestliže namísto DWG souboru poklepeme na soubor *.jpg, otevře se tento soubor v prohlížeči stejně jako soubor DWG.
pb12
pb11

 

Download

Upravené nebo nově nahrané výkresy mohou ostatní uživatelé z PB stáhnout pomocí ikony Download, která je obsažena v ribbon menu editačního okna. Díky PB již není nutno pamatovat si, kdo umí číst jakou verzi DWG formátu. Funkce stažení výkresu umožňuje současně export  do několika verzí DWG formátu, do DXF a do rastrových formátů. Každý si tak může stáhnout výkres v tom formátu, jaký mu vyhovuje. pb13
Stejnou funkci obsahuje též okno Drawings, kde lze vybrat pro stažení více souborů najednou. V takovém případě je výhodné použít možnost exportu do zip souboru. pb14

 

Timeline

Jak bylo zmíněno výše, PB je vhodný pro spolupráci s projekčními kolegy, s dodavatelem stavby i s investorem. Z principu práce v takovém týmu vyplívá, že se výkresy často doplňují a procházejí změnami.  Rozsáhlejší změny je pohodlnější provést v instalovaném AutoCADu a výkres znovu odeslat na PB.
Pokud pro vkládání nových upravených verzí výkresů použijeme funkci Upload Version na kartě Timeline, bude si PB pamatovat nejen provedené změny, ale i předchozí verze výkresů. Jestliže použijeme funkci Upload Version, objeví se na Timeline nový bod s datem výkresu. Najetím myši na některý z bodů, ze zobrazí komentář (jak je vidět zatím je lepší nepoužívat diaktiritiku) a klepnutím na bod se otevře výkres v jedné z předchozích verzí.
pb16
Zelená šipka nad bodem ukazuje na právě zobrazovanou verzi výkresu. Snadno lze tak porovnávat či kontrolovat provedené změny. pb17
V případě že jsou provedeny změny v nějakém výkresu uloženém nebo znovu vloženém na PB a tvůrce změn ostatní upozorní, přijde vybraným kolegům mail. Pokud se změna týká jen části výkresu, lze pohled na něj oříznout pomocí funkce Crop. Ostatní pak z výkresu vidí jen vybranou část.
pb22
Email, který vidí příjemce
pb23
  A toto vidí příjemce po klepnutí na odkaz v emailu.
 pb24

 

Google Maps

Poslední zajímavou funkcí o které bych se rád zmínil a která odlišuje PB od intalované verze AutoCADu, je propojení s Google Maps. Na kartě View v editoru výkresu najdeme funkce pro vložení a přizpůsobení mapy, kterou podložíme třeba výkres situace. U mapy lze volit rozličná zobrazení nebo ji pomocí ikony Google Maps zapínat a vypínat. pb19
Pro správnou velikost, natočení a umístění mapy se použijí příkazy dostupné po klepnutí na ikonu Place Drawing. pb20

 

Project Butterfly obsahuje spoustu dalších funkcí. V tomto příspěvku jsem se pokusil upozornit především na ty, které nenajdeme v instalované verzi AutoCADu.

Jan Panoch