6. Bloki i funkcje blokowe

W rozdziale niniejszym opisane są struktury blokowe oraz funkcje pozwalające na grupowanie obiektów i tworzenie w ten sposób obiektów złożonych, edycję (modyfikację) bloków, tworzenie biblioteki elementów typowych i sposoby jej wykorzystywania.

6.1. Wiadomości podstawowe

Blok jest obiektem złożonym utworzonym przez zgrupowanie wybranych elementów. Identyfikatorami bloku jest jego nazwa (typ) lub nazwa zbioru dyskowego biblioteki elementów typowych. Dodatkowym identyfikatorem bloku zapisanego w katalogu może być „opis bloku”.

AlfaCAD traktuje blok jako pojedynczy element złożony. Blok można przesunąć, usunąć, obrócić, zmienić jego skalę itd. wskazując dowolny element składowy bloku.

Funkcje obsługi bloków (tzw. "funkcje blokowe") dostępne są w opcji /Blok/ menu głównego.
Blok można zbudować z elementów znajdujących się na aktualnym rysunku. Użytkownik może utworzyć własną bibliotekę typowych elementów i korzystać z niej przy tworzeniu innych rysunków poprzez wstawianie bloków w określone miejsce.

Wprowadzając blok na rysunek, użytkownik uzyskuje do niego bezpośredni dostęp (np. w celu skopiowania) przez wybór z menu jednego z typów bloków umieszczonych na rysunku. Wprowadzając więc na rysunek - np. rzutu kondygnacji - bloku zawierającego przekrój poziomy okna (poprzez wybór funkcji /Blok//Import/ ), okno to można wstawiać w inne miejsca rysunku bez potrzeby ponownego importu bloku z katalogu.

Jeżeli importowany z katalogu blok lub ostatnia kopia tego bloku na rysunku zostanie zmodyfikowana, przy kolejnym odwołaniu do tego bloku, zostanie on pobrany w postaci zmodyfikowanej. Pozwala to np. na łatwe przystosowanie importowanego bloku dla potrzeb danego rysunku bez konieczności tworzenia w katalogu kolejnego bloku, przy jednocześnie szybkim do niego dostępie.

6.2. Bloki a warstwy

Blok może być utworzony z elementów umieszczonych na różnych warstwach i narysowanych różnymi kolorami i grubościami linii różnych typów. Kolor, grubość i typ linii są atrybutami każdego z elementów bloku i nie są one modyfikowane ani podczas grupowania elementów w blok, zapamiętywania w schowku i zapisu (eksportu) bloku do katalogu, ani przy pobieraniu ze schowka i odczycie (imporcie) bloku z katalogu i wstawianiu na rysunek.

Mimo, iż każdy element bloku może podczas jego tworzenia (grupowania i eksportu do katalogu) leżeć na innej warstwie, przy imporcie bloku z dysku, wszystkie elementy bloku umieszczane są bądź na warstwie bieżącej bądź na warstwach oryginalnych tzn. tych na których leżał dany obiekt w chwili grupowania, zapamiętywania w schowku czy eksportu do katalogu dyskowego.

Jest to uzależnione od wyłączenia lub załączenia opcji /Stałe warstwy/ w menu /Blok/. Załączenie opcji "Stałe warstwy" pozwala co prawda na łatwiejsze zachowanie przyjętej struktury warstw na rysunku ale wymaga to zgodności warstw pomiędzy rysunkami z którego blok zastał eksportowany oraz rysunku na który jest on importowany. Program nie może oczywiście sprawdzić zgodności warstw, nie jest istotna tutaj bowiem sama nazwa warstwy ale jej faktyczne przeznaczenie. Jeżeli najwyższy numer warstwy elementu bloku jest wyższy od najwyższego numeru warstwy na rysunku, blok mimo to zostaje wstawiony z zachowaniem warstw, a brakujące na rysunku warstwy są automatycznie inicjowane z domyślnymi parametrami konfiguracyjnymi.

Blok może być przeniesiony (w całości) na inną warstwę przy pomocy funkcji edycyjnej /Zmień/.

6.3. Bloki złożone

Blok może zawierać inne bloki. Można więc zgrupować elementy podstawowe oraz zapisać w bibliotece bloki stanowiące widoki różnych kół zębatych, sworzni, łożysk, wałków itp. Z bloków takich zbudować można rysunek przekładni. Po zgrupowaniu tych bloków otrzymuje się blok złożony stanowiący rysunek przekładni. Blok ten może być zapisany na dysk rozbudowując tym samym bibliotekę elementów katalogowych.

Poziom złożoności bloku jest nieograniczony. Bloki złożone mogą być następnie rozbijane na bloki prostsze. Pozwala to na dowolne dekomponowanie bloków, modyfikacje i powtórne komponowanie elementów w bloki o dowolnej złożoności. Struktura blokowa nie jest więc postacią ostateczną grupy elementów stąd też opracowana biblioteka elementów typowych może w przyszłości ulegać dowolnym zmianom i uaktualnieniom.

6.4. Grupowanie obiektów w blok

Grupowanie elementów w blok może być realizowane na trzy sposoby. Jeden z nich pozwala na powiązanie ze sobą elementów na rysunku z nadaniem powstałemu w ten sposób blokowi odpowiedniej nazwy interpretowanej jako "typ bloku", oraz wskazaniem "punktu wstawienia bloku" (punktu bazowego).

Grupowanie elementów na rysunku w bloki jest realizowane przy pomocy funkcji blokowej /Grupuj/. Procedura grupowania wymaga wskazania elementów rysunku oraz punktu bazowego (podobnie jak w funkcji przesuwania, kopiowania, kopiowania itp.). Przed przeprowadzeniem kompozycji elementów w blok, program pyta o "typ bloku". Typ stanowi dowolna nazwa w postaci łańcucha o maksymalnej długości 255 znaków. Nazwa ta powinna być unikalna w całym rysunku, choć nie jest to warunek bezwzględnie konieczny.

Jeżeli typ bloku jest zdefiniowany (łańcuch niepusty), blok taki może być pobierany (w celu skopiowania) poprzez wybór z menu właściwego typu bloku (służy do tego funkcja /Blok//Lista/). Stąd też zalecane jest nadawanie różnym blokom unikalnych nazw typów. Konsekwencją zdefiniowania typu bloku o wartości tekstowej identycznej z typem innego bloku istniejącego na rysunku, jest usunięcie istniejącego bloku z listy typów bloków dostępnych w menu. Nie wpływa to rzecz jasna na postać graficzną rysunku czy też jego strukturę a więc i możliwości realizowania dowolnych funkcji edycyjnych, utrudnia jednak bezpośredni dostęp do bloków poprzez ich typ.

Drugim sposobem jest wskazanie na rysunku elementów z których zostanie utworzony blok i zapisany do zbioru o podanej nazwie w dowolnym katalogu na dysku. Blok taki, oprócz punktu bazowego oraz typu, może mieć zdefiniowany tzw. "opis" pomocny przy identyfikacji poszukiwanego w katalogach dyskowych bloku. Opis ten wyświetlany jest w górnej linii ekranu w funkcji /Blok//Import/. Wskazane w tej metodzie elementy podstawowe nie są na rysunku grupowane w blok. Blok stanowi jedynie kopia tych elementów zapisana do zbioru dyskowego w postaci zgrupowanej wraz ze zdefiniowanym typem.

Trzecim sposobem jest zapamiętanie - a następnie - wstawienie bloku. Procedura ta jest podobna do eksportu i importu bloku z tym, że nie podaje się ani "opisu" bloku, ani nazwy zbioru dyskowego. Zapamiętany blok jest bowiem przechowywany w tzw. schowku. Po wstawieniu bloku na rysunek, zostaje on skomponowany w blok i jeżeli przy zapamiętywaniu bloku podana została niepusta nazwa typu, może być on ponownie pobierany z listy bloków.

6.5. Zapamiętanie bloku w "schowku"

Zapamiętywanie elementów w postaci bloku przechowywanego w tzw. schowku jest realizowane przy pomocy funkcji /Blok/ menu głównego,a następnie opcji /Zapamiętaj/. Procedura wymaga wskazania elementów rysunku oraz punktu bazowego (podobnie jak w funkcji przesuwania, kopiowania, zmiany skali itp.) a następnie typu bloku.

Podanie typu bloku nie jest konieczne. Jeżeli jednak chcemy aby po wstawieniu bloku na rysunek mieć do niego dostęp poprzez listę bloków, warto taką nazwę typu wpisać. Powinna to być nazwa unikalna, nie przyjęta dla innego wstawionego bloku.

Funkcja może być wykorzystywany schowek służący do przenoszenia bloków pomiędzy rysunkami (bądź w ramach tego samego rysunku).

6.6. Wstawienie bloku ze "schowka"

Umieszczenie na rysunku bloku zapamiętanego, realizowane jest w funkcji /Blok//Wstaw/. Zanim blok ten zostanie umieszczony na rysunku, może być on dynamicznie przesuwany po arkuszu. Jednocześnie dostępne są wszelkie tryby lokalizacji punktu wstawienia bloku względem innych obiektów. W dodatkowym menu pomocniczym /Blok/ udostępniane są opcje:

Blok może być wstawiony wielokrotnie. Jedynie przed pierwszym wstawieniem bloku można wykonać dodatkowo operację skalowania, obrotu lub też lustrzanego odbicia względem osi X-X oraz Y-Y.

6.7. Zapis bloku do zbioru dyskowego (Eksport)

Grupowanie elementów w bloku dyskowym jest realizowane przy pomocy funkcji /Blok/ menu głównego,a następnie opcji /Eksport/. Procedura grupowania wymaga wskazania elementów rysunku oraz punktu bazowego (podobnie jak w funkcji przesuwania, kopiowania, zmiany skali itp.), podania nazwy zbioru dyskowego rysunku, a następnie typu bloku oraz jego opisu.

Nazwę zbioru dyskowego bloku podaje się w oknie edycyjnym plików podobnie jak ma to miejsce w funkcji /Dysk//Zapisz do/. Zalecanie jest podawanie nazw plików bez rozszerzenia. Zbiory bloków otrzymują standardowe rozszerzenie '.ALX' np.: 'SILNIK.ALX' .

Przy zapisie na dysk zbioru bloku, program sprawdza, czy na dysku (na bieżącym urządzeniu i katalogu) występuje już zbiór o tej nazwie. Jeżeli występuje, jego nazwa zostaje zmieniona poprzez dodanie lub zmianę rozszerzenia na '.BAK' po czym następuje zapis zbioru bloku. Umożliwia to import poprzedniej wersji danego bloku traktowanej jako kopia archiwalna.

Domyślnym folderem bloków jest folder zadeklarowany w zmiennej „Bloki” w grupie [KATALOGI] zbioru konfiguracyjnego ALFACAD.INI .

6.8. Odczyt bloku ze zbioru dyskowego (Import)

Umieszczenie na rysunku bloku stanowiącego element biblioteki bloków przechowywanych w katalogach dyskowych, realizowane jest w funkcji /Blok//Import/. W oknie edycyjnym plików dyskowych, analogicznie jak w procedurze inicjacji rysunku (/Dysk/ /Inicjacja/) należy wybrać właściwy dysk, katalog oraz zbiór dyskowy bloku. Blok zostanie zaimportowany a w czasie jego dynamicznego wyświetlania, w górnej linii ekranu widoczny będzie opis bloku stanowiący dodatkowy identyfikator.

Po odczytaniu bloku ze zbioru dyskowego, zanim blok ten zostanie umieszczony na rysunku, może być on dynamicznie przesuwany po arkuszu. Jednocześnie dostępne są wszelkie tryby lokalizacji punktu wstawienia bloku względem innych obiektów. W dodatkowym menu pomocniczym /Blok/ udostępniane są opcje:

Importowany blok może być wstawiony na rysunek wielokrotnie. Jedynie przed pierwszym wstawieniem bloku można wykonać dodatkowo operację skalowania, obrotu lub też lustrzanego odbicia względem osi X-X oraz Y-Y.

Domyślnym folderem bloków jest folder zadeklarowany w zmiennej „Bloki” w grupie [KATALOGI] zbioru konfiguracyjnego ALFACAD.INI .

6.9. Biblioteki bloków

Bloki przechowywane w zbiorach dyskowych mogą stanowić bibliotekę elementów typowych wykorzystywanych przy tworzeniu nowych rysunków. Wprowadzenie na rysunek bloku o zadanym typie, powoduje dołączenie tego bloku do wewnętrznej biblioteki rysunku z możliwością ponownego wykorzystania wprowadzonego bloku w celu jego ponownego umieszczenia w innym miejscu rysunku.

Dostęp do bloków umożliwia opcja /Lista/ funkcji /Blok/ menu głównego. Wyboru właściwego bloku dokonuje się z rozwijanego menu zawierającego typy wszystkich bloków występujących na rysunku.

Jeżeli na rysunku występuje kilka bloków o identycznej nazwie typu w wyniku kopiowania bloku lub wielokrotnego importu tego samego bloku z dysku bądź też w wyniku zadeklarowania w funkcji /Grupuj/ dla kilku bloków tego samego typu, w liście bloków wystąpi jedynie blok ostatnio utworzony lub skopiowany bądź też ostatnio importowany z dysku.

Wybór jednego z typów powoduje pobranie danego bloku z przyjęciem zdefiniowanego dla niego punktu bazowego, i dynamiczne wyświetlanie bloku w oczekiwaniu na wskazanie punktu wstawienia kopii bloku. Punkt bazowy bloku przyjmuje pozycję aktualnego położenia kursora. Podobnie jak w funkcji blokowej /Import/ oraz /Weź blok/ w menu pomocniczym udostępniane są opcje /Skala/, /Obrót/, /Lustro X-X/, /Lustro Y-Y/ i /Podziel/.

Ponieważ długość wiersza menu ograniczona jest do 60 znaków, przy deklaracji typu nie jest wskazane łańcuchów dłuższych chyba że wymagają tego inne funkcje aplikacyjne.
Zbiory dyskowe bloków, poza elementami podstawowymi wchodzącymi w skład bloku oraz jego typ, zawierają także "opis" bloku w postaci łańcucha o maksymalnej długości 255 znaków. Opis bloku wyświetlany jest w górnej linii ekranu w czasie ustalania punktu wstawienia bloku na rysunku. Pozwala to na pełniejszą kontrolę prawidłowości wykonywanej operacji.

Opis bloku zawierać może dodatkowe informacje o bloku, nie ujęte w nazwie jego typu, nie jest on jednak dołączany do bazy danych rysunku.

6.10. Rozbicie bloku na elementy (eksplozja)

Funkcja blokowa /Rozbij/ umożliwia dekompozycję bloku, polilinii lub bloku wymiarowego (wymiarowania liniowego zespolonego, wymiarowania łuku, okręgu itd.) na niezależne elementy podstawowe (prymitywy) lub bloki prostsze. Procedura ta przekształca polilinię w pojedyncze odcinki i łuki. Rozbicie bloku czy wymiaru nie powoduje widocznych zmian na rysunku.

W celu rozbicia (eksplozji) obiektu złożonego, należy w ogólnie przyjęty sposób wskazać te obiekty. Elementy proste (prymitywy) będą oczywiście ignorowane, bowiem stanowią one "pierwiastki" rysunku i nie zawierają elementów prostszych.

Po wskazaniu bloków które mają ulec rozbiciu, w celu przeprowadzenia procedury eksplozji należy wybrać opcję /Blok/ menu pomocniczego a następnie opcję /Eksplozja/. Zaznaczone bloki zostaną rozbite, a program oczekuje na wskazanie kolejnych bloków bądź klawisz {RMB} lub {Esc} kończący funkcję. Wykonanie polecenia /Rozbij/ powoduje uproszczenie struktury blokowej wskazanych obiektów o jeden stopień. Oznacza to, że wykonanie tej procedury w stosunku do bloku złożonego z innych bloków rozkłada obiekt na bloki a nie pojedyncze obiekty chyba że prymitywy graficzne także stanowić będą elementy składowe eksplodowanego obiektu. Procedura eksplozji może być zatem realizowana dla złożonej struktury blokowej wielokrotnie, aż do momentu rozbicia bloku wyłącznie na elementy proste (prymitywy).

Konieczność posłużenia się menu pomocniczym (/Blok//Eksplozja/) w celu dekompozycji wskazanego bloku została wprowadzona dla uniknięcia przypadkowego zniszczenia struktury blokowej rysunku mającej niebagatelny wpływ na łatwość jego edycji.

Funkcja /Rozbij/ pozwala na kolejne eksplodowanie bloków bez konieczności ponownego wyboru funkcji. Zakończenie procedury następuje po rezygnacji ze wskazywania kolejnego bloku co jest osiągane po naciśnięciu {RMB} lub {Esc}.

Rozbiciu bloku na elementy prostsze towarzyszy usunięcie atrybutu opisującego typ eksplodowanego bloku.

6.11. Bloki zamrożone

Pojęcie bloków "zamrożonych" wprowadzono głównie dla potrzeb bloków arkuszy rysunkowych, opisanych w dalszych rozdziałach, oraz dla schematów elektrycznych. Bloki te stanowią w większości przypadków symbole elektryczne oraz rysunki aparatów elektrycznych.

Celem "zamrażania" jest zabezpieczenie przed przypadkowym rozbiciem bloku w funkcji /Blok//Rozbij/ przy okazji wykonywania tej funkcji na innych, normalnych blokach.

Blok zamraża się poprzez podanie w nazwie typu bloku (w funkcji /Blok/ /Grupuj/, /Zapamiętaj/ oraz /Eksport/) pierwszego znaku "*" (gwiazdka) lub "$" (dolar).

W celu rozbicia bloku "zamrożonego" (np. w celu modyfikacji symbolu bibliotecznego) należy zamiast funkcji /Blok//Rozbij/ użyć funkcji /Blok//* rozbij zamrożony/.

Próba rozbicia bloku zamrożonego w funkcji /Blok//Rozbij/ sygnalizowana jest odpowiednim komunikatem a blok nie jest rozbijany bla bloki prostsze lub prymitywy.

6.12. Edycja bloków

Bloki podlegają procedurom edycyjnym podobnie jak prymitywy graficzne. Przy wskazywaniu obiektów w procedurach edycyjnych przy pomocy celownika, wystarczające jest wskazanie dowolnego obiektu wchodzącego w skład bloku, lub jego fragmentu.

Jeżeli obiekty wskazywane są przy pomocy okna to jeżeli aktywny jest tryb wskazywania "okno", w ramce okna bloku muszą znaleźć się wszystkie elementy każdego obiektu wchodzącego w skład bloku.

Jeżeli aktywny jest tryb wskazywania "cross", wystarczające jest objęcie ramką fragmentu dowolnego elementu bloku.

Niektóre funkcje edycyjne mogą być wykonywane wprost na poszczególnych obiektach bloku, zmieniając jego strukturę wewnętrzną, jednak bez zmiany samej struktury blokowej. Do funkcji takich należą: /Edycja tekstu/, /Wytnij/, /Utnij/, /Wydłuż/, /Profilowanie/ i /Fazowanie/ oraz edycja bloku wymiarowego. Pozostałe funkcje edycyjne na pojedynczym elemencie bloku wymaga uprzedniego rozbicia (eksplozji) bloku przy pomocy funkcji blokowej /Rozbij/ .

Po rozbiciu i dokonaniu modyfikacji (np. usunięciu) danego elementu, obiekty które uprzednio stanowiły blok, można ponownie pogrupować przy pomocy funkcji blokowej /Grupuj/. W tym przypadku należy ponownie wprowadzić typ bloku, który to atrybut utracony został w wyniku jego eksplozji.

6.12.1. Edycja tekstu

Dowolny tekst stanowiący element bloku może podlegać edycji tak jak tekst swobodny (nie związany z blokiem) i według tych samych zasad. Edycja tekstu dotyczy zmiany wartości tekstowej, położenia na rysunku (i jednocześnie położenia względem punktu bazowego bloku), kierunku linii tekstu, wysokości czcionki, współczynnika szerokości, atrybutu pochylenia znaków, typu, justowania, atrybuty "ukryty", wzoru czcionki a także koloru oraz warstwy rysunkowej.

Możliwość edycji tekstu bloku może być wykorzystywana do modyfikacji importowanego bloku (jako elementu katalogowego) w celu przystosowania go do potrzeb bieżącego rysunku, bez konieczności rozbijania (eksplozji) bloku na prymitywy graficzne. Zachowanie postaci blokowej mimo wprowadzonych modyfikacji pozwala na bezpośrednie operacje na bloku, jak kopiowanie, przesuwanie, obrót itd.

Własność ta ma też wpływ na sposób tworzenia bibliotek elementów typowych. Pozwala bowiem na wprowadzanie w blokach tekstów (np. oznaczeń elementów) w postaci ogólnej, przygotowanej do dalszej edycji poprzedzającej wielokrotne umieszczenie bloku na danym rysunku (kopiowanie).

6.12.2. Wycinanie, obcinanie, wydłużanie, profilowanie i fazowanie

Podobnie jak w przypadku edycji tekstu, procedury wycinania, obcinania, wydłużania, profilowania i fazowania mogą być wykonywane na obiektach stanowiących elementy bloku.

Operacje te nie wpływają na zmianę struktury blokowej rysunku. W przypadku procedury profilowania i fazowania, jeżeli obydwa profilowane lub fazowane odcinki linii są elementami bloku, dodatkowy łuk profilujący bądź odcinek fazujący dołączany jest automatycznie do bloku. Jeżeli jeden z odcinków nie jest elementem bloku, dodatkowy odcinek lub łuk nie jest dołączany do bloku, a blok modyfikowany jest jedynie w zakresie zmiany długości odcinka podlegającego profilowaniu lub fazowaniu.

Jeżeli dany blok ma strukturę złożoną (elementami jego są prymitywy graficzne oraz inne bloki proste lub złożone), to dodatkowe łuki i odcinki będące efektem profilowania lub fazowania dołączane są do bloku najniższego rzędu w strukturze bloku złożonego, którego elementy stanowią odcinki podlegające profilowaniu lub fazowaniu.

W procedurze wycinania, dodatkowe obiekty (odcinki lub łuki) powstałe w wyniku rozcięcia odcinków lub łuków, dołączane są do bloku, a w przypadku bloku złożonego, bo bloku najniższego rzędu w strukturze bloku złożonego, którego elementami są odcinki lub łuki podlegające edycji.

6.12.3. Edycja bloku wymiarowego

Bloki wymiarowe, podobnie jak bloki tworzone przez użytkownika, mogą być modyfikowane w zakresie edycji tekstu opisującego, wycinania, obcinania i rozciągania linii i łuków, czy nawet profilowania i fazowania. Cecha ta może być wykorzystywana np. w celu rozcięcia linii wymiarowej dla umieszczenia tekstu opisowego na wysokości linii wymiarowej, pomiędzy liniami pomocniczymi. Wycinanie linii wymiarowej może być też przydatne przy dokonywaniu cięć i skrótów (np. wymiarowania połówkowego).

Jeżeli zachodzi potrzeba wykonania innej funkcji edycyjnej na wybranym elemencie bloku wymiarowego, blok ten należy uprzednio eksplodować przy pomocy funkcji blokowej /Rozbij/.

6.13. Atrybuty bloków

Atrybutami bloków są "typ" oraz "opis", stanowiące informacje tekstowe o danym bloku.

"Typ bloku" związany jest na stałe z jego strukturą i przechowywany jest w bazie danych rysunku.

"Opis bloku" stanowi dodatkową informację przechowywaną w zbiorze dyskowym bloku i służy do identyfikacji przy jego poszukiwaniu w katalogach dyskowych oraz pełnej identyfikacji w czasie wykonywania funkcji /Blok//Import/.

Blok o strukturze złożonej może zawierać kilka atrybutów (typów), umieszczonych na różnych poziomach złożoności.

Atrybuty bloków są niewidoczne na rysunku. Stanowią one identyfikatory w funkcji /Blok//Lista/ i wyświetlane są w menu typów bloków. Wybór typu bloku pozwala na ponowne umieszczenie bloku z pominięciem poszukiwania go w katalogach dyskowych biblioteki bloków.

6.14. Edycja atrybutów bloków

Edycja atrybutów bloków na rysunku jest możliwa poprzez rozbicie bloku na elementy i ponowne zgrupowanie elementów w blok wraz z zadaniem typu nowo tworzonego bloku.

Eksplozja (rozbicie) nie jest w zasadzie konieczne. Grupowanie może obejmować tylko jeden blok o uprzednio zdefiniowanym typie. W ten sposób zwiększa się stopień złożoności bloku ale w szybki sposób można uzyskać zmianę nazwy jego typu.

Edycja atrybutów istniejących bloków dyskowych może być dokonywana w oknie dialogowym funkcji blokowych /Eksport/ lub /Import/.

W oknie dialogowym, po wskazaniu urządzenia dyskowego, katalogu oraz nazwy właściwego pliku dyskowego bloku (lub podaniu pełnej nazwy wraz z ewentualną ścieżką w wierszu edycyjnym nazwy pliku) można odczytać aktualne atrybuty bloku poprzez wskazanie pola <Czytaj parametry>.

Opis i typ odczytywane są z pliku bloku a pierwszy z nich wyświetlany jest w menu /Lista parametrów/. Po wskazaniu kursorem tej linii i naciśnięciu {LMB} lub {Enter}, menu zostaje rozwinięte pozwalając na wybór jednego z dwóch parametrów do edycji. Po wyborze parametr ten przepisywany jest do linii /Edycja parametrów/. Edycja wartości tekstowej parametru jest możliwa (wg. ogólnych zasad edycji tekstu) po wskazaniu kursorem linii edycyjnej i naciśnięciu {LMB} lub {Enter}.

Obydwa parametry można edytować wielokrotnie. Uaktualnienie zmienionych parametrów w zbiorze dyskowym bloku następuje po wskazaniu kursorem pola <Uaktualnienie parametrów>.
W oknie dialogowym można modyfikować parametry dowolnych zbiorów dyskowych bloków.

Opuszczenie okna dialogowego następuje po wskazaniu pola <Esc> lub naciśnięciu {RMB} lub {Esc}.

Ponieważ okno dialogowe związane jest w zasadzie z procedurą eksportu bądź importu bloku, stąd wyposażone jest ono w pole <OK> którego wskazanie inicjuje - odpowiednio - eksport lub import bloku dyskowego. Podobnie wpisanie nazwy zbioru bloku i akceptacja nazwy klawiszem {Enter} inicjuje funkcję eksportu bądź importu. Procedura edycji parametrów pełni w tych funkcjach rolę towarzyszącą, pozwalając na korektę parametrów bloków przed zapisem nowego bloku bądź też przed wprowadzeniem (importem) istniejącego bloku na rysunek.

6.15. Usuwanie bloków DXF

Za "bloki DXF"rozumieć należy bloki wzorcowe umieszczone na rysunku w wyniku jego konwersji z formatu DXF w funkcji /Dysk//DXF odczyt/. Bloki wzorcowe umieszczane są standardowo na zastrzeżonej dla nich warstwie 255. Kopiowane są one na inne warstwy z odpowiednim wektorem przesunięcia, ewentualnym obrotem czy zmianą skali.

Po zakończeniu konwersji rysunku, bloki wzorcowe w zasadzie nie są potrzebne, bowiem w procedurze odczytu rysunku zostały one już wykorzystane do jego tworzenia. Są jednak przypadki w których bloki te należy pozostawić np. w celu umożliwienia kontynuacji niedokończonego rysunku.

Bloków wzorcowych nie można usunąć z rysunku w sposób ogólniem przyjęty bowiem warstwa 255 jest najczęściej nieaktywna i przez to niewidoczna. Można to zrobić właśnie przy pomocy funkcji /Blok//Usuń bloki DXF/. Funkcja wymaga potwierdzenia zamiaru usunięcia bloków DXF. Bloki te są usuwane całkowicie zwalniając pamięć operacyjną.

Usunięcie bloków wzorcowych DXF może w dużym stopniu zmniejszyć zajętość pamięci przez rysunek jak i jednocześnie przyspieszyć operacje edycyjne.

6.16. Import bloków DXF

Funkcje importu i eksportu rysunków w formacie DXF opisane będą w rozdziale 12.4 i 12.5 . W tym rozdziale, dotyczących operacji na blokach, wspomnieć należy o funkcji importu bloku w formacie DXF. Aczkolwiek nie istnieje zasadnicza różnica pomiędzy formatem rysunku i bloku w formacie DXF, to funkcji importu bloku, w przeciwieństwie do funkcji importy rysunku, nie inicjuje nowego rysunku wraz z warstwami, formatem arkusza rysunku i skalą oraz innymi parametry przed wczytaniem wszystkich elementów rysunku, zamiast tego umieszcza wszystkie elementy odczytane z pliku DXF na aktualnej warstwie istniejącego rysunku, grupując je wszystkie w blok.

Tak jak w przypadku importu bloku w formacie ALF, menu pomocnicze oferuje opcje:

opisane wcześniej w rozdziale 6.6.

Funkcja ta pozwala na wykorzystanie bibliotek bloków utworzonych w innych programach graficznych.

6.17. Wstawienie obrazu graficznego

Za blok graficzny rozumie się w AlfaCAD obraz graficzny w jednym z powszechnie używanych formatów:

AlfaCAD nie jest edytorem plików graficznych takich jak fotografie. Pliki graficzne o których mowa w tym rozdziale to raczej szkice, zeskanowane podkłady geodezyjne, mapy, jak również zdjęcia fotogrametryczne.

Takie pliki graficzne jak skanowane podkłady geodezyjne czy mapy w zależności od wielkości skanera i jego rozdzielczości mogą stanowić pliki o dużych rozmiarach. AlfaCAD, z uwagi na hybrydowy charakter rysunku, po części rastrowy, po części wektorowy, minimalizuje konieczne zasoby, zachowując w możliwie najwyższym stopniu dokładność prezentacji obrazu rastrowego. Jeżeli plik graficzny stanowi bitmapa z 1-bitową głębią kolorów (skan czarno / biały) lub 8-bitową (256 kolorów) paleta kolorów pozostaje niezmienna. Jeżeli wczytywany jest plik rastrowy o innej głębi kolorów, jest on konwertowany do optymalnej (najbardziej zbliżonej do oryginału) palety 8-bitowej, a obraz jest zapisywany w rysunku (jako jeden z prymitywów graficznych) w postaci skompresowanej, ale bezstratnej.

Na rysunku może być umieszczanych wiele obrazów rastrowych, każdy z nich jest prezentowany oraz drukowany z własną paletą kolorów, optymalną dla każdego obrazu.

Każdy obraz może być dowolnie skalowany niezależnie w kierunku osi X i Y, i umieszczany na rysunku pod dowolnym kątem. Procedury kalibracji dostępne w AlfaCAD pozwalają na precyzyjne pozycjonowanie obrazu, jak również późniejszą korektę stosując metodę liniowej transformacji izotropowej (równoskalowej), nazywanej transformacją Helmerta, bądź liniowy transformacji anizotropowej (różnoskalowej), nazywany transformacją afiniczną, bazując na wskazanych punktów kartometrycznych oraz na współczynnikach skali.

Po wskazaniu pliku graficznego w katalogu dyskowym, inicjowane jest okno dialogowe, zawierające informacje o rozdzielczości graficznej [dpi], oryginalnej szerokości i wysokości obrazu [pxl], szerokości i wysokości obrazu w zadanej skali X i Y [mm], pola edycyjne skali X i Y, kąt obrotu [deg] oraz indykator wypełnienia tła obrazu.

Po ustaleniu skali X i Y, i ewentualnie zadaniu kąta obrotu, akceptacja parametrów inicjuje wstawienie pliku graficznego na rysunku, w zadanej skali, obróconego o zadany kąt.

Zmiana skali dla osi X i Y zmienia rzeczywistą wielkość obrazu na rysunku, co jest widoczne w parametrach szerokości i wysokości obrazu [mm], ułatwiając orientację co do wielkości obrazu rastrowego, a zatem i niezbędnej wielkości formatu rysunku.

Parametr wypełniania tła obrazu ma zastosowanie w przypadku obrazów rastrowych 1-bitowych, gdzie punkty koloru białego (tła) są pomijany przy wyświetlaniu, a jedynie punkty koloru różnego od białego (zwykle czarnego) są wyświetlane. Z uwagi na fakt iż każdy plik rastrowy może być skalowany, jak również fakt iż cały rysunek może być prezentowany w dużym zakresie skali (1:1000 do 1000:1, w praktyce aczkolwiek wykorzystywana jest prezentacja 1:100 do 100:1), punkty rastra zastąpione są obszarami prostokątnymi których krawędzie są równoległe są do lokalnych osi głównych obrazu rastrowego, które to mogą być ustawione pod dowolnym kątem do globalnego lub lokalnego układu współrzednych rysunku. Obszary prostokąty są de facto przeskalowanymi punktami obrazu rastrowego.

6.18. Edycja obrazu graficznego

Funkcje edycji bloku graficznego dostępne są w menu /Blok/ i obejmują:

Funkcja /Zmień dx, dy/ pozwala na zmianę skali w kierunku głównych osi obrazu rastrowego poprzez zminę wielkości punktu w osi X (dx) and Y (dy). Wartości dx i dy są wyznaczane przy wstawianiu obrazu rastrowego na podstawie rozdzielczości (dpi) oraz zadanej skali w osi X i Y. Rozróżnienie wielkości dx i dy pozwala na uzyskanie transformacji anizotropowej.

Funkcja /Zmień parametry/ pozwala na reedycję parametrów obrazu rastrowego, identycznie jak w przypadku wstawiania obrazu na rysunek. Rozróżnienie skali w osi X i Y pozwala na uzyskanie transformacji anizotropowej.

Funkcja /Kalibracja/ pozwala na transformację liniową izotropową poprzez wskazanie na obrazie dwóch punktów bazowych, a następnie zaznaczenie na rysunku dwóch punktów kartograficznych. Obraz zostanie skalibrowany w ten sposób że punkty bazowe pokryją się z punktami kartograficznymi, w związku z czym obraz zostanie przeskalowany oraz obrócony o wymagany kąt.

6.19. Eksport bloku graficznego

Funkcja /Blok//Eksportuj obraz/ pozwala na ekstrakcję obrazu rastrowego z rysunku i zapisanie go w pliku dyskowym. Ponieważ obraz rastrowy zapamiętywany jest w formacie niemal identycznym jak format PCX, obraz eksportowany jest do pliku dyskowego w tymże formacie. Obraz zachowuje oryginalną głębię kolorów (1 lub 8 bit).

Zapisany obraz rastrowy może być wstawiany na inny rysunek przy pomocy funkcji /Blok//Wstaw obraz/ z zachowaniem głębi kolorów, ale z możliwością zmiany skali oraz obrotu.

6.20. Korekta bloków

Funkcja /Blok//Korekta bloków/ jest pomocniczą funkcją sprawdzającą strukturę bloków, i w razie potrzeby korygującą tę strukturę. Funkcja ta ma zastosowanie przy wczytywaniu rysunków archiwalnych, wykonanych w poprzednich wersjach programu, konwertowanych z formatu DXF oraz w sytuacji gdy podczas operacji blokowych wystąpił błąd. Tak jak każdy program, AlfaCAD nie jest programym w 100% wolnym od błędów, programy typu CAD, wraz z całym systemem zarządzania danymi rysunku, są programami o dużym stopniu złożoności. Autor programy dokonuje wszelkich starań w celu eliminacji błędów, reagując bezzwłocznie na wszelkie sygnały od użytkowników programu o błędach, jak też dokonuje wielu testów aby uniknąć błędów w kolejnych wersjach programu. Kiedy jednak w wyniku błędu struktura bloków zapisana w rysunku wpływa negatywnie na jego edycję, bądź też prowadzi do nieprawidłowego działania programu lub jego awarii, funkcja korekty bloków przychodzi wtedy z pomocą.

6.21. Stałe warstwy

Funkcja /Blok//Stałe warstwy/ pozwala na przełączanie trybu przydzielania numerów warstw elementom importowanego bloku. Jeżeli opcja ustawiona jest na „Nie” (domyślnie), wszystkie elementy bloku wstawiane są na warstwę bieżącą. Jeżeli opcja ustawiona jest na „Tak”, numery warstw elementów bloku są zachowywane. Jeżeli numer warstwy elementu importowanego bloku nie istnieje na danym rysunku, warstwa ta jest inicjowana z parametrami domyślnymi. Ponieważ numery warstw tworzą uporządkowany ciąg liczb całkowitych, w przypadku inicjowania nowej warstwy dla potrzeb importu bloku, również warstwy o ewentualnych numerach pośrednich muszą być zainicjowane.

Istnieje kilka powodów dla których ma zastosowanie opcja stałych warstw. Jednym z nich jest rozdzielenie przeznaczenia warstw lub grup warstw dla różnych branży projektowych, jak również dla różnych elementów rysunku bądź struktur, np. na schematach elektrycznych, schematach funkcjonalnych, mapach, schematach sieci itd.

Wartość parametr /Stałe warstwy/ jest zapamiętywana w każdym rysunku, jak również w każdym rysunku prototypowym.

6.22. Katalogi elementów typowych

Funkcja /Blok//Otwórz katalog/ umożliwia szybki i wygodny dostęp do katalogów bloków (np. elementów typowych czy symboli).

Katalogi zawierają bloki utworzone w programie AlfaCAD i zapisane w katalogu z nazwą z rozszerzeniem .ALF lub .AXX. Z uwagi na fakt iż domyślnym rozszerzeniem nazwy bloku w funkcji importu bloku jest .ALF , zalecane jest stosowanie dla katalogów symboli, typowych elementów itd. dostępnych poprzez funkcję /Otwórz katalog/ rozszerzeń .AXX , dla ich odróżnienia od innych bloków.

Domyślnym folderem katalogu bloków jest folder zadeklarowany w zmiennej „Katalogi” w grupie [KATALOGI] zbioru konfiguracyjnego ALFACAD.INI .

Po wybraniu funkcji, otwierane jest okno dialogowe wyboru katalogu z katalogiem domyślnym jako „pniem drzewa” katalogów. Po wyborze właściwego katalogu z „drzewa”, naciśnięciu przycisku OK, jeżeli katalog zawiera bloki, to znaczy pliki o nazwach z rozszerzeniami .ALF lub AXX, inicjowane jest okno dialogowe katalogu, z widocznymi blokami występującymi w folderze, skalowanymi do rozmiarów pojedynczego przycisku okna dialogowego, wraz z przyciskami sterującymi wyświetlaniem katalogu oraz przyciskiem powrotu do wyboru katalogu bądź z poziomu katalogu domyślnego, bądź z poziomu „korzeni drzewa” katalogów, a więc wyboru dowolnego urządzenia dyskowego lub sieciowego a następnie katalogu.

W przypadku większej liczby elementów katalogu, ich wyświetlanie jest stronicowane. Liczba bloków wyświetlanych na jednej stronie zależy od wielkości okna pulpitu AlfaCAD, a więc zależy od wielkości ekranu oraz wielkości czcionki pulpitu, jak również od wielkości pojedynczego przycisku, którego wielkość można zmieniać przyciskami [< >] i [> <]. Nazwy plików bloków (z pominięciem ścieżki) wyświetlane są poniżej przycisku z rysunkiem bloku.

Wybór bloku w celu wstawienia na rysunku polega na naciśnięciu przycisku, po czym okno dialogowe jest zamykane, a importowany blok wyświetlany dynamicznie oczekując na pozycjonowanie na rysunku, podobnie jak w funkcji /Blok//Import/. Podobnie jak w przypadku importu bloku, w menu pomocniczym dostępne są opcje /Blok/:



Po wyborze blok może być wstawiany wielokrotnie z różnymi parametrami, aż do naciśnięcia klawisza {RMB} albo {Esc}, po czym program powraca do okna dialogowego wyboru bloku z katalogu, wyświetlając ostatnio otwarty katalog. Takie „zapętlenie” funkcji przyspiesza wstawianie bloków na rysunku, co ma szczególne znaczenie w przypadku schematów elektrycznych, schematów funkcjonalnych, ale także rzutów czy elewacji na rysunkach architektonicznych podczas uzupełniania rysunku blokami typowymi stolarki budowlanej czy wyposażenia.

Opuszczenie funkcji następuje po naciśnięciu przycisku z ikoną „Ucieczka”.