Složité typy čar mohou obsahovat začleněné tvary, které jsou uloženy v souborech tvaru. Složité typy čar mohou označovat inženýrské sítě, hranice, vrstevnice apod.
Podobně jako jednoduché typy čar jsou i složité typy čar kresleny dynamicky podle definice vrcholů (nebo koncových bodů) uživatelem. Tvary a textové objekty začleněné v čarách jsou vždy zobrazeny kompletní; nejsou nikdy zkráceny.
Popisy vzoru typů čar, které zahrnují objekty tvarů, se podobají popisům jednoduchých typů čar.
Syntaxe popisů tvarů v popisu typu čáry je následující:
[shape_name,shape_filename] or [shape_name,shape_filename,transform]
kde transformace není povinná a může se skládat ze série následujících prvků oddělených čárkami:
R=##Relativní otočení
A=## Absolutní otočení
U=## svislé otočení
S=## Měřítko
X=## X posun
Y=## Y posun
V této syntaxi ## znamená desetinné číslo se znaménkem (1, -17, 0,01 apod.), otočení je ve stupních a zbývající atributy ve výkresových jednotkách podle měřítka typu čáry. Písmena uvozující transformaci musí být bezprostředně následována rovnítkem a číslem.
Následující definice popisuje typ čáry s názvem CON1Č skládající se z opakujícího se vzoru čárka, mezera a vložený tvar CON1 ze souboru ep.shx. (Aby následující příklad fungoval, musí být soubor ep.shx uložen v cestě podpůrných souborů).
*CON1LINE, --- [CON1] --- [CON1] --- [CON1] A,1.0,-0.25,[CON1,ep.shx],-1.0
Mimo kódu v hranatých závorkách odpovídá definice popisu jednoduchého typu čáry.
Jak již bylo uvedeno dříve, pro popis vloženého tvaru může být použito až 6 polí. První dvě jsou povinná a závislá na umístění; další čtyři jsou volitelná a lze je řadit podle potřeby. Následující dva příklady ukazují různé položky v poli definic tvarů.
[CAP,ep.shx,S=2,R=10,X=0.5]
Výše uvedený kód vykreslí tvar CAP definovaný v souboru ep.shx s dvojnásobným měřítkem oproti měřítku typu čáry, tečným otočením o 10 stupňů proti směru hodinových ručiček a s posunem v ose X o 0,5 výkresových jednotek.
[DIP8,pd.shx,X=0.5,Y=1,R=0,S=1]
Výše uvedený kód vykreslí symbol DIP8 definovaný v souboru pd.shx s posunem v ose X o 0,5 výkresových jednotek, posunem v ose Y o jednu výkresovou jednotku nad čáru, s nulovým otočením a měřítkem rovným měřítku typu čáry.
Formát pro přidání tvaru k popisu typu čáry je následující:
[shape_name,shape_filename,scale,rotate,xoffset,yoffset]
Hodnoty měřítka, otočení a odsazení ve směru osy X a osy Y musí být vyjádřeny jako desetinná čísla se znaménkem, například 1, -17 a 0.01.
Název kresleného tvaru. Toto pole musí být zahrnuto. Pokud chybí, není definice platná. Pokud položka shape_name neexistuje v zadaném souboru tvaru, načte se typ čáry, který bude možné použít, ale bez vloženého tvaru.
Název kompilovaného souboru definic tvarů (SHX). Pokud chybí, není definice platná. Pokud není pro položku shape_filename zadaná cesta, budou pro daný soubor prohledány podpůrné cesty příslušné aplikace. Pokud je položka shape_filename plně kvalifikovaná a v daném umístění nebyla nalezena, bude cesta odebrána a pro daný soubor budou prohledány podpůrné cesty příslušné aplikace. Pokud soubor není nalezen, načte se typ čáry, který je možné použít, ale bez vloženého tvaru.
Faktor měřítka, který bude použit pro tvar a kterým se má násobit interně definované měřítko příslušného tvaru. Zadaný faktor měřítka musí mít předponu S=, například S=.5 určuje faktor měřítka 0.5. Pokud má interně definované měřítko tvaru hodnotu 0, použije se jako měřítko zadané nastavení S= hodnota bez násobení.
Úhel otočení tvaru, který má být zobrazen v typu čáry. Úhel otočení musí mít předponu U=, R= nebo A=.
K hodnotě může být připojen symbol
Posun tvaru ve směru osy X typu čáry vypočítaný od konce vrcholu definice typu čáry. Zadané odsazení musí mít předponu X=, například X=.1 označuje odsazení 0.1. Pokud je odsazení vynecháno nebo má hodnotu 0, tvar se vytvoří bez odsazení. Použijte toto pole pro popis plných čar s vloženými tvary. Tato hodnota není ovlivněna měřítkem definovaným výrazem S=hodnota.
Posun tvaru ve směru osy Y typu čáry vypočítaný od konce vrcholu definice typu čáry. Zadané odsazení musí mít předponu Y=, například Y=.1 označuje odsazení 0.1. Pokud je odsazení vynecháno nebo má hodnotu 0, tvar se vytvoří bez odsazení. Použijte toto pole pro popis plných čar s vloženými tvary. Tato hodnota není ovlivněna měřítkem definovaným výrazem S=hodnota.