Proste niestandardowe rodzaje linii

Można zdefiniować niestandardowy rodzaj linii składający się z różnych wzorów kropek, odstępów i kresek poprzez utworzenie lub edycję pliku definicji rodzaju linii (LIN) za pomocą edytora tekstu. Po zdefiniowaniu niestandardowego rodzaju linii można go wczytywać i używać w dowolnym pliku rysunku.

Każda definicja rodzaju linii zajmuje dwa wiersze w pliku rodzajów linii. Pierwszy wiersz zawiera nazwę rodzaju linii oraz opcjonalny opis. W drugim wierszu zapisany jest kod definiujący rzeczywisty wzór rodzaju linii.

Drugi wiersz musi się zaczynać od litery A (wyrównanie), po której następuje lista deskryptorów wzoru definiujących długości niezapisywane (spacje), długości zapisywane (kreski) oraz kropki. W pliku LIN można zamieszczać komentarze przez rozpoczynanie wiersza znakiem średnika (;).

Format definicji rodzaju linii

Format definicji rodzaju linii to

*linetype_name,description 
A,descriptor1,descriptor2, ...

Na przykład, rodzaj linii o nazwie DASHDOT zdefiniowany jest jako

*DASHDOT,Dash dot __ . __ . __ . __ . __ . __ . __ . __ 
A,.5,-.25,0,-.25

Przykład ten wskazuje na powtarzający się wzór zaczynający się od kreski o długości 0.5 jednostki rysunku, po którym następuje spacja o długości 0.25 jednostki rysunku, kropka i kolejna spacja o długości 0.25 jednostki rysunku. Wzór powtarza się dla całej długości linii i jest zakończony kreską o długości 0.5 jednostki rysunku. Rodzaj linii zostanie wyświetlony w sposób przedstawiony poniżej.

__ . __ . __ . __ . __ . __ . __ . __

Plik LIN musi być zapisany w formacie ASCII i mieć rozszerzenie.lin.

Nazwa rodzaju linii

Pole nazwy rodzaju linii musi rozpoczynać się gwiazdką (*). Powinno zawierać niepowtarzalną, opisową nazwę rodzaju linii.

Opis

Pokazuje opis rodzaju linii, aby ułatwić wizualizację rodzaju linii podczas edycji pliku LIN. Opis jest również wyświetlany w Menedżerze rodzajów linii i w oknie dialogowym Wczytaj lub uaktualnij rodzaje linii.

Opis ten jest opcjonalny i może zawierać:

  • Prostą reprezentację wzoru rodzaju linii przedstawioną za pomocą tekstu ASCII
  • Rozszerzony opis rodzaju linii
  • Komentarz, na przykład: „Używaj tego rodzaju linii dla linii ukrytych”

W przypadku rezygnacji z opisu nie należy wstawiać przecinka po nazwie rodzaju linii. Opis nie może być dłuższy niż 47 znaków.

Pole wyrównania (A)

Pole wyrównania określa operację wyrównania wzoru w punktach końcowych pojedynczych linii, okręgów i łuków. Program obsługuje jedynie wyrównanie typu A, które gwarantuje zakończenie linii i łuków kreską. Typ wyrównania A określa się przez wprowadzenie litery A w polu wyrównania.

Przykładowo tworzony jest rodzaj linii o nazwie CENTRAL, który ma postać powtarzającej się sekwencji kreska-kropka i jest używany jako linia środkowa. Program dopasowuje sekwencję kreska-kropka na poszczególnych liniach w taki sposób, że kreski zbiegają się z punktami końcowymi linii. Wzór dopasowuje się do linii tak, że przynajmniej połowa pierwszej kreski zaczyna i kończy linię. Jeśli zachodzi taka potrzeba, pierwsza i ostatnia kreska zostają wydłużone. Jeśli linia jest zbyt krótka, aby zmieściła się w niej jedna sekwencja wzoru kreska-kropka, program rysuje linię ciągłą między punktami końcowymi. Również w przypadku łuków wzór jest dopasowywany w taki sposób, że przy punktach końcowych rysowane są kreski. W przypadku okręgów i innych obiektów, które nie mają punktów końcowych, sekwencja kreska-kropka jest dopasowywana, aby zapewnić odpowiedni sposób wyświetlania.

Deskryptory wzorów
Każde pole deskryptora wzoru określa długość segmentów tworzących dany rodzaj linii. Są one oddzielone przecinkami (nie są dozwolone spacje):
  • Dodatnia liczba dziesiętna określa długość segmentu zapisywanego (kreska).
  • Ujemna liczba dziesiętna określa długość segmentu niezapisywanego (spacja).
  • Segment o długości zerowej jest rysowany jako kropka.

Maksymalnie można wprowadzić do 12 specyfikacji długości kreski, o ile mieszczą się w jednym 80-znakowym wierszu w pliku LIN. Wymagane jest tylko jedno kompletne powtórzenie wzoru rodzaju linii zdefiniowanego w opisie wzoru. Podczas rysowania danego rodzaju linii program używa pierwszego deskryptora wzoru dla początkowej i końcowej kreski. Między punktami początkowym i końcowym podane specyfikacje rysowane są sekwencyjnie, począwszy od drugiej specyfikacji, oraz w razie potrzeby rozpoczynając ponownie od pierwszej.

Wyrównanie typu A wymaga, aby długość pierwszej kreski wynosiła 0 lub więcej (linia zapisana). Długość drugiej kreski powinna być mniejsza od 0, jeśli potrzebny jest segment niezapisany, i większa od 0, jeśli tworzony jest ciągły rodzaj linii. Dla wyrównania typu A wymagane są przynajmniej dwie specyfikacje kreski.