Sítě

V AutoCADu se vyskytuje na dvou místech téměř totožný příkaz – síť. Jednou v seznamu 3D ploch (viz kapitola Předdefinovaná tělesa) a podruhé jako příkaz 3DSíť v menu Kresli /Plochy nebo stejnojmenné nástrojové liště. Dalčí možností je zadat příkaz OBSíť přímé z příkazového řádku. Jedná se o tři příkazy generující síť z 3D ploch:

Síť (ai_mesh)

dostaneme v dialogovém okně s předdefinovanými tělesy a vyžaduje po nás čtyři vrcholy sítě a potom počet dílků v obou směrech. Jedná se vlastně o hraniční plochu, která má všechny čtyři hranice úsečky.

OBSíť (_pFace)

V tomto příkazu nejprve zadáváte všechny vrcholy sítě a potom určujete (čísly vrcholů), které vrcholy patří do které plochy. Příkaz vyžaduje velkou pozornost a pro větší množství vrcholů mi připadá naprosto nepoužitelný.

3DSíť (3Dmesh)

je mnohem užitečnější. Umožňuje zadávat síť tak, že budeme zadávat její vrcholy. Nejprve budeme vyzváni k zadání počtu vrcholů (hustotě sítě) v jednom a druhém směru. Potom postupně zadáváme jednotlivé vrcholy sítě, po řadách jeden za druhým. K tomu je většinou nutné, mít předem vrcholy nakreslené v AutoCADu, aby bylo za co chytat. Při větším množství bodů je téměř nemožné, abychom bez chyby vrcholy sítě zadali, ať už souřadnicemu nebo přes uchopování.

Jediným rozumným řešením v této situaci je, mít souřadnice ve správném pořadí v nějakém textovém souboru a ty potom dostat do AutoCADu pomocí vlastní lispovské procedury (nového příkazu). Lisp sice není součástí tohoto učebního textu, ale přesto zde uvedeme způsob, jak vytvořit plochu ze spočítaných bodů pomocí 3D sítě.

  1. Nejprve musíme mít spočítány vrcholy sítě a připraveny v textovém souboru, který obsahuje na prvním řádku počet vrcholů ve směru osy x, na druhém řádku počet vrcholů ve směru osy y a na dalších řádcích vždy souřadnice x, y, z jednoho vrcholu. Souřadnice jsou odděleny čárkou a pokud jsou čísla desetinná, musí mít desetinnou tečku. Pořadí musí odpovídat pořadí na síti.

    Pro uvedený příklad byly použity hodnoty rotačního paraboloidu, spočítané v Excelu. V Excelu byla data spočítána v tabulce, kterou bylo nutno převést do tvaru potřebného pro AutoCAD, tj. jeden bod na řádek. Z excelu je nejvýhodnější data vyexportovat (uložit jako...) ve formátu .csv, který data oddělí středníky. V libovolném textovém editoru potom nahradíme desetinné čárky tečkou a středník čárkou (v tomto pořadí), a tím dostaneme soubor vhodný pro zpracování v AutoCADu. Uložíme ho pod název data_mesh.txt.

    Původní tabulka funkce dvou proměnných v Excelu Data v Excelu upravená pro export Data vyexportovaná z Excelu Data upravená pro AutoCAD
  2. Připravíme si funkci v lispu podle následujícího vzoru. Program napíšeme v libovolném textovém editoru (nebo zkopírujeme text z této stránky) a uložíme pod název např. mesh.lsp.

    (defun c:kresli_3Dmesh ()
    
    (setq jm_souboru (getstring "Zadej název souboru s body: ")) 	;zadani nazvu souboru
    (setq s (open jm_souboru "r"))					;otevreni souboru pro cteni
    
    (setq m (atoi (read-line s)))					;nacteni m
    (setq n (atoi (read-line s)))					;nacteni n
    (command "_3dmesh" m n)						;zacatek prikazu 3dmesh - zadani m a n
    (setq i 1)
    (while (<= i m)							;pocitany cyklus 
    	(setq j 1)	
    	(while (<= j n)						;pocitany cyklus 
    		(setq souradnice_bodu (read-line s))		;precteni dalsiho radku (tj. bodu) ze souboru 
    		(command souradnice_bodu)			;pokracovani prikazu – zadani dalsiho bodu	
    		(setq j (+ j 1))
    	)
    	(setq i (+ i 1))
    )
    (close s)							;zavreni souboru
    )
    
  3. Načteme nový příkaz do AutoCADu — Nástroje /Načíst aplikaci a v zobrazeném okně najdeme soubor mesh.lsp.

  4. Z příkazového řádku spustíte příkaz kresli_3Dmesh definovaný ve skriptu, který po vás bude chtít název souboru s daty. Pokud máte soubor s daty ve stejné složce jako máte uložený výkres, stačí pouze jméno souboru. Jestliže je soubor s daty jinde, je třeba zadat celou cestu.
    Poznámka: Pozor na to, pokud v názvu souboru jsou dlouhé názvy s mezerami. V tom případě musíte název souboru dát do uvozovek ("), jinak bude mezera chápána jako enter (odeslání příkazu).

  5. Teď by měla být plocha vykreslena. Problémy by už mohly být pouze s velikostí a viditelností ploch na obrazovce, ale to musí zachránit příkaz ZOOM s volbou Vše.
    A takto dopadne výsledek našeho snažení (ve dvou různých pohledech):