11. Kreskowanie i wypełnianie wzorem

Normy rysunkowe przewidują kreskowanie lub wypełnianie określonym wzorcem zamkniętych obszarów. Wzór kreskowanie pozwala na określenie materiału z którego wykonany jest dany element, nadanie odpowiedniej faktury elementom architektonicznym, pokazanie cieni itp.
Program AlfaCAD oferuje funkcję kreskowania i wypełniania wzorcem obszarów wraz z możliwością definiowania własnych wzorów.

11.1. Wiadomości o wzorach kreskowania

Każdy wzór kreskowania stanowi kompozycję odcinków o określonej długości i kącie nachylenia. Odcinki mogą być rysowane linią ciągłą lub liniami składającymi się z kresek i punktów. Zdefiniowany wzór kreskowania powtarzany jest wielokrotnie tworząc blok wypełniający dokładnie wskazany obszar.

Odcinki tworzące wzór kreskowania program automatycznie grupuje w blok. Pozwala to na usunięcie całego wzoru kreskowania (np. w przypadku błędnie wybranego wzorca, skali itp. lub błędnie określonego obszaru kreskowania).

Blok wzoru kreskowania podlega tym samym funkcjom edycyjnym jak inne bloki tworzone przez użytkownika (przy pomocy funkcji /Blok//Grupuj/ lub /Blok//Eksport/). W bloku tym można więc (bez potrzeby rozbijania go na prymitywy) wycinać fragmenty linii, obcinać linie lub je wydłużać itd.

Jeżeli istnieje potrzeba usunięcia fragmentu bloku wypełnienia, można to wykonać po uprzednim rozbiciu bloku. Bloki wypełnienia są blokami o nieokreślonym typie, nie są więc dopisywane do listy bloków dostępnych w funkcji /Blok//Lista/.
Mimo iż wzór kreskowania może składać się z linii i punktów, blok generowany jest na warstwie bieżącej zawsze przy pomocy linii ciągłych bieżącego koloru i grubości.

11.2. Definiowanie granic obszaru

Zakreskowaniu może podlegać obszar zamknięty, którego granice wyznaczają odcinki, łuki, okręgi, polilinie, boki wielokątów, krawędzie obszarów i śladów, fikcyjne granice tekstów.

Wskazywanie obiektów ograniczających obszar kreskowania odbywa się w sposób identyczny jak wskazywanie obiektów w funkcjach edycyjnych np. /Przesuń/, /Kopiuj/ itd.

Obiekty tworzące granice kreskowania mogą stykać się w punktach końcowych lub przecinać się. Punkty przecięć obiektów wyznaczają wierzchołki dowolnego wielokąta nieforemnego (wypukłego lub wklęsłego).

Ograniczony obszar nie musi być jednospójny, wewnątrz zamkniętego obszaru mogą więc znajdować się inne obszary zamknięte tworzące granice wewnętrzne obszaru kreskowania.

Obszar zamknięty może być ograniczony maksymalnie 100 elementami podstawowymi lub ich fragmentami. W przypadku bardzo złożonych struktur, obszar może być dzielony i wypełniany fragmentami.

Dowolny tekst może stanowić obiekt ograniczający obszar, wyznacza on pole utworzone przez wyimaginowane krawędzie tekstu ("ramkę"). Jeżeli tekst (a właściwie jego ramka) leży wewnątrz innego obszaru zamkniętego, wskazanego jako obszar właściwy i tekst ten zaznaczony zostanie jako obiekt ograniczający, tekst zostanie "oblany" wzorem kreskowania, pozostając czytelnym.

11.3. Punkt wewnętrzny obszaru zamkniętego

Po wskazaniu obiektów ograniczających obszar kreskowania, należy wskazać punkt wewnętrzny tego obszaru. Punkt ten jednoznacznie określa, który z obszarów (w przypadku obszaru niejednospójnego) ma być wypełniany.

Program umożliwia wskazywanie (dla obszaru niejednospójnego) tylko jednego punktu wewnątrz obszaru zamkniętego. Jeżeli zachodzi potrzeba wypełnienia kilku obszarów ograniczonych tym samym zbiorem krawędzi oraz tym samym lub różnym wzorcem kreskowania, procedurę można wykonywać wielokrotnie posiłkując się opcją /Ostatni blok/ przy ponownym wskazywaniu obiektów ograniczających obszar.

11.4. Parametry funkcji kreskowania. Definiowanie wzorców

Funkcja kreskowania posiłkuje się następującymi parametrami definiowanymi w menu pomocniczym /Kreskuj/ :

11.4.1. Wzorzec kreskowania

Dostępne są wzorce standardowe:

////////////// - kreskowanie liniami równoległymi do zadanego kierunku
XXXXXX - kreskowanie liniami równoległymi i prostopadłymi do zadanego kierunku

oraz wzorce definiowane (dowolne).

Zamieszczona tabela wzorców demonstruje dołączone do pakietu wzorce kreskowania. Wzorce te mogą być dowolnie modyfikowane przez użytkownika, rozszerzane i uzupełniane.

Definiowanie wzorców kreskowania (deseni)

Modyfikowanie i definiowanie wzorców kreskowania (deseni) wymaga od użytkownika pewnej wiedzy, praktyki i cierpliwości oraz umiejętności posługiwania się dowolnym edytorem tekstowym.

Definicje wzorców kreskowania umieszczone są w pliku konfiguracyjnym o nazwie ALFACAD.INI w grupie zmiennych o nazwie [Wzorce] .

Każda definicja wzorca posiada ten sam format: linię nagłówka oraz jedną lub więcej linii opisu.

Linia nagłówka ma postać:

nazwa_wzorca=[skala_bazowa]; [opis wzorca]

natomiast linia opisu ma postać:

kąt, x_pocz, y_pocz, delta_x, delta_y [, pole_1, pole_2, ... ]

Zamieszczony niżej przykład stanowi definicję wzorca kreskowania liniami ciągłymi odległymi od siebie o 0.5 mm i nachylonymi pod kątem 45o :

KRESKOWANIE=1; kreskowanie pod kątem 45°
45, 0, 0, 0, 0.5

W przykładzie tym pierwsza linia z całej rodziny linii przechodzi przez początek globalnego układu współrzędnych (punkt <0,0>). "KRESKOWANIE" jest nazwą wzorca identyfikowaną przez program i wyświetlaną w menu wyboru wzorców. Opis wzorca ("kreskowanie pod kątem 45°") może być pominięty, stanowi jedynie komentarz ułatwiający użytkownikowi dokonywanie zmian w zbiorze RYSUJ.INI . Skala bazowa wzorca o wartości 1 (jak w przykładzie) może być pominięta:

KRESKOWANIE=; kreskowanie pod kątem 45°
45, 0, 0, 0, 0.5

Skala określa początkowy współczynnik skali wzorca ułatwiający właściwy dobór jego podstawowej wielkości, bez konieczności zmiany wartości w liniach opisowych linii. Skala wypełniania (kreskowania) może być dodatkowo zmieniana w opcji /Skala/ menu pomocniczego /Kreskuj/.

Terminologia

Przed wyjaśnieniem sposobu definiowania wzorców kreskowania (deseni) należy zdefiniować niezbędne terminy.

Wzorzec składa się z jednej lub kilku linii wzorca (liczba linii jest nieograniczona).

Każda linia wzorca jest elementem rodziny linii. Rodzina linii powstaje przez generowanie kolejnej linii, przesuniętej równolegle o zadany przyrost względem linii poprzedniej, w obydwu kierunkach od linii podstawowej.

Wielkość delta_y definiuje odstęp pomiędzy elementami rodziny (mierzony prostopadle do linii).

Wielkość delta_x definiuje przemieszczenie elementów linii wzdłuż linii reprezentującej element rodziny i ma zastosowanie jedynie dla linii przerywanych.

Linię wzorca, rozpatrywaną jako element rodziny linii, można traktować jak nieskończenie długą, niewidoczną linię prostą, na którą nakładany jest wzór określony definicją.

Proces wypełniania wzorcem polega na pobieraniu kolejnych linii wzorca z definicji i rozprzestrzenianiu ich, zgodnie z podanymi wyżej zasadami, w nieograniczoną rodzinę linii równoległych.

W procesie wypełniania AlfaCAD sprawdza, czy występuje przecięcie linii wzorca pobieranych z definicji z obiektami zaznaczonymi jako granice obszaru zamkniętego.

Poprawne wypełnianie wzorcem zapewnione jest dzięki temu, że każda rodzina linii jest generowana od określonego w definicji punktu początkowego. Każdy wzorzec kreskowania definiuje się jednym lub kilkoma rodzajami (wzorami) linii. Dzięki temu można utworzyć prawie każdy wyobrażalny wzorzec kreskowania.

Wzorce kreskowania z liniami przerywanymi

Wzorce zawierające linie przerywane są tworzone przez dodanie pól definiujących długość odcinka tworzącego linię na końcu definicji linii. Jeżeli liczba umieszczona w polu jest dodatnia, oznacza to odcinek o zadanej długości, jeżeli zaś liczba ujemna, generowana jest przerwa. Wzorzec generowany jest od punktu początkowego pierwszego segmentu i powtarzany jest cyklicznie.

Pole o wartości zero definiuje punkt (odcinek o minimalnej długości).

W jednej linii można zdefiniować segment o maksymalnej liczbie sześciu odcinków i przerw.
Poprzedni przykład można zmodyfikować w taki sposób, aby program rysował linie przerywane o długości każdej kreski 0.5 mm z przerwami 0.5 mm pod kątem 45°, przy zachowaniu odległości pomiędzy liniami 0.5 mm:

KRESKOWANIE=1; kreskowanie pod kątem 45° liniami przerywanymi
45, 0, 0, 0, .5, .5, -.5

Wzorzec różni się od poprzedniego jedynie dołączeniem pól definiujących segment linii przerywanej. Zera nieznaczące przed kropką dziesiętną mogą być w definicji pominięte.

Wzorzec ten można zmodyfikować, żądając kreskowania liniami przerywanymi których wzór składa się z kreski o długości 0.5 mm, przerwy o długości 0.25 mm, kropki oraz kolejnej przerwy o długości 0.25 mm :

KRESKOWANIE=1; kreskowanie pod kątem 45° liniami przerywanymi
45, 0, 0, 0, .5, .5,-.25,0, -.25

Wpływ parametru delta_x demonstruje poniższy przykład:

(delta_x=0)
WZÓR1=1; delta_x o wartości 0

0, 0, 0, 0, .5, .5, -.5

(delta_x=0.5)
WZÓR2=1; delta_x o wartości 0.5 mm

0, 0, 0, .5, .5, .5, -.5

W drugim przypadku elementy w następnej linii przesunięte są o 0.5 mm równolegle do osi X.
We wszystkich dotychczasowych przykładach rozpatrywane były wzorce w których punktem bazowym
<x_pocz, y_pocz> był punkt <0, 0>. Oznacza to, że linia wzorca przechodzi przez ten punkt oraz że segment wzorca linii rozpoczynał się w tym punkcie.


Przy komponowaniu bardziej złożonych wzorców kreskowania często koniecznym staje się określenie punktu początkowego, odległości oraz sekwencji odcinków i przerw oddzielnie dla każdej definiowanej linii. Jeżeli więc zachodzi potrzeba zdefiniowania wzorca wypełnienia w postaci szachownicy "niedomkniętych" kwadratów przypominających wyglądem odwrócone litery U gdzie każdy element podstawowy składać się będzie z kreski pionowej z lewej strony, kreski poziomej oraz pionowej kreski z prawej strony - jak na poniższym szkicu:

należy wzorzec zdefiniować następująco (przyjęto długości kresek 0.5 mm, odległość pomiędzy segmentami 1 mm) :

LITERKI-U=; niedomknięte kwadraty
90, 0, 0, 0, 1, .5, -.5
0, 0, .5, 0, 1, .5, -.5
270, .5, .5, 0, 1, .5, -.5

Pierwsza linia definiuje kreskę rysowaną z dołu do góry, rozpoczynającą się w punkcie <0,0>.
Druga kreska rozpoczyna się w punkcie końcowym kreski pierwszej stąd punkt bazowy przesunięty jest do punktu
<0, 0.5>.
Trzecia linia rozpoczyna się w punkcie
<0.5, 0.5>. Trzecia kreska może być też zdefiniowana inaczej :

90, .5, 0, 1, .5, -.5 lub
270, .5, 1, 0, 1, -.5, .5

11.4.2. Kąt obrotu

Użytkownik może podać kąt obrotu wzorca względem globalnego układu współrzędnych. Wzorce standardowe zostały zaprojektowane w taki sposób, że linie kreskowania są równoległe (dla wzorca "XXXXX" także prostopadłe) do globalnej osi X. W celu wygenerowania linii ukośnych należy podać kąt obrotu różny od zera (zwykle 45 stopni).

11.4.3. Skala

Skala określa współczynnik zwiększający (zmniejszający) wzór kreskowania względem skali podstawowej. Zmiana skali jednostek rysunku w opcji /Parametry/ menu głównego nie wpływa na skalę wzoru kreskowania która odnosi się do skali wydruku arkusza rysunku na drukarce i ploterze.

11.4.4. Punkt bazowy

Punkt bazowy określa wartość przesunięcia punktu początkowego wzorca względem pre-definiowanego punktu bazowego.

Jeżeli przylegające obszary wypełniane są tym samym wzorcem, w wielu przypadkach istotne jest aby linie wzorców były wzajemnie odpowiednio dopasowane.

AlfaCAD zapewnia automatyczne dopasowanie linii kreskowania przyległych lub rozłącznych obszarów poprzez generowanie ich względem wspólnego punktu odniesienia (punktu <0,0>). Zmiana parametru punktu bazowego pozwala na przesunięcie wzoru kreskowania celem wyróżnienia rozłączności różnych obszarów.

11.4.5. Dystans

Parametr ten ma zastosowanie jedynie do wzorców standardowych kreskowania (/////, XXXX) i określa odległość pomiędzy poszczególnymi liniami tworzącymi wzorzec (odległość ta wyrażona jest w milimetrach odniesionych do skali wydruku arkusza rysunku na drukarce i ploterze). Dystans mnożony jest przez parametr "Skala".

11.4.6. Tworzenie bloku próbki wzorca kreskowania

Blok próbki wzoru kreskowania to prosty blok, który przykleja się do kursora podczas procedury kreskowania, pomagając ocenić, czy wybrany wzór kreskowania spełnia zamierzenie, czy rozmiar, grubość linii kreskowania i kąt wzorów są ustawione prawidłowo.

Tworzenie przykładowego bloku jest łatwe, nie wymaga dodatkowej konfiguracji i pozwala użytkownikowi rozszerzyć własną bibliotekę wzorów uzupełnioną o użyteczną wizualizację wzoru podczas procedury kreskowania.

Najpierw zaimportuj blok sample.axx z folderu Patterns.

Jest to prosty blok zawierający tylko okrąg, ale odpowiedniego rozmiaru, z punktem bazowym u góry po lewej stronie.

Umieść ten blok w lewym górnym rogu rysunku. Później będzie łatwo odtworzyć prawidłowe położenie punktu bazowego zmodyfikowanego bloku dla nowej próbki wzoru kreskowania.



Teraz wypełnij okrąg nowo utworzonym wzorem, w naszym przykładowym wzorze U-LETTER. Po wybraniu okręgu jako zamkniętego obszaru do kreskowania, w menu pomocniczym w opcji / Wzór / wybierz nowo utworzony wzór:

U-LETTER”

Ponieważ blok wzorcowy jeszcze nie istnieje, zamiast tego zobaczysz pusty wzór.

Wskaż wnętrze okręgu.





Okrąg zostanie wypełnione nowym wzorem.

















W funkcji / Blok / / Eksport / wskaż wypełniony okrąg wraz z wypełnieniem (używając opcji „okno” lub „cross”), a następnie wskaż punkt bazowy w tym samym punkcie, czyli lewy górny róg rysunku.





W oknie dialogowym wyboru pliku wpisz nazwę pliku identyczną z nazwą wzorca, z rozszerzeniem „.axx”, czyli w naszym przykładzie: u-letter.axx





Wpisz sugestywny opis (najlepiej tylko nazwa wzoru, a więc U-LETTER

Pozostaw pusty typ bloku, nie jest potrzebny.

Zostanie utworzony nowy blok wzorcowy wzoru kreskowania.








Kiedy następnym razem użyjesz tego wzoru do kreskowania, blok próbki przylgnie do celownika podczas wskazywania punktu wewnątrz zamkniętego obszaru.

Po zakończeniu obszar zostanie wypełniony wzorem kreskowania.





















11.5. Funkcja kreskowania

Po wywołaniu funkcji /Kreskowanie/, program oczekuje na wskazanie obiektów tworzących obszar zamknięty, wyświetlając komunikat: <Wskaż granice kreskowania>.

Po wskazaniu obiektów program oczekuje na wskazanie punktu wewnętrznego obszaru wyświetlając komunikat: <Wskaż wnętrze obszaru kreskowania> .

Wskazanie punktu wewnątrz obszaru może poprzedzić wywołanie menu pomocniczego i dokonanie korekty parametrów funkcji w zakresie nazwy (typu) wzorca, kąta obrotu, skali, współrzędnych punktu bazowego, dystansu (dla wzorców standardowych).

Po wskazaniu punktu wewnątrz obszaru zamkniętego następuje generowanie bloku wypełniającego.