Symbole w niestandardowych rodzajach linii

Złożone rodzaje linii mogą zawierać osadzone symbole zapisywane w plikach symboli. Złożone rodzaje linii mogą oznaczać media, obwiednie, kontury itp.

Podobnie jak w przypadku prostych rodzajów linii, złożone linie rysowane są dynamicznie, w miarę podawania przez użytkownika kolejnych wierzchołków. Symbole i obiekty tekstowe osadzone na liniach są zawsze wyświetlane w całości; nigdy nie są ucinane.

Deskryptory wzoru rodzaju linii, zawierające obiekty symboli, są podobne do deskryptorów dla prostych rodzajów linii.

Składnia deskryptorów symboli w opisie rodzaju linii jest następująca:

[shape_name,shape_filename] or [shape_name,shape_filename,transform]

gdzie element przekształcenie jest opcjonalny i może być ciągiem następujących elementów (każdy poprzedzony przecinkiem):

R=## Względny obrót

A=## Obrót bezwzględny

U=## Obrót pionowy

S=## Skala

X=## Przesunięcie X

Y=## Przesunięcie Y

W tej składni ## jest liczbą dziesiętną ze znakiem (1, -17, 0.01 itp.), kąt obrotu jest podawany w stopniach, a pozostałe opcje wyrażone są w jednostkach rysunku, przeskalowanych zgodnie ze skalą rodzaju linii. Za literami oznaczającymi przekształcenie (gdy jest ono stosowane) musi znajdować się znak równości i liczba.

Podana niżej definicja rodzaju linii o nazwie CON1LINE złożona jest z powtarzającego się wzoru segmentu liniowego, spacji i osadzonego symbolu CON1 z pliku ep.shx. (Dla poprawności tego przykładu plik ep.shx musi znajdować się w odpowiedniej ścieżce dostępu).

*CON1LINE, --- [CON1] --- [CON1] --- [CON1]
A,1.0,-0.25,[CON1,ep.shx],-1.0

Z wyjątkiem kodu ujętego w nawiasy kwadratowe wszystkie elementy są zgodne z definicją prostego rodzaju linii.

Jak opisano poprzednio, do zdefiniowania symbolu jako części rodzaju linii można łącznie wykorzystać sześć pól. Pierwsze dwa pola są wymagane, a ich kolejność jest ustalona; pozostałe cztery pola są opcjonalne i mogą być umieszczane w dowolnej kolejności. Poniżej przedstawiono dwa różne przykłady pól definicji symbolu.

[CAP,ep.shx,S=2,R=10,X=0.5]

W przykładzie tym rysowany jest symbol CAP zdefiniowany w pliku symboli ep.shx ze współczynnikiem skali dwukrotnie większym od współczynnika skali rodzaju linii, obrotem o 10 stopni w kierunku przeciwnym do ruchu wskazówek zegara względem stycznej, oraz przesunięciem wstępnym, przed przetworzeniem symbolu, w kierunku X o 0.5 jednostki rysunku.

[DIP8,pd.shx,X=0.5,Y=1,R=0,S=1]

Powyższy przykład przetwarza symbol DIP8 zdefiniowany w pliku symboli pd.shx z przesunięciem wstępnym przed przetwarzaniem symbolu o 0.5 jednostki rysunku w kierunku X i przesunięciem Y o 1 jednostkę powyżej rodzaju linii, ze skalą równą jednostkowej skali rodzaju linii i kątem obrotu równym 0.

Format deskryptora znaku

Format służący do dodawania kształtu w opisie rodzaju linii jest następujący:

[shape_name,shape_filename,scale,rotate,xoffset,yoffset]

Wartości: skala, obrót, odsunięcie X i odsunięcie Y muszą być wyrażone jako liczby dziesiętne ze znakiem, na przykład 1, -17 lub 0,01.

Nazwa kształtu

Nazwa symbolu do narysowania. To pole jest wymagane. W przypadku jego pominięcia rodzaj linii nie zostanie zdefiniowany. Jeśli pole nazwa_kształtu nie występuje w podanym pliku kształtu, rodzaj linii jest ładowany i można go używać bez osadzonego kształtu.

Nazwa pliku kształtu

Nazwa skompilowanego pliku definicji symboli (SHX). W przypadku jego pominięcia rodzaj linii nie zostanie zdefiniowany. Jeśli w polu nazwa_pliku_kształtu nie podano ścieżki dostępu, wówczas przeszukiwane są ścieżki dodatkowe programu. Jeśli w polu nazwa_pliku_kształtu podano pełną ścieżkę dostępu, a plik nie został znaleziony w podanym miejscu, wówczas jest ona pomijana i przeszukiwane są ścieżki dodatkowe programu. W przypadku nieznalezienia pliku zostanie wczytany rodzaj linii, którego można użyć, ale bez osadzonego kształtu.

Skala

Współczynnik skali, jaki ma być używany w odniesieniu do kształtu, czyli przez który mnożona jest zdefiniowana wewnętrznie skala. Współczynnik skali musi być poprzedzony przedrostkiem S=, na przykład S=0,5 oznacza współczynnik skali 0,5. Jeśli wewnętrznie zdefiniowana skala kształtu jest równa 0, jako skala wykorzystywana jest sama wartość S= .

Obrót

Kąt obrotu kształtu, który będzie wyświetlany w rodzaju linii. Kąt obrotu musi być poprzedzony przedrostkiem U=, R= lub A=.

  • U= określa tekst zorientowany pionowo lub tekst czytelny.
  • R= określa obrót względny lub obrót względem stycznej w stosunku do linii.
  • A= określa obrót bezwzględny tekstu względem jego początku; innymi słowy, wszystkie teksty mają ten sam kąt obrotu niezależnie od ich położenia względem linii.

Wartość może zostać uzupełniona o przyrostek

  • d dla stopni (domyślnie wartość jest podawana w stopniach)
  • r dla radianów
  • g dla gradów
Uwaga: Rysunki zawierające rodzaje linii starszego typu, w których nie jest używany znacznik obrotu (orientacji pionowej) U, można zaktualizować do najnowszej definicji rodzaju linii przez ponowne wczytanie rodzaju linii z plików LIN. Niestandardowe rodzaje linii można zaktualizować przez zmianę znacznika R (obrotu) na znacznik U (orientacji pionowej) przed ponownym wczytaniem definicji rodzaju linii.
Odsunięcie X

Określa przesunięcie symbolu w kierunku osi X rodzaju linii, liczone od końcowego wierzchołka w definicji rodzaju linii. Odsunięcie musi być poprzedzone przedrostkiem X=, na przykład X=0,1 oznacza odsunięcie 0,1. Jeśli odsunięcie jest pominięte lub równe 0, wówczas kształt rysowany jest bez przesunięcia. Pole to należy dołączyć wtedy, gdy potrzebna jest linia ciągła z symbolami. Wartość ta nie jest skalowana o współczynnik skali zdefiniowany przez S=wartość.

Odsunięcie Y

Określa przesunięcie symbolu w kierunku osi Y rodzaju linii, liczone od końcowego wierzchołka w definicji rodzaju linii. Odsunięcie musi być poprzedzone przedrostkiem Y=, na przykład Y=0,1 oznacza odsunięcie 0,1. Jeśli odsunięcie jest pominięte lub równe 0, wówczas kształt rysowany jest bez przesunięcia. Pole to należy dołączyć wtedy, gdy potrzebna jest linia ciągła z symbolami. Wartość ta nie jest skalowana o współczynnik skali zdefiniowany przez S=wartość.