02a Obiekty GDL

background image

1

• Rozdzia∏ 1: Wprowadzenie

Podr´cznik j´zyka GDL

1

Wprowadzenie

background image

2

• Rozdzia∏ 1: Wprowadzenie

Podr´cznik j´zyka GDL

1.1 Kilka s∏ów o tym

podr´czniku

Niniejszy podr´cznik jest pe∏nym opisem j´zyka GDL (Geometric
Description Language — J´zyk Opisu Geometrycznego) dost´pne-
go w programie ArchiCAD.

Podr´cznik ten jest przeznaczony dla u˝ytkowników ArchiCADa,
którzy pragnà korzystaç z mo˝liwoÊci wi´kszych ni˝ te, które do-
st´pne sà poprzez u˝ycie standardowych narz´dzi konstrukcyjnych
ArchiCADa i standardowej biblioteki.

Pierwszy rozdzia∏ przeglàdowy pozwala na rozeznanie si´ w ró˝-
nych metodach modelowania. Tworzenie skryptów GDL jest
jedynie jednà z tych mo˝liwoÊci. Cz´Êç t´ warto przeczytaç nieza-
le˝nie od umiej´tnoÊci i bie˝àcych potrzeb.

W drugiej cz´Êci podr´cznika znajduje si´ dok∏adny opis j´zyka
GDL, wraz z definicjà jego sk∏adni, poleceƒ i zmiennych. Jest to
raczej suchy precyzyjny opis techniczny.

Ta cz´Êç jest przeznaczona jedynie dla osób zdecydowanych na
pisanie skryptów GDL. Prawdopodobnie nigdy nie przeczytacie tej
cz´Êci w ca∏oÊci, ale b´dziecie studiowaç jà etapami wraz z rosnà-
cymi potrzebami, doÊwiadczeniami i ambicjami.

Podr´cznik ten zak∏ada przynajmniej Êrednià znajomoÊç ArchiCA-
Da, oraz przeczytanie odpowiednich rozdzia∏ów podr´cznika
ArchiCADa.

1.2 Elementy biblioteczne w

ArchiCADzie

Oprócz podstawowych narz´dzi modelujàcych w ArchiCADzie —
Êcian, stropów i dachów — dost´pne sà wbudowane (okna, drzwi,
obiekty, lampy itp.) oraz rozszerzajàce (m.in. Stair-Maker, ArchiSI-
TE) narz´dzia pozwalajàce na umieszczanie w projekcie
elementów o wczeÊniej zdefiniowanym kszta∏cie. Sposób umiesz-
czania tych elementów zale˝y od ich typu, umieszczone w
projekcie majà ró˝ne w∏aÊciwoÊci, a ich definicje opisane sà ró˝ny-
mi typami dokumentów.

Rzeczà wspólnà dla wszystkich wspomnianych typów elementów
jest metoda definiowania ich dwu- i trójwymiarowego wyglàdu i
w∏asnoÊci.

background image

3

• Rozdzia∏ 1: Wprowadzenie

Podr´cznik j´zyka GDL

Podr´cznik j´zyka GDL powinien pomóc Ci w nauczeniu si´ tego
efektywnego j´zyka ArchiCADa, umo˝liwiajàcego uzupe∏nienie
Twoich projektów obiektami, ornamentami oraz szeregiem innych
detali zaprojektowanych przez Ciebie.

èród∏a elementów GDL

Biblioteka ArchiCADa

Rzeczà godnà polecenia jest dok∏adne przejrzenie zawartoÊci Bi-
blioteki ArchiCADa, jeszcze przed rozpocz´ciem prac w GDLu.
Przestudiuj wszystkie dost´pne elementy zanim rozpoczniesz two-
rzenie w∏asnych — mo˝e znajdziesz u˝yteczne elementy, których
jeszcze nigdy nie próbowa∏eÊ u˝ywaç.

PowinieneÊ si´ równie˝ zapoznaç z wymiarami i dodatkowymi pa-
rametrami elementów bibliotecznych, które pozwalajà na
dostosowanie ich do Twoich potrzeb.

background image

4

• Rozdzia∏ 1: Wprowadzenie

Podr´cznik j´zyka GDL

Biblioteki uzupe∏niajàce

Dost´pnych jest kilkanaÊcie specjalnych bibliotek zawierajàcych
trójwymiarowe elementy otoczenia, pojazdy, umeblowanie, itp. w
firmie Graphisoft ( The Graphisoft Collection) oraz w niezale˝nych
firmach tworzàcych w∏asne biblioteki.

StairMaker

Program StairMaker z pakietu ArchiCAD jest jakby bibliotekà z∏o˝o-
nà z rozbudowanych elementów bibliotecznych, jakimi sà schody
ró˝nych typów. Dodatkowo mogà one byç dopasowywane do kon-
kretnych potrzeb.

Model spiralnych schodów ze StairMakera

Programy rozszerzajàce

Sà to programy mogàce tworzyç lub modyfikowaç elementy biblio-
teczne ArchiCADa. Obiekty stworzone przez te aplikacje zawierajà
skrypty GDL i inne potrzebne dane. Sà one dost´pne poprzez Ar-
chiCADa lub te˝ mo˝na z nimi pracowaç jak z samodzielnymi
programami. Szczegó∏ów szukaj u sprzedawców ArchiCADa.

background image

5

• Rozdzia∏ 1: Wprowadzenie

Podr´cznik j´zyka GDL

Biblioteki w formacie DXF

Biblioteki DXF sà szeroko rozpowszechnione w Êwiecie CAD i po-
krywajà niemal wszystkie potrzeby przy konstruowaniu
i projektowaniu. Wielu producentów oferuje symbole lub modele
swoich produktów w formacie DXF.

ArchiCAD umo˝liwia w prosty sposób importowanie takich biblio-
tek.

U˝ycie w∏asnych umiej´tnoÊci

W wielu przypadkach potrzebne sà elementy których nie ma w bi-
bliotece. W takich przypadkach istnieje równie˝ kilka sposobów
utworzenia tych elementów bez koniecznoÊci u˝ywania bezpoÊred-
nio j´zyka GDL.

Tworzenie elementów w innych
aplikacjach 3D

ArchiCAD mo˝e importowaç modele 3D utworzone za pomocà
programów ZOOM Wavefront, lub Form•Z. Aplikacje te sà uniwer-
salnymi programami do trójwymiarowego modelowania,
umo˝liwiajàcymi tworzenie dowolnych kszta∏tów. Przy tej meto-
dzie musisz nauczyç si´ u˝ywania jednego z tych programów.

Tworzenie elementów za pomocà narz´dzi
ArchiCADa

Âciany, stropy, dachy oraz inne narz´dzia ArchiCADa, niezale˝nie
od ich podstawowego zastosowania, mogà s∏u˝yç do budowania
innych dowolnych elementów projektu. Mo˝na np. w prosty spo-
sób zbudowaç stó∏ u˝ywajàc Êcian i stropu. Konstrukcj´ takà
mo˝na zachowaç jako element biblioteczny, aby by∏a traktowana
póêniej jako pojedynczy element projektu. Dzi´ki temu element
taki mo˝e zostaç u˝yty równie˝ w innych projektach.

Elementy biblioteczne utworzone w taki sposób mogà byç zacho-
wane jako skrypty GDL lub w formacie dwójkowym (binarnym).

Skrypty GDL mogà byç zmieniane, dzi´ki czemu mo˝na udoskona-
laç te elementy poprzez modyfikacj´ skryptu. Elementy zapisane
dwójkowo sà szybciej przedstawiane w widoku 3D, ale majà bar-
dzo ograniczonà mo˝liwoÊç wprowadzania zmian. Je˝eli potrzebne
b´dà wi´ksze zmiany, trzeba powróciç do oryginalnego projektu,
wykonaç potrzebne modyfikacje, a nast´pnie ponownie zachowaç
ca∏oÊç jako element biblioteczny.

background image

6

• Rozdzia∏ 1: Wprowadzenie

Podr´cznik j´zyka GDL

Okno gotyckie wymodelowane za pomocà stropów i dachów
wielospadowych

Elementy biblioteczne zachowane jako skrypt GDL majà ró˝nà z∏o-
˝onoÊç w zale˝noÊci od u˝ytych do ich utworzenia narz´dzi
ArchiCADa.

Dok∏adne informacje o elementach bibliotecznych utworzonych w
oknie rzutu ArchiCADa znajdziesz w rozdzia∏ach “GDL tworzony z
rzutu ArchiCADa” i “Tworzenie obiektów w ArchiCADzie”

Dodatek B.

Pisanie skryptów GDL

Je˝eli chcesz si´gnàç dalej ni˝ umo˝liwiajà to wymienione wcze-
Êniej metody lub potrzebujesz elementów o kszta∏cie zale˝nym od
parametrów, Twoim nast´pnym krokiem powinno byç u˝ycie j´zy-
ka GDL i Êrodowiska tworzenia skryptów dost´pnego w
ArchiCADzie.

background image

7

• Rozdzia∏ 1: Wprowadzenie

Podr´cznik j´zyka GDL

1.3 Przeglàd mo˝liwoÊci

skryptów GDL

Co to jest GDL?

GDL jest parametrycznym j´zykiem programowania podobnym
do BASICa wbudowanym w program ArchiCAD. Jego przeznacze-
niem jest opis trójwymiarowych obiektów i dwuwymiarowych
symboli przedstawiajàcych te modele na rzucie. Modelowane figu-
ry mogà byç oknami, drzwiami, lampami lub swobodnie
umieszczanymi w projekcie obiektami takimi jak: meble, elementy
konstrukcyjne, schody lub wyposa˝enie. Obiekty te nazywane sà
elementami bibliotecznymi.

Ka˝dy element biblioteczny opisany w GDLu ma

skrypty opisujà-

ce jego rzeczywisty wyglàd w trzech wymiarach oraz wyglàd jego
symbolu. Elementy biblioteczne mogà mieç równie˝ opis cech,
u˝ywany w przeliczeniach materia∏owych.

ArchiCAD udost´pnia Êrodowisko pracy pomocne w tworzeniu
skryptów GDL, umo˝liwiajàce prezentacj´ elementu oraz spraw-
dzanie sk∏adni i wyszukiwanie b∏´dów w skrypcie.

Analiza, dekompozycja, uproszczenie

Niezale˝nie od stopnia z∏o˝onoÊci wi´kszoÊç obiektów, które
chcesz stworzyç, daje si´ roz∏o˝yç na elementy sk∏adowe o pro-
stym kszta∏cie. Zawsze zaczynaj od prostej, krótkiej analizy
przysz∏ego elementu bibliotecznego i zdefiniuj bloki, z których jest
on z∏o˝ony. Tylko po takiej “dekompozycji” mo˝na efektywnie opi-
saç poszczególne bloki za pomocà j´zyka GDL. Je˝eli
przeprowadzona analiza by∏a dobra, to utworzony element b´dzie
zbli˝ony do wymyÊlonego idea∏u.

background image

8

• Rozdzia∏ 1: Wprowadzenie

Podr´cznik j´zyka GDL

Modele drzewa o ró˝nym stopniu z∏o˝onoÊci

Aby przeprowadziç analiz´, musisz mieç dobre wyczucie przestrze-
ni i przynajmniej podstawowà wiedz´ o geometrii opisowej.

Aby zapobiec pora˝kom i wprowadziç jakiÊ plan nauki, zacznij od
elementów o sta∏ych rozmiarach i nadaj im najprostszà, rozpozna-
walnà form´. Gdy lepiej poznasz modelowanie, b´dziesz móg∏
zmniejszyç iloÊç uproszczeƒ i zbli˝aç si´ coraz bardziej do idea∏u.

“Idea∏”, niekoniecznie musi oznaczaç “z∏o˝ony”. Zale˝nie od cha-
rakteru projektu, idealny element mo˝e byç zarówno jedynie
zarysem, jak i precyzyjnym modelem. Drzewo z lewej na poprzed-
niej ilustracji doskonale spe∏nia wymagania dla projektów
urbanistycznych. Drzewo z prawej daje wi´cej realizmu przy pre-
zentacji domu, ale nie wnosi nic nowego przy projektach
urbanistycznych. Natomiast ró˝nica w czasie obliczania widoku 3D
drzewa prostego i z∏o˝onego jest bardzo wyraêna.

Dopracowanie

Zale˝nie od przeznaczenia, elementy biblioteczne mogà si´ ró˝niç
stopniem dopracowania. Przyk∏adowo, obiekty tylko do u˝ycia we
w∏asnej pracowni mogà byç mniej dopracowane, ni˝ te przezna-
czone do sprzeda˝y.

Je˝eli symbole elementów pojawiajàce si´ na rzucie majà ma∏e zna-
czenie lub zmiany parametrów nie wp∏ywajà na widok 2D, mo˝na
wtedy pominàç tworzenie skryptu 2D elementu.

Równie˝, kiedy konieczne jest uwzgl´dnienie zmian parametrów w
symbolu 2D, mo˝na ominàç tworzenie skryptu 2D poprzez utwo-

background image

9

• Rozdzia∏ 1: Wprowadzenie

Podr´cznik j´zyka GDL

rzenie grupy elementów o ró˝nych symbolach, ale o identycznym
opisie 3D (symbole 2D mo˝na tworzyç poprzez kopiowanie wido-
ku z góry na element przy ró˝nych ustawieniach parametrów).

Bardziej z∏o˝one i skomplikowane elementy biblioteczne zawierajà
parametryczny opis 3D oraz odpowiadajàcy mu parametryczny
opis symbolu 2D. Wszystkie zmiany parametrów wp∏ywajà nie tyl-
ko na widok 3D, ale równie˝ na symbol elementu pojawiajàcy si´
na rzucie.

Startujemy

Potrzeby Twojego projektu, doÊwiadczenia w programowaniu oraz
wiedza o sposobach opisywania geometrii b´dà prawdopodobnie
u∏atwieniem przy rozpoczynaniu pracy z GDLem.

Nie zaczynaj prób z GDLem od z∏o˝onych obiektów. Zacznij naj-
pierw nauk´ od najprostszych eksperymentów z pojedynczymi
poleceniami, aby dopiero póêniej próbowaç budowy bardziej z∏o-
˝onych elementów, u˝ywajàc wi´kszej iloÊci poleceƒ. Kieruj si´
przedstawionymi dalej zaleceniami, zgodnie ze swoimi doÊwiadcze-
niami.

Je˝eli znasz j´zyki programowania takie jak BASIC, mo˝esz wiele
dowiedzieç si´ przeglàdajàc istniejàce skrypty GDL. Mo˝esz uczyç
si´ otwierajàc elementy biblioteczne dostarczone z ArchiCADem
i przeglàdajàc ich skrypty 2D i 3D. Mo˝esz równie˝ oglàdaç skrypty
powsta∏e poprzez zapisanie elementów rzutu jako skrypt GDL.

Je˝eli nie znasz ˝adnego j´zyka programowania podobnego do BA-
SICa, ale bawi∏eÊ si´ klockami LEGO™ (co jest znacznie prostsze
od programowania), mo˝esz spróbowaç wykorzystaç to jako po-
moc przy nauce j´zyka GDL. Radzimy u˝ywaç najprostszych
poleceƒ j´zyka GDL, obserwowaç efekty w oknie 3D elementu bi-

background image

10

• Rozdzia∏ 1: Wprowadzenie

Podr´cznik j´zyka GDL

bliotecznego, a nast´pnie spróbowaç sk∏adania tych elementów,
tak jak sk∏ada si´ klocki LEGO™.

Dok∏adniejsze informacje dotyczàce Êrodowiska pracy nad elemen-
tem bibliotecznym znajdziesz w opisie polecenia Otwórz element z
biblioteki… w rozdziale 5 podr´cznika ArchiCADa.

Najprostsze polecenia

Komendy te nale˝à do grupy ∏atwych do zrozumienia i u˝ycia. Nie
wymagajà one doÊwiadczenia programisty. Jednak pomimo ograni-
czeƒ, przy ich pomocy mo˝na stworzyç nowe elementy
biblioteczne.

Proste figury

Figury GDL sà prostymi obiektami geometrycznymi, które dodawa-
ne do siebie tworzà z∏o˝one elementy biblioteczne. Figury te sà
w∏aÊnie klockami LEGO™ j´zyka GDL. Figura zostaje umieszczona
w przestrzeni poprzez napisanie odpowiedniego polecenia w j´zy-
ku GDL.

Polecenie umieszczenia figury sk∏ada si´ ze s∏owa kluczowego
okreÊlajàcego jakà figur´ umieszczamy oraz pewnej liczby argu-
mentów b´dàcych liczbami lub literami opisujàcymi wymiary
umieszczanej figury.

Liczba argumentów jest zale˝na od rodzaju umieszczanej figury.

Najprostszymi poleceniami, od których zaczniemy sà:

Dla opisu 3D:

BLOCK

CYLIND

SPHERE

PRISM

(prostopad∏oÊcian, walec, sfera, graniastos∏up)

Dla symbolu 2D:

LINE2

RECT2

POLY2

CIRCLE2

ARC2

Przekszta∏cenia uk∏adu wspó∏rz´dnych

Przekszta∏canie uk∏adu wspó∏rz´dnych jest odpowiednikiem prze-
mieszczania r´ki przy umieszczaniu klocka LEGO

. Przekszta∏cenie

ustawia po∏o˝enie, orientacj´ i skal´ dla nast´pnego umieszczanego
elementu.

Okno 3D elementu bibliotecznego umo˝liwia obejrzenie po∏o˝enia,
ustawienia i skali bie˝àcego i globalnego uk∏adu wspó∏rz´dnych.

background image

11

• Rozdzia∏ 1: Wprowadzenie

Podr´cznik j´zyka GDL

BLOCK 0.8, 0.6, 0.4

ADDX 1.5

ROTY 30
MULX 0.5

BLOCK 0.8, 0.6, 0.4

Najprostszymi poleceniami przekszta∏cenia uk∏adu wspó∏rz´dnych
sà:

Dla opisu 3D:

ADDX

ADDY

ADDZ

ROTX

ROTY

ROTZ

Dla symbolu 2D:

ADD2

ROT2

Polecenia rozpoczynajàce si´ od ADD przenoszà wzd∏u˝, a polece-
nia ROT obracajà figury wzd∏u˝ odpowiednich osi.

Polecenia o Êredniej z∏o˝onoÊci

Polecenia te sà nieco bardziej skomplikowane. Nie dlatego, ˝e wy-
magajà wi´kszej wiedzy, ale dlatego, ˝e opisujà bardziej z∏o˝one
kszta∏ty i bardziej abstrakcyjne transformacje.

Figury

Polecenia umieszczenia figur z tej grupy to:

Dla opisu 3D:

ELLIPS

CONE

POLY_

LIN_

PLANE

PLANE_

PRISM_

CPRISM_

SLAB

SLAB_

CSLAB_

background image

12

• Rozdzia∏ 1: Wprowadzenie

Podr´cznik j´zyka GDL

Dla symbolu 2D:

HOTSPOT2

POLY2_

TEXT2

FRAGMENT2

Polecenia te wymagajà zwykle wi´kszej liczby argumentów ni˝ ele-
menty proste. Niektóre z nich wymagajà dodatkowo podania
wartoÊci statusu do sterowania widocznoÊcià kraw´dzi i po-
wierzchni.

Przekszta∏cenia uk∏adu wspó∏rz´dnych

Dla opisu 3D:

MULX

MULY

MULZ

ADD

MUL

ROT

Dla symbolu 2D:

MUL2

Polecenia zawierajàce w nazwie MUL przeskalowujà uk∏ad wspó∏-
rz´dnych, zmieniajàc rozmiary i proporcje umieszczanych po nich
figur np; zniekszta∏cajàc okr´gi w elipsy, lub sfery w elipsoidy. Je-
˝eli polecenia te u˝yte zostajà z ujemnymi wartoÊciami
argumentów, to dodatkowo uzyskamy efekt odbicia lustrzanego.
Polecenia umieszczone w drugim wierszu wykonujà operacje na
wszystkich trzech wspó∏rz´dnych jednoczeÊnie.

Zaawansowane polecenia i mo˝liwoÊci

Polecenia te wnoszà nowy stopieƒ z∏o˝onoÊci. Jedne ze wzgl´du na
skomplikowane kszta∏ty geometryczne, inne ze wzgl´du na to, ˝e
sà typowymi sk∏adnikami j´zyków programowania.

Figury

Najbardziej z∏o˝onymi poleceniami opisujàcymi figury sà:

Dla opisu 3D:

BPRISM_

BWALL_

CWALL_

CROOF_

EXTRUDE

PYRAMID

REVOLVE

RULED

SWEEP

TUBE

MESH

COONS

LIGHT

PICTURE

Polecenia te wykorzystujà przestrzenne linie ∏amane i ∏amanà p∏a-
skà, umo˝liwiajàc tworzenie g∏adkich zakrzywionych powierzchni.
Niektóre z tych figur wymagajà dodatkowo podania materia∏ów
powierzchni.

background image

13

• Rozdzia∏ 1: Wprowadzenie

Podr´cznik j´zyka GDL

P∏aszczyzny ci´cia

U˝ywajàc p∏aszczyzn ci´cia, mo˝na z prostych figur tworzyç skom-
plikowane bry∏y Odpowiednie komendy to: CUTPLANE i
CUTEND.

Instrukcje sterujàce i instrukcje warunkowe

FOR

NEXT

IF

GOTO

GOSUB

RETURN

END

EXIT

Polecenia te powinny byç znane ka˝demu, kto kiedykolwiek zajmo-
wa∏ si´ programowaniem. Sà to jednak instrukcje podstawowe,
dzi´ki czemu mo˝esz zrozumieç ich dzia∏anie bez specjalnego do-
Êwiadczenia programistycznego.

Polecenia te pozwalajà na wielokrotne wykonywanie fragmentów
skryptu, co w po∏àczeniu z transformacjami uk∏adu wspó∏rz´dnych
pozwala na tworzenie z∏o˝onych kszta∏tów za pomocà krótkich
skryptów.

alpha = 25

FOR i=1 TO 4
BLOCK i, i/2, i/3

ADDX 2*i

ADDZ i/3
ROTZ alfa

NEXT i

Parametry

Po opanowaniu poleceƒ mo˝na zaczàç u˝ywaç zamiast liczb zmien-
nych literowych reprezentujàcych parametry elementu
bibliotecznego. Pozwala to na tworzenie bardziej elastycznych ele-
mentów. WartoÊci zmiennych mo˝na ustawiaç w oknie ustawieƒ
elementu bibliotecznego przy pracy nad rzutem projektu.

background image

14

• Rozdzia∏ 1: Wprowadzenie

Podr´cznik j´zyka GDL

Wywo∏ania makrodefinicji

Podczas tworzenia skryptów GDL nie musisz ograniczaç si´ do
standardowych dost´pnych w nim figur. Ka˝dy element bibliotecz-
ny mo˝e byç traktowany jako pojedyncza figura. Aby go
wykorzystaç wystarczy podaç jego nazw´, a za nià wszystkie jego
parametry jak dla poleceƒ umieszczajàcych zwyk∏e figury.

Dla eksperta

Z czasem, kiedy wszystkie polecenia i mo˝liwoÊci przedstawione
powy˝ej b´dà Ci doskonale znane, dasz sobie równie˝ rad´ z pozo-
sta∏ymi poleceniami, potrzebnymi tylko w nielicznych sytuacjach.

Uwaga: PojemnoÊç pami´ci RAM Twojego komputera mo˝e ogra-
niczyç maksymalnà d∏ugoÊç skryptu GDL, iloÊç wywo∏ywanych
makrodefinicji oraz liczb´ wykonanych przekszta∏ceƒ uk∏adu
wspó∏rz´dnych.

Wi´cej informacji o poszczególnych poleceniach j´zyka GDL znaj-
dziesz w dalszej cz´Êci tego podr´cznika.

Krótkà informacj´ na temat poszczególnych poleceƒ dost´pnych w
j´zyku GDL znajdziesz wybierajàc odpowiednià stron´ z menu po-
mocy ArchiCADa

1.4 Jak ArchiCAD tworzy obraz

3D

Modelowanie 3D w ArchiCADzie oparte jest o

arytmetyk´ zmien-

noprzecinkowà (liczby rzeczywiste), dzi´ki czemu nie ma
ograniczeƒ rozmiarów geometrycznych modelu. Niezale˝nie od
skali, ka˝dy obiekt zachowuje takà samà precyzj´ szczegó∏ów.

Ostateczny obraz 3D wyÊwietlany na ekranie jest z∏o˝ony z

podsta-

wowych elementów geometrycznych. Te elementy tworzone
przez ArchiCADa na podstawie rzutu, przechowywane sà w pami´-
ci komputera w postaci dwójkowej. PrzejÊcie od rzutu projektu
architektonicznego do dwójkowego opisu 3D nazywane jest kon-
wersjà 3D.

W ArchiCADzie u˝ywane sà nast´pujàce podstawowe elementy
geometryczne::

-

wierzcho∏ki (vertix) elementów sk∏adowych projektu,

-

kraw´dzie (edge) ∏àczàce te wierzcho∏ki,

-

wieloboki (polygon) tworzone przez kraw´dzie.

background image

15

• Rozdzia∏ 1: Wprowadzenie

Podr´cznik j´zyka GDL

Grupy tych prostych elementów ∏àczone sà razem w

bry∏y

(body). W∏aÊnie te bry∏y sk∏adajà si´ na model 3D. Wszystkie mo˝-
liwoÊci wizualizacji 3D ArchiCADa — g∏adkie powierzchnie,
rzucanie cieni, po∏ysk czy przezroczystoÊç — oparte sà na informa-
cjach zawartych w opisie tych bry∏.

Przestrzeƒ w ArchiCADzie

Model 3D jest tworzony w przestrzeni opisanej

globalnym uk∏a-

dem wspó∏rz´dnych x, y i z.

W ArchiCADzie mo˝na zobaczyç poczàtek globalnego uk∏adu
wspó∏rz´dnych w lewym dolnym naro˝niku okna rzutu, je˝eli
otworzymy program bez ˝adnego projektu. Dodatkowo poczàtek
globalnego uk∏adu wspó∏rz´dnych wyznacza poziom zera projektu.

Gdy na rzucie umieszczany jest obiekt, jego wspó∏rz´dne x i y wy-
znaczone sà przez jego po∏o˝enie, a jego wspó∏rz´dna z jest
ustawiana w oknie ustawieƒ tego obiektu. Tak wyznaczone wspó∏-
rz´dne sà podstawà dla poczàtkowego ustawienia

lokalnego

uk∏adu wspó∏rz´dnych dla obiektu. Wszystkie figury zdefiniowa-
ne w skrypcie obiektu sà umieszczane w∏aÊnie wzgl´dem tego
lokalnego uk∏adu wspó∏rz´dnych

Do czego potrzebne sà
przekszta∏cenia uk∏adu
wspó∏rz´dnych?

Wszystkie figury GDL sà umieszczane w poczàtku lokalnego uk∏adu
wspó∏rz´dnych. Dla przyk∏adu: polecenie BLOCK umieszcza pro-
stopad∏oÊcian o jednym z wierzcho∏ków w poczàtku lokalnego
uk∏adu wspó∏rz´dnych, którego d∏ugoÊç, szerokoÊç i wysokoÊç sà
zdefiniowane wzd∏u˝ osi tego uk∏adu, zawsze w kierunku ich war-
toÊci dodatnich. Dzi´ki temu polecenie to wymaga tylko trzech
argumentów opisujàcych jedynie wymiary prostopad∏oÊcianu
wzd∏u˝ osi.

Jak zdefiniowaç inny prostopad∏oÊcian — przesuni´ty i obrócony?
Za pomocà polecenia BLOCK jest to niemo˝liwe. Poleceniu temu
brakuje parametrów definiujàcych przesuni´cie i obrót.

Odpowiedzià jest przesuniecie uk∏adu wspó∏rz´dnych na w∏aÊciwà
pozycj´ przed wywo∏aniem polecenia BLOCK. Przy pomocy pole-
ceƒ przekszta∏cajàcych uk∏ad wspó∏rz´dnych, mo˝na wst´pnie
zdefiniowaç po∏o˝enie oraz obrót wokó∏ osi. Transformacje wp∏y-
wajà tylko na nast´pujàce po nich kszta∏ty, nigdy na poprzedzajàce.

background image

16

• Rozdzia∏ 1: Wprowadzenie

Podr´cznik j´zyka GDL

Modu∏ interpretera GDL

Podczas wykonywania skryptu GDL modu∏ interpretera GDL Archi-
CADa odczytuje pozycj´, rozmiary, orientacj´ i ewentualne
“lustrzane” umieszczanie elementu bibliotecznego. Nast´pnie inter-
preter umieszcza i odpowiednio przekszta∏ca lokalny uk∏ad
wspó∏rz´dnych tak, aby mo˝na w nim by∏o prawid∏owo wykonaç
skrypt GDL elementu bibliotecznego. Za ka˝dym razem, kiedy wy-
dawane jest polecenie umieszczenia jakiejÊ figury, przekazywane
jest ono do modu∏u interpretera GDL, który zamienia je na elemen-
ty podstawowe sk∏adajàce si´ na t´ figur´.

Kiedy interpreter skoƒczy konwersj´, pe∏ny model 3D jest ju˝
umieszczony w pami´ci, dzi´ki czemu mo˝na oglàdaç go w oknie
3D, wykonaç fotoprezentacj´ lub animacj´. ArchiCAD zawiera pre-
kompilator i interpreter GDL. Rezultat prekompilacji jest
umieszczany w niewidocznej cz´Êci pliku. Interpreter GDL u˝ywa
w∏aÊnie tej prekompilowanej wersji skryptu, dzi´ki czemu interpre-
tacja jest znacznie szybsza. Ka˝da modyfikacja skryptu GDL
powoduje jedynie wykonanie ponownej jego prekompilacji.

Struktury danych konwertowane z innych formatów (np. DXF,
Zoom, Wavefront) sà przechowywane w bloku opisu dwójkowego
elementu bibliotecznego. Odwo∏anie do tego bloku nast´puje za
pomocà instrukcji BINARY umieszczonej w skrypcie GDL.

Porzàdek analizy skryptu GDL

U˝ytkownicy ArchiCADa nie majà kontroli nad kolejnoÊcià analizy
umieszczonych na rzucie obiektów bibliotecznych. KolejnoÊç anali-
zy skryptu GDL bazuje na wewn´trznej strukturze danych. Ponadto
operacje przywo∏anie (Undo) i odwo∏anie (Redo) oraz inne zmiany,
mogà mieç wp∏yw na ich kolejnoÊç. Jedynym wyjàtkiem jest skrypt
MASTER_GDL, który jest wykonywany jako pierwszy w ka˝dej kon-
wersji 3D przed innymi skryptami. Skrypt ten nie jest wykonywany
podczas modyfikacji obiektów bibliotecznych. JeÊli wybrana biblio-
teka zawiera wi´cej ni˝ jeden plik, którego nazwa rozpoczyna si´
zwrotem "MASTER_GDL", b´dzie on wykonywany w nieokreÊlo-
nym porzàdku podczas ∏adowania obiektów bibliotecznych.

background image

17

• Rozdzia∏ 1: Wprowadzenie

Podr´cznik j´zyka GDL

1.5 Tworzenie obiektów w

ArchiCADzie

Tradycyjnà metodà tworzenia elementów bibliotecznych by∏o r´cz-
ne pisanie ich skryptów

GDL oraz rysowanie symbolu 2D.

ArchiCAD oferuje dwie mo˝liwoÊci automatyzacji tej czynnoÊci,
poprzez zachowanie zestawu elementów rzutu jako jeden trójwy-
miarowy element biblioteczny.

1) Zachowanie ca∏ego lub cz´Êci projektu jako skrypt

GDL .

Przy tej metodzie elementy rzutu zachowywane sà tak, jak opisano
to w dodatku 3. Taki dokument

GDL mo˝e byç otwierany i modyfi-

kowany w ArchiCADzie, zarówno jako

GDL , jak i jako element

biblioteczny.

2) Zachowanie bie˝àcego modelu wyÊwietlonego w oknie 3D jako
elementu bibliotecznego z symbolem 2D i opisem 3D.

W tym przypadku opis 3D mo˝e byç zarówno skryptem

GDL , jak i

plikiem dwójkowym, którego nie mo˝na modyfikowaç. Symbol 2D
powstaje wprost z obrazka wyÊwietlonego w oknie 3D.

Kolejne kroki tworzenia elementu bibliotecznego:

- Za pomocà narz´dzi konstrukcyjnych ArchiCADa nale˝y stworzyç
model elementu.

- Utworzyç model 3D poprzez ustawienie odpowiedniego widoku i
wybranie okna widoku 3D.

- Przed zachowaniem obiektu nale˝y ustawiç odpowiednià projek-
cj´, tak aby okno 3D zawiera∏o przysz∏y widok z góry na utworzony
elementy biblioteczny, który jednoczeÊnie b´dzie symbolem 2D
elementu. W przypadku okien i drzwi widok ten nie ma wp∏ywu
na symbol 2D.

- Nast´pnie nale˝y wybraç polecenie Zachowaj jako… z menu
Plik i wybraç jako typ pliku element biblioteczny.

- Po naciÊni´ciu przycisku Zachowaj nale˝y ustawiç odpowiednie
opcje w pojawiajàcym si´ oknie dialogowym.

Opis 3D elementu bibliotecznego zawiera niezb´dne przekszta∏ce-
nia uk∏adu wspó∏rz´dnych, potrzebne aby ustawiç odpowiedni
widok i przesunàç poczàtek uk∏adu wspó∏rz´dnych. Zapobiega wy-
st´powaniu du˝ych wartoÊci wspó∏rz´dnych elementów w
skrypcie.

Wymienione przekszta∏cenia zale˝à od typu zachowywanego ele-
mentu bibliotecznego.

background image

18

• Rozdzia∏ 1: Wprowadzenie

Podr´cznik j´zyka GDL

Obiekty: symbol 2D jest tworzony wprost z widoku 3D, w trybie
szkieletowym lub ukrytych linii. Symbol i opis GDL modyfikowane
sà tak, by poczàtek uk∏adu wspó∏rz´dnych nie znajdujàcy si´ we-
wnàtrz okalajàcego element prostokàta, by∏ przesuwany do
dolnego lewego naro˝nika tego prostokàta.

Okna/Drzwi: standardowe ustawienie uk∏adu wspó∏rz´dnych dla
tych elementów jest przekszta∏cane tak, ˝e p∏aszczyzna x-y jest
ustawiana pionowo a oÊ z wskazuje poziomo wn´trze Êciany. Po-
czàtek uk∏adu wspó∏rz´dnych jest przesuwany na Êrodek podstawy
po zewn´trznej stronie drzwi. W ten sposób drzwi i okna mogà
byç w prosty sposób modelowane na rzucie, jak na rysunku poni-
˝ej.

Ze wzgl´du na specjalnà funkcj´ okien i drzwi, ich symbol 2D jest
tworzony za pomocà specjalnej, niedost´pnej bezpoÊrednio dla
u˝ytkownika projekcji — widok z boku z kàtem 90°. Poczàtek uk∏a-
du wspó∏rz´dnych jest umieszczany na Êrodku (x) dolnej kraw´dzi
(y) prostokàta okalajàcego element. Wzd∏u˝ osi z nie dokonuje si´
˝adnych modyfikacji, co pozwala na modelowanie g∏´bokoÊci
umieszczenia elementu w Êcianie.

Zgodnie z tymi regu∏ami mo˝na przedstawiç kilka rad umo˝liwiajà-
cych prawid∏owe konstruowanie okien i drzwi:

- Budujàc okno/drzwi na rzucie nale˝y traktowaç rzut jako widok
od wewnàtrz.

- Poziom zerowy projektu nale˝y traktowaç jako powierzchni´ ze-
wn´trznà Êciany, w którà wstawiane b´dzie okno.

- Elementy, które majà byç umieszczone wewnàtrz Êciany muszà
znajdowaç si´ powy˝ej poziomu zerowego.

- Okiennice, okna otwarte na zewnàtrz itp. powinny znajdowaç si´
poni˝ej poziomu zerowego.

background image

19

• Rozdzia∏ 1: Wprowadzenie

Podr´cznik j´zyka GDL

- Je˝eli chcesz dopasowaç materia∏y cz´Êci okna/drzwi do materia-
∏ów Êciany, to materia∏ spodu powinien odpowiadaç
zewn´trznemu materia∏owi Êciany a materia∏ górny powinien odpo-
wiadaç wewn´trznemu materia∏owi Êciany.

background image

20

• Rozdzia∏ 1: Wprowadzenie

Podr´cznik j´zyka GDL

background image

21

• Rozdzia∏ 2: Sk∏adnia GDL

Podr´cznik j´zyka GDL

2

Sk∏adnia GDL

background image

22

• Rozdzia∏ 2: Sk∏adnia GDL

Podr´cznik j´zyka GDL

GDL nie rozró˝nia wielkoÊci liter — ma∏e i wielkie litery sà trakto-
wane identycznie. Logiczny koniec skryptu GDL jest wyznaczony
poprzez instrukcj´ END lub EXIT lub poprzez koniec pliku.

Instrukcje

Program w j´zyku GDL zbudowany jest z instrukcji. Instrukcja

mo˝e zaczynaç si´ od s∏owa kluczowego (definicja figury GDL,
przekszta∏cenie uk∏adu wspó∏rz´dnych lub sterowanie wykona-
niem programu), od nazwy makrodefinicji (zobacz rozdzia∏ 5.4)
lub od nazwy zmiennej, po której wyst´puje znak ‘=’ i wyra˝enie
arytmetyczne.

Linia

Instrukcje umieszczane sà w osobnych liniach (rozdzielane sà

znakami koƒca linii).

Przecinek umieszczony jako ostatni znak w linii oznacza, ˝e in-
strukcja jest kontynuowana w nast´pnej linii. Ârednik (;) jest
u˝ywany jako separator instrukcji GDL, umieszczonych w jednej
linii. Za znakiem wykrzyknika (!) mo˝na pisaç dowolne komentarze
(a˝ do koƒca linii). W skrypcie mo˝na wstawiaç dowolne iloÊci pu-
stych linii, a równie˝ dowolnà liczb´ znaków spacji i znaków
tabulatora pomi´dzy argumenty i/lub operatory. Pomi´dzy s∏owem
kluczowym (lub wywo∏aniem makrodefinicji), a pierwszym argu-
mentem konieczne jest umieszczenie jednego znaku spacji lub
tabulatora.

Etykieta

Ka˝da linia mo˝e zaczynaç si´ od etykiety. Etykieta jest liczbà

ca∏kowità, po której nast´puje dwukropek. Etykieta jest znaczni-
kiem dla instrukcji sterujàcych wykonaniem skryptu. Etykiety sà
sprawdzane pod kàtem powtórzeƒ. Wykonywanie programu mo˝e
byç kontynuowane od instrukcji wskazanej dowolnà etykietà
dzi´ki instrukcjom GOTO i GOSUB.

Dost´pne znaki

Tekst skryptu GDL jest z∏o˝ony z ma∏ych i wielkich liter alfabetu

∏aciƒskiego, cyfr oraz nast´pujàcych znaków: :

<spacja>

_

(podkreÊlenie) ~ ! : , ; . + –

* / ^ = < > # ( ) |

(pionowa kreska)

" ' ` ” “ ’ ‘

(<koniec_linii>)

Zmienne znakowe

Ka˝dy ciàg znaków umieszczony pomi´dzy znakami cudzys∏owia

(",',`,”,’,“,‘) lub ciàg bez znaków cudzys∏owia, które nie figurujà w
skrypcie jako identyfikatory z nadanà wartoÊcià (odwo∏ania do
makrodefinicji, atrybuty, nazwy plików). Ciàgi bez cudzys∏owia
b´dà konwertowane do du˝ych liter, dlatego zaleca si´ stosowanie
znaków cudzys∏owia. Liczba znaków w ciàgu, nie mo˝e przekro-
czyç 255 znaków.

background image

23

• Rozdzia∏ 2: Sk∏adnia GDL

Podr´cznik j´zyka GDL

Znak '\' ma specjalne znaczenie kontrolne. Jego znaczenie zale˝y
od nast´pnego znaku.

\\

'\' sam znak

\n

nowa linia

\t

tabulator

\<CR>

kontynuacja lini bez przejÊcia do nast´pnej linii

\inny_znak

prowadzi do b∏´dnych wyników

Przyk∏ady:

"To jest ciàg"
“obiekt 1'-6”*1'-2“

'Nie stosowaç innych wymiarów'

Identyfikatory

sà specjalnymi ciàgami znaków:

sà krótsze ni˝ 255 znaków,

rozpoczynajà si´ literà lub znakami'_' czy '~' ,

sk∏adajà si´ z liter, numerów i znaków '_'.

Nierozró˝niane sà ma∏e i du˝e litery.

Identyfikatory mogà byç s∏owami kluczowymi GDL, lokalnymi
zmiennymi lub ciàgami znaków (nazwy). S∏owa kluczowe, oraz
zmienne globalne sà standardowo zdefiniowane w ArchiCADzie.
Wszystkie pozosta∏e identyfikatory mogà byç u˝yte jako nazwy
zmiennych.

Zmienne

Program GDL mo˝e zawieraç zmienne liczbowe i znakowe

(definiowane poprzez ich literowe identyfikatory), liczby oraz
ciàgi znakowe.

Istniejà dwa zestawy zmiennych: lokalne (pojedyncze litery: A…Z)
i globalne (litery w po∏àczeniu ze znakiem podkreÊlenia lub ze zna-
kiem tyldy: A_…Z_ i A~…Z~).

Wszystkie identyfikatory nie b´dàce s∏owami kluczowymi, zmien-
nymi globalnymi, nazwami atrybutów i nazwami makrodefinicji lub
nazwami plików sà uwa˝ane za zmienne lokalne. Je˝eli nie zostanà
one zainicjowane (w tabeli zmiennych w oknie obiektu bibliotecz-
nego), to ich wartoÊç poczàtkowa równa jest 0.0.

Zmienne lokalne sà zapami´tywane przy ka˝dym wywo∏aniu ma-
krodefinicji i odtwarzane przy powrocie z niej. Zmienne globalne
nie sà zapami´tywane przy wywo∏aniach makrodefinicji. Umo˝li-
wia to przekazywanie w nich wartoÊci zarówno do makrodefinicji,
jak i z makrodefinicji do skryptów, które je wywo∏ujà. Wi´kszoÊç
zmiennych globalnych jest zarezerwowana.

Patrz lista w Dodatku A.

background image

24

• Rozdzia∏ 2: Sk∏adnia GDL

Podr´cznik j´zyka GDL

Wolnym zmiennym globalnym mo˝e zostaç nadana wartoÊç w do-
wolnym skrypcie, lecz wartoÊç ich b´dzie mo˝liwa do
wykorzystania dopiero w nast´pnie interpretowanych skryptach.
Je˝eli zachodzi potrzeba korzystania z tego typu zmiennych, nale˝y
ustaliç je w obiekcie bibliotecznym o nazwie MASTER_GDL.

Komenda"=" mo˝na przyporzàdkowaç liczby lub ciàgi znaków do
zmiennych lokalnych. Do zmiennych globalnych mogà byç przypo-
rzàdkowywane tylko liczby. Nie zaleca si´ stosowania znaku "_" lub
"~" w nazwach zmiennych, gdy˝ znaki te sà zarezerwowane dla
zmiennych globalnych.

Parametry

Identyfikatory znajdujàce si´ na liÊcie parametrów obiektów

bibliotecznych sà nazywane parametrami. Identyfikator b´dàcy
parametrem nie mo˝e byç d∏u˝szy ni˝ 32 znaki. W skrypcie GDL,
te same zasady obowiàzujà zarówno parametry co zmienne
lokalne.

W plikach tekstowych GDL, identyfikatory parametrów ogranicza-

jà si´ do liter A … Z.

Typy

Sà dwa rodzaje wyra˝eƒ: numeryczne oraz ciàgi znaków.

Wyra˝enia numeryczne, to sta∏e liczbowe, zmienne liczbowe, pa-
rametry, funkcje, które zwracajà wartoÊci numeryczne oraz ró˝ne
ich kombinacje z operatorami.

Ciàgi znaków, to sta∏e ciàgi znakowe, zmienne znakowe i parame-
try, funkcje, które zwracajà ciàgi znakowe i ich kombinacje z
operatorami, które zwracajà ciàgi znakowe. Operacje, których re-
zultatem sà ciàgi znakowe, NIE MOGÑ BYå U˚YWANE
bezpoÊrednio jako nazwy makrodefinicji w wywo∏aniach makrode-
finicji oraz jako atrybuty nazw materia∏ów, wype∏nieƒ, typów linii i
krojów czcionki.

Wsz´dzie tam, gdzie jako argumenty wymagane sà ciàgi znakowe,
mogà byç stosowane zmienne znakowe. Je˝eli potem, w tym sa-
mym skrypcie, zmiennej znakowej zostanie nadana wartoÊç
numeryczna, mo˝e byç ona u˝ywana w wyra˝eniach numerycz-
nych tylko do czasu, dopóki nie zostanie jej znowu nadana wartoÊç
typu ciàg znaków. W procesie prekompilacji, jest sprawdzany typ
wyra˝enia.

background image

25

• Rozdzia∏ 2: Sk∏adnia GDL

Podr´cznik j´zyka GDL

[aaa]

Nawias kwadratowy oznacza opcjonalne u˝ycie elementów

. . .

WczeÊniejszy element mo˝e byç powtórzony

varnam

Jakakolwiek nazwa zmiennej GDL

prompt

Jakikolwiek ciàg znaków (nie musi zawieraç przytoczonych

znaków)

NAPIS _WYT¸USZCZONY

NAPIS _WYT¸USZCZONY

NAPIS _WYT¸USZCZONY

NAPIS _WYT¸USZCZONY

NAPIS _WYT¸USZCZONY

NAPIS _WIELKIMI_LITERAMI

znaki specjalne

inne_napisy_ma∏ymi_literami_w_liÊcie_parametrów

Dowolne wyra˝enia GDL.

background image

26

• Rozdzia∏ 2: Sk∏adnia GDL

Podr´cznik j´zyka GDL

background image

27

Rozdzia∏ 3: Przekszta∏cenia uk∏adu wspó∏rz´dnych

Podr´cznik j´zyka GDL

3

Przekszta∏cenia uk∏adu
wspó∏rz´dnych

background image

28

Rozdzia∏ 3: Przekszta∏cenia uk∏adu wspó∏rz´dnych

Podr´cznik j´zyka GDL

3.1 Przekszta∏cenia w przestrzeni

W j´zyku

GDL wszystkie figury geometryczne sà ÊciÊle powiàzane

z poczàtkiem lokalnego uk∏adu wspó∏rz´dnych. Na przyk∏ad jeden
z wierzcho∏ków prostopad∏oÊcianu umieszczany jest w poczàtku
lokalnego uk∏adu wspó∏rz´dnych, a jego kraw´dzie sà równoleg∏e
do osi tego uk∏adu.

Umieszczanie elementu w wybranym miejscu przestrzeni odbywa
si´ w dwóch krokach: po pierwsze nale˝y przesunàç uk∏ad wspó∏-
rz´dnych w odpowiednie miejsce, po drugie nale˝y umieÊciç
element. Ka˝de przesuni´cie, obrót wokó∏ osi lub rozciàgni´cie osi
nazywamy przekszta∏ceniem.

Przekszta∏cenia odk∏adane sà na stosie. Interpretacja zaczyna si´
zawsze od “dna” stosu. Skrypty dziedziczà stos przekszta∏ceƒ, mogà
dok∏adaç do niego nowe przekszta∏cenia, lecz nie mogà usunàç
wi´kszej iloÊci przekszta∏ceƒ ni˝ same wykona∏y. Istnieje mo˝li-
woÊç cofni´cia jednego, kilku lub wszystkich przekszta∏ceƒ
wykonanych w danym skrypcie. Po zakoƒczeniu wykonywania
skryptu wszystkie przekszta∏cenia w nim wykonane sà usuwane ze
stosu.

Nast´pne strony zawierajà opis poleceƒ przekszta∏cajàcych uk∏ad
wspó∏rz´dnych.

ADDX

ADDX

ADDX

ADDX

ADDX

dx

ADDY

ADDY

ADDY

ADDY

ADDY

dy

ADDZ

ADDZ

ADDZ

ADDZ

ADDZ

dz

Przesuni´cie uk∏adu wspó∏rz´dnych wzd∏u˝ odpowiedniej osi o
odcinek dx, dy lub dz.

ADD

ADD

ADD

ADD

ADD

dx, dy, dz

Zast´puje sekwencj´ poleceƒ ADDX dx; ADDY dy; ADDZ dz.

Przekszta∏cenie zajmuje tylko jedno miejsce na stosie, co oznacza,
˝e do jego cofni´cia wystarczy polecenie DEL 1.

Przyk∏ad:

ADD a,b,c

background image

29

Rozdzia∏ 3: Przekszta∏cenia uk∏adu wspó∏rz´dnych

Podr´cznik j´zyka GDL

Z

a

Y

X

b

c

X

Y

Z

MULX

MULX

MULX

MULX

MULX

mx

MULY

MULY

MULY

MULY

MULY

my

MULZ

MULZ

MULZ

MULZ

MULZ

mz

Skalowanie poszczególnych osi uk∏adu wspó∏rz´dnych. Ujemne
wartoÊci mx, my, mz dajà efekt lustrzany.

MUL

MUL

MUL

MUL

MUL

mx, my, mz

Zast´puje sekwencj´ poleceƒ MULX mx; MULY my; MULZ mz.

Przekszta∏cenie zajmuje tylko jedno miejsce na stosie, co oznacza,
˝e do jego cofni´cia wystarczy polecenie DEL 1.

ROTX

alfax

ROTY

ROTY

ROTY

ROTY

ROTY

alfay

ROTZ

ROTZ

ROTZ

ROTZ

ROTZ

alfaz

Obraca lokalny uk∏ad wspó∏rz´dnych wokó∏ wybranej osi odpo-
wiednio o kàt alfax, alfay, alfaz (w stopniach). Obrót nast´puje w
kierunku przeciwnym do ruchu wskazówek zegara (patrzàc od
strony wartoÊci dodatnich).

Przyk∏ad:

ROTZ 45

Y

X

Z

alpha

X

Y

background image

30

Rozdzia∏ 3: Przekszta∏cenia uk∏adu wspó∏rz´dnych

Podr´cznik j´zyka GDL

ROT

ROT

ROT

ROT

ROT

x, y, z, alpha

Polecenie to obraca lokalny uk∏ad wspó∏rz´dnych wokó∏ osi zdefi-
niowanej przez wektor (x,y,z) o kàt alfa (w stopniach) w kierunku
przeciwnym do ruchu wskazówek zegara.

Przekszta∏cenie zajmuje tylko jedno miejsce na stosie, co oznacza,
˝e do jego cofni´cia wystarczy polecenie DEL 1.

XFORM

XFORM

XFORM

XFORM

XFORM

a

11

, a

12

, a

13

, a

14

, a

21

, a

22

, a

23

, a

24

, a

31

, a

32

, a

33

, a

34

Definiuje pe∏nà macierz przekszta∏cenia. Zajmuje tylko jednà pozy-
cj´ na stosie przekszta∏ceƒ.

x’ = a11 * x + a12 * y + a13 * z + a14
y’ = a21 * x + a22 * y + a23 * z + a24
z’ = a31 * x + a32 * y + a33 * z + a34

3.2 Przekszta∏cenia na

p∏aszczyênie

ADD2

ADD2

ADD2

ADD2

ADD2

x, y

Przyk∏ad:

ADD2 a, b

MUL2

MUL2

MUL2

MUL2

MUL2

x, y

ROT2

ROT2

ROT2

ROT2

ROT2

alpha z

Przyk∏ad:

ROT2 30

background image

31

Rozdzia∏ 3: Przekszta∏cenia uk∏adu wspó∏rz´dnych

Podr´cznik j´zyka GDL

Polecenia te sà odpowiednikami na p∏aszczyênie poprzednio omó-
wionych poleceƒ ADD, MUL i ROTZ.

3.3 Zarzàdzanie stosem

przekszta∏ceƒ

DEL

DEL

DEL

DEL

DEL

n

Usuwa n ostatnich przekszta∏ceƒ ze stosu. Lokalny uk∏ad wspó∏-
rz´dnych powraca do pozycji sprzed tych przekszta∏ceƒ. Je˝eli w
bie˝àcym skrypcie wykonano mniejszà liczb´ przekszta∏ceƒ ni˝ wy-
nosi wartoÊç n, to usuwane sà tylko przekszta∏cenia wykonane w
bie˝àcym skrypcie.

DEL

DEL

DEL

DEL

DEL

TOP

Usuwa ze stosu wszystkie przekszta∏cenia dokonane w bie˝àcym
skrypcie.

background image

32

Rozdzia∏ 3: Przekszta∏cenia uk∏adu wspó∏rz´dnych

Podr´cznik j´zyka GDL

background image

33

• Rozdzia∏ 4: Figury p∏askie GDL

Podr´cznik j´zyka GDL

4

Figury p∏askie GDL

background image

34

• Rozdzia∏ 4: Figury p∏askie GDL

Podr´cznik j´zyka GDL

LIN_

LIN_

LIN_

LIN_

LIN_

x

1

, y

1

, z

1

, x

2

, y

2

, z

2

Odcinek pomi´dzy punktami P1(x1,y1,z1) i P2(x2,y2,z2).

RECT

RECT

RECT

RECT

RECT

a, b

Prostokàt na p∏aszczyênie x-y o bokach a i b.

Ograniczenia wartoÊci parametrów:

a, b > 0

POLY

POLY

POLY

POLY

POLY

n, x

1

, y

1

, . . . x

n

, y

n

Wielobok o n kraw´dziach po∏o˝ony na p∏aszczyênie x-y. Wspó∏-
rz´dne w´z∏a i okreÊlone sà jako (xi, yi, 0).
Ograniczenia wartoÊci parametrów:

n > 3

background image

35

• Rozdzia∏ 4: Figury p∏askie GDL

Podr´cznik j´zyka GDL

POLY_

POLY_

POLY_

POLY_

POLY_

n, x1, y1, maska1, . . . xn, yn, maska n

Podobnie do zwyk∏ego polecenia POLY, ale ka˝da z kraw´dzi mo˝e
zostaç ukryta. Je˝eli maskai = 0, to kraw´dê rozpoczynajàca si´ w
wierzcho∏ku (xi,yi) nie zostanie pokazana. Je˝eli maskai = 1, to kra-
w´dê b´dzie widoczna.

WartoÊç maskai = -1 jest u˝ywana do tworzenia otworów w wielo-
bokach. Wi´cej informacji znajdziesz przy opisie polecenia
PRISM_.

Ograniczenia wartoÊci parametrów:

n > 3

PLANE

PLANE

PLANE

PLANE

PLANE

n, x

1

, y

1

, z

1

, . . . x

n

, y

n

, z

n

Wielobok umieszczony na dowolnej p∏aszczyênie. Wspó∏rz´dne
(xi, yi, zi) okreÊlajà po∏o˝enie w´z∏ai. Wielobok musi znajdowaç si´
na p∏aszczyênie, aby uzyskaç prawid∏owy efekt przy kolorowaniu i
fotoprezentacji, jednak interpreter nie sprawdza tego warunku.

Ograniczenia wartoÊci parametrów:

n > 3

PLANE_

PLANE_

PLANE_

PLANE_

PLANE_

n, x1, y1, z1, maska1, . . . xn, yn, zn, maskan

Polecenie to dzia∏a podobnie do polecenia PLANE, ale ka˝da kra-
w´dê mo˝e zostaç pomini´ta przy wyÊwietlaniu, podobnie do
polecenia POLY_.

Ograniczenia wartoÊci parametrów:

n > 3

background image

36

• Rozdzia∏ 4: Figury p∏askie GDL

Podr´cznik j´zyka GDL

CIRCLE

CIRCLE

CIRCLE

CIRCLE

CIRCLE

r

Ko∏o na p∏aszczyênie x-y ze Êrodkiem w poczàtku uk∏adu wspó∏-
rz´dnych i o promieniu r.

ARC

ARC

ARC

ARC

ARC

r, alfa, beta

Wycinek ko∏a na p∏aszczyênie x-y, ze Êrodkiem w poczàtku uk∏adu
wspó∏rz´dnych, o promieniu r, ograniczony przez kàty alfa i beta.

Kàty alfa i beta podane sà w stopniach.

background image

37

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

5

Elementy przestrzenne

background image

38

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

5.1 Figury podstawowe

BLOCK

BLOCK

BLOCK

BLOCK

BLOCK

a, b, c

BRICK

BRICK

BRICK

BRICK

BRICK

a, b, c

Polecenie definiuje prostopad∏oÊcian o jednym wierzcho∏ku w po-
czàtku lokalnego uk∏adu wspó∏rz´dnych i o wymiarach a, b, c
odpowiednio wzd∏u˝ osi x, y i z. Zerowe wartoÊci dajà prostopa-
d∏oÊcian zdegenerowany do prostokàta lub odcinka.

Ograniczenia wartoÊci parametrów:

a, b, c > 0

CYLIND

CYLIND

CYLIND

CYLIND

CYLIND

h, r

Walec o wysokoÊci h i promieniu r, budowany wzd∏u˝ osi z.

Je˝eli h=0 powstaje ko∏o na na p∏aszczyênie x-y.

Je˝eli r=0 powstaje odcinek le˝àcy na osi z.

background image

39

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

SPHERE

SPHERE

SPHERE

SPHERE

SPHERE

r

Sfera o promieniu r ze Êrodkiem w poczàtku osi wspó∏rz´dnych.

ELLIPS

ELLIPS

ELLIPS

ELLIPS

ELLIPS

h, r

Po∏ówka elipsoidy. Przekrój na p∏aszczyênie x-y jest okr´giem o
promieniu r, ze Êrodkiem w poczàtku uk∏adu wspó∏rz´dnych. Para-
metr h jest wysokoÊcià wzd∏u˝ osi z.

Przyk∏ad:

ELLIPS r, r ! pó∏kula

background image

40

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

CONE

CONE

CONE

CONE

CONE

h, r

1

, r

2

, alfa

1

, alfa

2

Sto˝ek Êci´ty, w którym alfa1 i alfa2 sà kàtami nachylenia Êci´tych
powierzchni sto˝ka, r1 i r2 sà promieniami sto˝ka na jego koƒcach,
a h jest jego wysokoÊcià na osi Z.

Kàty alfa1 i alfa2 podawane sà w stopniach.

Ograniczenia wartoÊci parametrów:

0 < alfa1 < 180° i 0 < alfa2

< 180°

Przyk∏ad:

CONE h, r, 0, 90, 90

! a regular cone

PRISM

PRISM

PRISM

PRISM

PRISM

n, h, x

1

, y

1

, . . . x

n

, y

n

Graniastos∏up o podstawie wielobocznej na p∏aszczyênie x-y (opisa-
nej jak w poleceniu POLY). WysokoÊç wzd∏u˝ osi z jest równa
wartoÊci bezwzgl´dnej z h. Ujemne wartoÊci h oznaczajà umiesz-
czenie graniastos∏upa pod p∏aszczyznà z=0.

Ograniczenia wartoÊci parametrów:

n > 3

background image

41

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

PRISM_

PRISM_

PRISM_

PRISM_

PRISM_

n, h, x

1

, y

1

, maska1, . . . xn, yn, maska n

Polecenie podobne do polecenia PRISM, ale istnieje mo˝liwoÊç ste-
rowania widocznoÊcià kraw´dzi i powierzchni bocznych.

Ograniczenia wartoÊci parametrów:

n > 3

WartoÊç parametru maskai jest czterobitowà liczbà ca∏kowità (od 0
do 15) lub jest równa -1.

maskai = j1 + 2*j2 + 4*j3 + 8*j4

gdzie j1, j2, j3, j4

mogà byç równe 0 lub 1.

Parametry j1, j2, j3, j4

wskazujà, czy poszczególne kraw´dzie (lub

powierzchnia boczna) sà widoczne (1) lub nie (0).

Mo˝liwe wartoÊci masek sà nast´pujàce (grube linie oznaczajà wi-
doczne kraw´dzie):

background image

42

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

Maskai=-1 u˝ywana jest przy definiowaniu otworów w graniastos∏u-
pie. Oznacza ona zamkni´cie konturu i rozpocz´cie otworu
wewnàtrz tego konturu. Mo˝e ona oznaczaç zamkni´cie konturu
jednego otworu i rozpocz´cie wycinania nast´pnego otworu.
Wspó∏rz´dne punktu z maskà -1 muszà byç identyczne ze wspó∏-
rz´dnymi pierwszego punktu konturu/otworu. Je˝eli u˝ywana by∏a
wartoÊç maski -1, to równie˝ ostatni punkt opisu musi mieç mask´ -
1 oznaczajàcà zamkni´cie ostatniego otworu.

Otwory nie mogà si´ ∏àczyç i przecinaç ze sobà, ani te˝ wykraczaç
poza kontur wieloboku. W przeciwnym razie otrzymamy niepo-
prawne efekty w prezentacjach 3D i w fotoprezentacji.

Przyk∏ady:

PRISM_ 4,1,

PRISM_ 4,1,

0,0,15,

0,0,7,

1,1,15,

1,1,5,

2,0,15,

2,0,15,

1,3,15

1,3,15

PRISM_ 13, 0.2,

0, 0, 15,
2, 0, 15,

2, 2, 15,

0, 2, 15,
0, 0, -1, ! koniec konturu

0.2, 0.2, 15,

1.8, 0.2, 15,

1.0, 0.9, 15,
0.2, 0.2, -1, ! koniec pierwszego otworu

background image

43

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

0.2, 1.8, 15,

1.8, 1.8, 15,
1.0, 1.1, 15,

0.2, 1.8, -1 ! Koniec ostatniego otworu

CPRISM_

CPRISM_

CPRISM_

CPRISM_

CPRISM_

materia∏_góry, materia∏_spodu, materia∏_boku,
n, h, x

1

, y

1

, maska

1

, . . . x

n

, y

n

, maska

n

Rozbudowane polecenie PRISM_. Pierwsze trzy parametry sà u˝y-
wane do wybrania nazwy lub numeru materia∏u odpowiednio dla
powierzchni górnej, dolnej i powierzchni bocznych graniastos∏upa.
Pozosta∏e parametry sà takie same jak parametry polecenia PRISM_.

Ograniczenia wartoÊci parametrów:

n > 3

Zobacz równie˝ opis polecenia MATERIAL w rozdziale 5 oraz funk-
cji IND w rozdziale 4.

Przyk∏ad (element ma ten sam kszta∏t, co w poprzednim przyk∏a-
dzie):

CPRISM_ “˚eliwo“, 0, T_,

!˚eliwo jest

! zdefiniowanym materia∏em.

! 0 jest numerem materia∏u

! standardowego.

! T_ jest zmiennà globalnà
! (numerem materia∏u).

13, 0.2,
0, 0, 15,

2, 0, 15,

2, 2, 15,
0, 2, 15,

0, 0, -1, ! koniec konturu

0.2, 0.2, 15,

1.8, 0.2, 15,
1.0, 0.9, 15,

0.2, 0.2, -1, ! koniec pierwszego otworu

0.2, 1.8, 15,
1.8, 1.8, 15,

1.0, 1.1, 15,
0.2, 1.8, -1 ! Koniec ostatniego otworu

background image

44

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

BPRISM_

BPRISM_

BPRISM_

BPRISM_

BPRISM_

materia∏_góry, materia∏_spodu, materia∏_boku,
n, h,

promieƒ,

x1, y1, maska1, . . . xn, yn, maskan

Graniastos∏up “nawini´ty” na walec. Lista argumentów jest prawie
identyczna, jak dla polecenia CPRISM_.

Jedynym dodatkowym parametrem jest

promieƒ.

Element zbudowany na bazie podobnego elementu CPRISM_ po-
przez zakrzywienie p∏aszczyzny x-y na walcu stycznym do niej.

Kraw´dzie równoleg∏e do osi x zamieniajà si´ w ∏uki, kraw´dzie
równoleg∏e do osi y zachowujà swój kierunek, a kraw´dzie równo-
leg∏e do osi z uk∏adajà si´ promieniÊcie.

Dok∏adniejszy opis mo˝na znaleêç przy poleceniu BWALL_.

Przyk∏ady: CPRISM_ i odpowiadajàce mu BPRISM_.;

BPRISM_ "Szk∏o", "Szk∏o", "Szk∏o",

3, 0.4, 1, ! promieƒ = 1
5, 0, 15,

1.3, 2, 15

background image

45

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

BPRISM_ "Beton", "Beton", "Beton",,

17, 0.3, 5,
0, 7.35, 15,

0, 2, 15,
1.95, 0, 15,

8, 0, 15,

6.3, 2, 15,
2, 2, 15,

4.25, 4, 15,
8, 4, 15,

8, 10, 15,

2.7, 10, 15,
0, 7.35, -1,

4, 8.5, 15,
1.85, 7.05, 15,

3.95, 5.6, 15,

6.95, 5.6, 15,
6.95, 8.5, 15,

4, 8.5, -1

background image

46

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

SLAB

SLAB

SLAB

SLAB

SLAB

n, h, x

1

, y

1

, z

1

, . . . x

n

, y

n

, z

n

UkoÊna p∏yta. Boczne kraw´dzie sà zawsze prostopad∏e do po-
wierzchni x-y. Podstawà jest p∏aski wielobok obrócony wokó∏ osi
równoleg∏ej do p∏aszczyzny x-y. Dopuszczalne sà ujemne wartoÊci
wysokoÊci h, w takich przypadkach druga powierzchnia p∏yty le˝y
wtedy poni˝ej powierzchni opisanej wspó∏rz´dnymi.

Po∏o˝enie wierzcho∏ków na jednej p∏aszczyênie nie jest sprawdza-
ne. Wierzcho∏ki le˝àce poza p∏aszczyznà powodujà dziwne efekty
przy fotoprezentacji i w widoku 3D.

Ograniczenia wartoÊci parametrów:

n > 3

SLAB_

SLAB_

SLAB_

SLAB_

SLAB_

n, h, x

1

, y

1

, z

1

, maska1, . . . xn, yn, zn, maska n

Polecenie podobne do SLAB, lecz umo˝liwiajàce sterowanie wi-
docznoÊcià kraw´dzi i powierzchni bocznych. Polecenie to jest
analogiczne do polecenia PRISM_

CSLAB_

CSLAB_

CSLAB_

CSLAB_

CSLAB_

materia∏_góry, materia∏_spodu, materia∏_boku,
n, h, x1, y1, z1, maska1, . . . xn, yn, zn, maska n

Rozbudowane polecenie SLAB_. Pierwsze trzy parametry oznaczajà
nazw´ lub numer materia∏u dla górnej, dolnej i bocznych po-
wierzchni p∏yty. Pozosta∏e parametry sà takie same, jak dla
polecenia SLAB_.

Zobacz równie˝ opis polecenia MATERIAL w rozdziale 10.2 oraz
funkcja IND w rozdziale 9.3.

background image

47

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

CWALL_

CWALL_

CWALL_

CWALL_

CWALL_

materia∏_z_lewej, materia∏_z_prawej, materia∏_boku,
wysokoÊç, x1, x2, x3, x4, t, ,
maska1, maska2, maska3, maska4,
n,
n,
xpocz1, dó∏1, xkon1, góra1, widocznoÊç1,,
. . .
xpoczn, dó∏n, xkonn, góra n, widocznoÊç n,
a

1

, b

1

, c

1

, d

1

,

. . .
a

m

, b

m

, c

m

, d

m

materia∏_z_lewej, materia∏_z_prawej, materia∏_boku:

Nazwy lub numery materia∏ów odpowiednio dla lewej,
prawej i bocznych powierzchni Êciany (prze∏omów
Êciany).

Prawa i lewa strona sà okreÊlane przy obserwacji Êciany od
dodatnich wartoÊci osi x.

Zobacz równie˝ opis polecenia MATERIAL w rozdziale 5
oraz funkcji IND w rozdziale 4.

Linia odniesienia Êciany jest zawsze przekszta∏cana tak, aby le˝a∏a
na osi x. Powierzchnie Êciany sà równoleg∏e do p∏aszczyzny x-z.

wysokoÊç:

WysokoÊç Êciany od podstawy do górnej kraw´dzi.

x

1

, x

2

, x

3

, x

4

:

Rzuty koƒcowych kraw´dzi Êciany na oÊ x, jak na rysunku
poni˝ej. Je˝eli Êciana nie ∏àczy si´ z ˝adnà innà Êcianà, to
x1 = x4 = 0, x2 = x3 = d∏ugoÊç Êciany.

t : GruboÊç Êciany.

background image

48

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

t < 0 Êciana znajduje si´ po prawej stronie osi x,
t > 0 Êciana le˝y po lewej stronie osi x,
t = 0 Êciana staje si´ wielobokiem z “ramkami” wokó∏
otworów.

maska

1

, maska

2

, maska

3

, maska

4

:

Sterowanie widocznoÊcià kraw´dzi i powierzchni bocz-
nych.

maska

i

= j

1

+ 2*j

2

+ 4*j

3

+ 8*j

4

gdzie j1, j2, j3, j4

mogà przybieraç wartoÊç 1 lub 0.

Je˝eli wartoÊç parametru j przybiera wartoÊç 0, to kraw´dê lub
powierzchnia odpowiadajàca danemu parametrowi jest niewi-
doczna, je˝eli zaÊ przybiera wartoÊç 1, to kraw´dê lub
powierzchnia jest widoczna.

n : iloÊç otworów w Êcianie.

xpoczi, dó∏i, xkoni, górai:

wspó∏rz´dne otworu jak na rysunku poni˝ej.

background image

49

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

widocznoÊci :

1 - kraw´dzie otworu sà widoczne

0 - kraw´dzie otworu sà niewidoczne.

WartoÊci ujemne pozwalajà ustawiaç widocznoÊç poszcze-
gólnych kraw´dzi niezale˝nie od siebie.

framevisi = - (1*j1 + 2*j2 + 4*j3

+ 8*j4

+ 16*j5 + 32*j6 +

64*j7

+ 128*j8) gdzie j1

,

j2

.

.. j8

mogà przybieraç wartoÊç 1

lub 0. Bity j1

do j4

decydujà o widocznoÊci kraw´dzi po

lewej stronie Êciany, a j5

do j8

po prawej, tak jak na

rysunku poni˝ej.

Kraw´dzie prostopad∏e do powierzchni Êciany sà widoczne, je˝eli
widoczne sà kraw´dzie przez nie ∏àczone.

m: liczba p∏aszczyzn przycinajàcych Êcian´.

ai, bi, ci, di :

wspó∏czynniki równania p∏aszczyzny przycinajàcej Êcian´
[ai*x + bi*y + ci*z = di].

Cz´Êç Êciany po stronie, dla której ai*x+bi*y+ci*z>di jest
odcinana i niewidoczna.

background image

50

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

BWALL_

BWALL_

BWALL_

BWALL_

BWALL_

materia∏_z_lewej, materia∏_z_prawej, materia∏_boku,
wysokoÊç, x1, x2, x3, x4, t, promieƒ,
maska1, maska2, maska3, maska4,
n,
xpocz1, dó∏1, xkon1, góra1, widocznoÊç1,
. . .
xpoczn, dó∏n, xkonn, góran, widocznoÊç n,
m,
a1, b1, c1, d1,
. . .
am, bm, cm, dm

Zakrzywiona Êciana oparta na podobnym zestawie parametrów jak
CWALL_.

Dodatkowym parametrem jest promieƒ.

Element powsta∏y z zakrzywienia Êciany jak w poleceniu CWALL_
(poprzez na∏o˝enie jej na walec styczny do p∏aszczyzny x-z).

Kraw´dzie le˝àce wzd∏u˝ osi x przekszta∏cane sà w ∏uki, kraw´dzie
równoleg∏e do osi y uk∏adajà si´ promieniÊcie, kierunek kraw´dzi
pionowych pozostaje bez zmian. Krzywizny sà przybli˝ane za po-
mocà segmentów z dok∏adnoÊcià zale˝nà od polecenia RESOL,
podobne jak dla sfer i walców. Opis reszty parametrów jest iden-
tyczny jak dla polecenia CWALL_.

Przyk∏ad: a BWALL_ odpowiadajàcy mu CWALL_

background image

51

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

CROOF_

CROOF_

CROOF_

CROOF_

CROOF_

materia∏_z_lewej, materia∏_z_prawej, materia∏_boku,
n, x

1

, y

1

, x

2

, y

2

, wysokoÊç, kàt, gruboÊç

x

1

, y

1

, alfa

1

, maska

1

,…,x

n

, y

n

, alfa

n

, maska

n

Dach ze zmiennym kàtem kraw´dzi

materia∏_z_lewej, materia∏_z_prawej, materia∏_boku,

nazwa lub numer materia∏u

n:

liczba w´z∏ów w wieloboku dachu

x

1

, y

1

, x

2

, y

2

:

linia referencyjna (wektor)

wysokoÊç:

wysokoÊç wzniesienia linii referencyjnej (dolna
powierzchnia)

kàt:

kàt obrotu p∏aszczyzny dachu wokó∏ linii referencyj-
nej w stopniach.

gruboÊç:

gruboÊç dachu mierzona wzd∏u˝ osi z przeciwnie
do ruchu wskazówek zegara lecz w przeciwnym
kierunku.

x

i

, y

i

:

wspó∏rz´dne w´z∏ów wieloboku dachu

alfa

i

:

kàt pomi´dzy p∏aszczyznà bocznà dachu odpowied-
nià do i-tej kraw´dzi oraz p∏aszczyznà prostopad∏à
do powierzchni dachu-90 < alfa

i

< 90. Patrzàc

wzd∏u˝ i-tej kraw´dzi wielolinii definiujàcej dach,
orientacja kàta alfa jest przeciwna

Kraw´dzie wieloboku po∏aci dachowej sà skierowane w∏aÊciwie,
je˝eli w rzucie kolejne punkty zdefiniowane sà przeciwnie do
wskazówek zegara.

maska

i

:

definiuje widocznoÊç kraw´dzi dachu, ich wartoÊci
sà identyczne z wartoÊciami w komendzie PRISM_

Ograniczenia wartoÊci parametrów:

n > 3

background image

52

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

Przyk∏ady:

CROOF_ 1, 1, 1,

! materia∏y

9,

0, 0, 1, 0, ! linia referencyjna (x1, y1) (x2, y2)
0.0, ! wysokoÊç

-30, ! kàt
2.5, ! gruboÊç

0, 0, -60, 15,

10, 0, 0, 15,
10, 20, -30, 15,

0, 20, 0, 15,
0, 0, 0, -1,

background image

53

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

2, 5, 0, 15,

8, 5, 0, 15,
5, 15, 0, 15,

2, 5, 0, -1

a1 = 70
a2 = 40

gamma = 180-a1-a2
delta = gamma/2-90

y = 5+5*TAN(a1)/TAN(a2)

CROOF_ 1, 2, 3,

! materia∏y

10,
1, 0, 0, 0,

! linia referencyjna (x1,y1) (x2,

y2)

0,

! wysokoÊç

a1,

! kàt

1,

! gruboÊç

0, 0, a1-90, 15,

10, 0, 0, 15,

10, 5, delta, 15,
0, 5, 0, 15,

0, 0, a1-90, -1,
3, 1, a1-90, 15,

7, 1, 0, 15,

7, 4, -a1, 15,
3, 4, 0, 15,

3, 1, a1-90, -1

background image

54

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

CROOF_ 1, 2, 3,

! materia∏y

4,
0, y, 1, y, ! linia referencyjna (x1,y1) (x2, y2)

0.0, ! wysokoÊç
a2,

! kàt

1,

! gruboÊç

0, 5, delta, 15,
10, 5, 0, 15,

10, y, a2, 15,
0, y, 0, 15

ARMC

ARMC

ARMC

ARMC

ARMC

r

1

, r

2

, l, h, d, alfa

Kawa∏ek rury zaczynajàcy si´ na powierzchni innej rury. Znaczenie
poszczególnych parametrów przedstawione jest na poni˝szych ry-
sunkach. Kàt alfa podawany jest w stopniach.

Ograniczenia wartoÊci parametrów:

r1 > r2 + d

r1 < l * sin(alfa) - r2 * cos(alfa)

ARME

ARME

ARME

ARME

ARME

l, r

1

, r

2

, h, d

Kawa∏ek rury zaczynajàcy si´ na powierzchni elipsoidy, le˝àcy na
p∏aszczyênie y-z. Znaczenie poszczególnych parametrów przedsta-
wione jest na poni˝szym rysunku.

Ograniczenia wartoÊci parametrów:

r1 > r2+ d
l > h* (1 - (r 2 - d)

2 / r12)

background image

55

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

ELBOW

ELBOW

ELBOW

ELBOW

ELBOW

r

1

, alfa, r

2

Segmentowane kolanko na p∏aszczyênie x-z. Promieƒ rury wynosi
r2, promieƒ zagi´cia rury wynosi r1, a alfa jest kàtem zakrzywienia
(w stopniach).

Ograniczenia wartoÊci parametrów:

r1 > r2

background image

56

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

5.2 Figury tworzone z ∏amanej

Figury z tej grupy pozwalajà na tworzenie z∏o˝onych figur trójwy-
miarowych za pomocà linii ∏amanej i wbudowanej w te polecenia
regu∏y jej przetwarzania. Mo˝liwe sà obroty, rzutowanie lub prze-
mieszczanie ∏amanej.Powstajàce formy sà uogólnieniem pewnych,
istniejàcych ju˝ elementów jak PRISM_ i CYLIND.

Figury tworzone z jednej ∏amanej

EXTRUDE

PYRAMID

REVOLVE

Figury tworzone z dwóch ∏amanych:

RULED

SWEEP

TUBE

Pierwsza ∏amana jest zawsze po∏o˝ona na p∏aszczyênie x-y. Punkty
sà opisane dwiema wspó∏rz´dnymi i statusem (opisanym dalej).
Druga ∏amana (dla poleceƒ RULED i SWEEP) jest ∏amanà przestrzen-
nà. Jej wierzcho∏ki sà opisane trzema wspó∏rz´dnymi.

Figura tworzona z czterech linii ∏amanych:

COONS

Figura zbudowana na siatce o równej wielkoÊci oczek:

MESH

Ogólne ograniczenia dla linii ∏amanych:

Sàsiednie wierzcho∏ki nie pokrywajà si´ (nie dot. RULED).

¸amana nie mo˝e przecinaç samej siebie (nie sprawdzane,
ale ukrywanie linii i fotoprezentacja sà niepoprawne).

¸amane mogà byç zarówno otwarte, jak i zamkni´te. W tym drugim
przypadku pierwszy i ostatni wierzcho∏ek muszà mieç te same
wspó∏rz´dne.

Maski

Maski sà u˝ywane do wskazania, czy poszczególne powierzchnie i/
lub kraw´dzie majà byç widoczne, czy te˝ nie. WartoÊci masek sà
charakterystyczne dla ka˝dego elementu i tam mo˝na znaleêç ich
dok∏adniejszy opis.

maska = j1 + 2*j2 + 4*j3 + 8*j4 + 16*j5 + 32*j6 + 64*j7

background image

57

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

gdzie j1, j2, j3, j4, j5, j6, j7 mo˝e byç równe 0 lub 1.

j1, j2, j3, j4 decydujà o widocznoÊci powierzchni (1 — widoczne, 0
— niewidoczne). j5, j6, j7 decydujà o widocznoÊci kraw´dzi .

j1 :

podstawa.

j2 :

górna powierzchnia.

j

3

:

powierzchnia boczna

(REVOLVE: w kàcie startowym, COONS: pierwszy brzeg).

j

4

:

inne powierzchnie boczne

(REVOLVE: w kàcie koƒcowym, COONS: drugi brzeg).

j

5

:

kraw´dzie podstawy

(REVOLVE: kraw´dzie na powierzchni w kàcie startowym,
RULED: kraw´dzie na krzywej p∏askiej, COONS: trzeci
brzeg).

j

6

:

kraw´dzie górnej powierzchni

(REVOLVE: kraw´dzie na powierzchni kàta koƒcowego,
RULED: kraw´dzie na krzywej przestrzennej, COONS:
czwarty brzeg).

j7:

poÊrednie kraw´dzie na powierzchniach (je˝eli sà
widoczne, to powierzchnie nie b´dà g∏adkie).

Aby by∏y widoczne wszystkie powierzchnie, kraw´dzie, parametro-
wi maska nadaj wartoÊç 127.

Status

WartoÊci statusu wykorzystywane sà do wskazania zachowania si´
kraw´dzi zaczynajàcych si´ w wierzcho∏ku.

0 :

boczne ∏uki/kraw´dzie wychodzàce z wierzcho∏ka
sà widoczne.

1 :

boczne ∏uki/kraw´dzie wychodzàce z wierzcho∏ka
sà u˝ywane jedynie do wskazywania zarysu.

-1 :

tylko dla EXTRUDE: oznacza zamkni´cie wieloboku
lub otworu i wskazuje, ˝e nast´pny wierzcho∏ek
b´dzie poczàtkiem nowego otworu.

Status 1 we wszystkich wierzcho∏kach daje g∏adkie trójwymiarowe
bry∏y. Status 0 powoduje utworzenie ostrej kraw´dzi.

Dodatkowe wartoÊci statusu do opisu ∏uków i innych wygodnych
metod opisu ∏amanej przedstawione sà w dalszej cz´Êci tego roz-
dzia∏u (patrz rozdz. 8) Inne wartoÊci statusu sà zarezerwowane do
ewentualnego wykorzystania w nast´pnych wersjach j´zyka GDL.

background image

58

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

EXTRUDE

EXTRUDE

EXTRUDE

EXTRUDE

EXTRUDE

n, dx, dy, dz, maska, x

1

, y

1

, s

1

, . . . x

n

, y

n

, s

n

Uogólnienie graniastos∏upa, o podstawie zbudowanej wed∏ug linii
∏amanej na p∏aszczyênie x-y. Przemieszczenie górnej powierzchni
wzgl´dem podstawy jest okreÊlone wektorem (dx, dy, dz).

Polecenie to jest uogólnieniem poleceƒ PRISM i SLAB. Linia ∏amana
podstawy nie musi byç linià zamkni´tà, a kraw´dzie boczne nie
muszà byç prostopad∏e do p∏aszczyzny x-y. Podstawa mo˝e zawie-
raç otwory, tak samo jak w poleceniu PRISM_. Mo˝liwe jest
sterowanie widocznoÊcià poszczególnych kraw´dzi.

n :

liczba w´z∏ów ∏amanej.

maska :

decyduje o widocznoÊci dolnej i górnej powierzch-
ni, oraz (w przypadku otwartej ∏amanej) zamykajà-
cej powierzchni bocznej.

si :

widocznoÊç kraw´dzi bocznych, oraz oznaczenie
koƒca wieloboku lub otworu.

Ograniczenia wartoÊci parametrów:

n > 2

Maski

maska = j1 + 2*j2 + 4*j3 + 16*j5 + 32*j6

gdzie j1, j2, j3, j5, j6 mogà mieç wartoÊci 0 lub 1.

j1 (1): widocznoÊç dolnej powierzchni.
j2 (2): widocznoÊç górnej powierzchni.
j3 (4): widocznoÊç zamykajàcej powierzchni bocznej.
j5 (16): widocznoÊç kraw´dzi podstawy.
j6 (32): widocznoÊç kraw´dzi górnej powierzchni.

background image

59

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

WartoÊci statusu

0 :

kraw´dzie boczne zaczynajàce si´ w w´êle sà
widoczne.

1 :

kraw´dzie boczne zaczynajàce si´ w w´êle u˝ywane
sà tylko do pokazywania konturu.

-1 :

oznacza koniec wieloboku lub otworu, oraz wskazu-
je, ˝e nast´pny w´ze∏ b´dzie pierwszym wierzcho∏-
kiem kolejnego otworu.

Przyk∏ady:

EXTRUDE 14, 1, 1, 4, 1+2+4+16+32,

0, 0, 0,
1, -3, 0,

2, -2, 1,
3, -4, 0,

4, -2, 1,

5, -3, 0,
6, 0, 0,

3, 4, 0,
0, 0, -1,

2, 0, 0,
3, 2, 0,

4, 0, 0,
3, -2, 0,

2, 0, -1

background image

60

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

A=5 : B=5

R=2 : S=1
C=R-S

D=A-R

E=B-R
EXTRUDE 28,-1,0,4,1+2+4+16+32,

0,0,0,
D+R*SIN(0), R-R*COS(0),1,

D+R*SIN(15), R-R*COS(15),1,

D+R*SIN(30), R-R*COS(30),1,
D+R*SIN(45), R-R*COS(45),1,

D+R*SIN(60), R-R*COS(60),1,
D+R*SIN(75), R-R*COS(75),1,

D+R*SIN(90), R-R*COS(90),1,

A,B,0,
0,B,0,

0,0,-1,

C,C,0,

D+S*SIN(0), R-S*COS(0),1,
D+S*SIN(15), R-S*COS(15),1,

D+S*SIN(30), R-S*COS(30),1,
D+S*SIN(45), R-S*COS(45),1,

D+S*SIN(60), R-S*COS(60),1,

D+S*SIN(75), R-S*COS(75),1,
D+S*SIN(90), R-S*COS(90),1,

A-C,B-C,0,
R-S*COS(90), E+S*SIN(90),1,

R-S*COS(75), E+S*SIN(75),1,

R-S*COS(60), E+S*SIN(60),1,
R-S*COS(45), E+S*SIN(45),1,

R-S*COS(30), E+S*SIN(30),1,
R-S*COS(15), E+S*SIN(15),1,

R-S*COS(0), E+S*SIN(0),1,

C,C,-1

background image

61

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

PYRAMID

PYRAMID

PYRAMID

PYRAMID

PYRAMID

n, h, maska, x

1

, y

1

, s

1

, . . . x

n

, y

n

, s

n

Ostros∏up o podstawie opisanej ∏amanà na p∏aszczyênie x-y. Wierz-
cho∏ek ostros∏upa po∏o˝ony jest w punkcie (0, 0, h).

n :

liczba w´z∏ów ∏amanej.

maska :

steruje widocznoÊcià podstawy oraz (w przypadku
otwartej ∏amanej) zamykajàcej powierzchni bocz-
nej.

si :

status kraw´dzi bocznych.

Ograniczenia wartoÊci parametrów:

h > 0

n > 2

Maski

maska = j1 + 4*j3 + 16*j5

gdzie j1, j3, j5

przyjmujà wartoÊci 0 lub 1.

j1 (1):

widocznoÊç podstawy.

j3 (4):

widocznoÊç zamykajàcej powierzchni bocznej.

j5 (16):

widocznoÊç kraw´dzi podstawy.

WartoÊci statusu

0 :

boczne kraw´dzie zaczynajàce si´ w w´êle sà
widoczne.

1 :

boczne kraw´dzie zaczynajàce si´ w w´êle u˝ywane
sà tylko do pokazywania konturu.

background image

62

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

Przyk∏ad:

PYRAMID 10, 10, 1+4+16,
5, 0, 1,

7, -3, 0,

5, -3, 0,
3, -1, 0,

0, 0.5, 0,

-3, -1, 0,
-5, -3, 0,

-7, -3, 0,
-5, 0, 1,

0, 6, 0

background image

63

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

REVOLVE

REVOLVE

REVOLVE

REVOLVE

REVOLVE

n, alfa, maska, x1, y1, s1, . . . xn, yn, sn

Powierzchnia utworzona przez obrót linii ∏amanej, zdefiniowanej
na p∏aszczyênie x-y wokó∏ osi x.

n:

liczba w´z∏ów linii ∏amanej.

alfa:

zataczany kàt w stopniach.

maska:

steruje widocznoÊcià górnej, dolnej oraz (w przy-
padku kàta alfa<360°) zamykajàcych bocznych
powierzchni.

si:

status ∏uków bocznych.

Ograniczenia wartoÊci parametrów:

n > 2

yi > 0.0

yi i d yi + 1 (tzn. wspó∏rz´dne dwóch sàsiednich w´z∏ów)
nie mogà byç równoczeÊnie równe 0.

background image

64

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

Maski

maska = j1 + 2*j2 + 4*j3 + 8*j4 + 16*j5 + 32*j6 + 64*j7

gdzie j1, j2, j3, j4, j5, j6, j7

przyjmujà wartoÊci 0 lub 1

j1 (1):

widocznoÊç dolnej powierzchni.

j2 (2):

widocznoÊç powierzchni górnej.

j3 (4):

widocznoÊç zamykajàcej powierzchni bocznej przy
pozycji startowej.

j4 (8):

widocznoÊç zamykajàcej powierzchni bocznej przy
pozycji koƒcowej.

j5 (16):

widocznoÊç kraw´dzi w pozycji startowej.

j6 (32):

widocznoÊç kraw´dzi w pozycji koƒcowej.

j7 (64):

widocznoÊç kraw´dzi w pozycjach poÊrednich
(powierzchnia nie jest g∏adka)

WartoÊci statusu

0 :

widoczne sà wszystkie ∏uki boczne zaczynajàce si´
w w´êle.

1 :

boczne ∏uki zaczynajàce si´ w w´êle u˝ywane sà do
pokazywania konturu.

2 :

W fotoprezentacjach, przy w∏àczonej funkcji
wyg∏adzania powierzchni, kraw´dzie zaczynajàce
si´ w weêle nie sà wyg∏adzane. Przy u˝yciu innych
ustwieƒ fotoprezentacji oraz w oknie 3D ma to
samo znaczenie co 0.

Przyk∏ady:

background image

65

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

ROTY -90

REVOLVE 7, 360, 1+2+16,

!+64

0, 0.5, 0,

2, 0.5, 0,
2, 0.8, 0,

4, 0.5, 0,

4, 4, 0,
5, 3, 1,

6, 0, 0

ROTY -90

REVOLVE 9, 200, 1+16+32,

!+64

1, 1.8, 0,
1.5, 1.5, 0,

2, 1.5, 0,
4, 3, 0,

6, 3, 1,

9, 1, 0,
10, 1, 0,

12, 2, 1,
13, 2.5, 0

background image

66

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

bez wartoÊci statusu równej 2:

z wartoÊcià statusu równà 2:

ROTY -90

ROTY -90

REVOLVE 26, 180, 16+32,

REVOLVE 18, 180, 48,

7, 1, 0,

7, 1, 0,

6.0001, 1, 1,

6, 1, 2,

6, 1, 0,

5.5, 2, 2,

5.9999, 1.0002, 1,

5, 1, 2,

5.5001, 1.9998, 1,

4, 1, 2,

5.5, 2, 0,

3+COS(15), 1+SIN(15), 1,

5.4999, 1.9998, 1,

3+COS(30), 1+SIN(30), 1,

5.0001, 1.0002, 1,

3+COS(45), 1+SIN(45), 1,

5, 1, 0,

3+COS(60), 1+SIN(60), 1,

4.9999, 1, 1,

3+COS(75), 1+SIN(75), 1,

4.0001, 1, 1,

3, 2, 1,

4, 1, 0,

3+COS(105), 1+SIN(105), 1,

3+COS(15), 1+SIN(15), 1,

3+COS(120), 1+SIN(120), 1,

3+COS(30), 1+SIN(30), 1,

3+COS(135), 1+SIN(135), 1,

3+COS(45), 1+SIN(45), 1,

3+COS(150), 1+SIN(150), 1,

3+COS(60), 1+SIN(60), 1,

3+COS(165), 1+SIN(165), 1,

3+COS(75), 1+SIN(75), 1,

2, 1, 2,

3, 2, 1,

1, 1, 0

3+COS(105), 1+SIN(105), 1,

3+COS(120), 1+SIN(120), 1,
3+COS(135), 1+SIN(135), 1,

3+COS(150), 1+SIN(150), 1,
3+COS(165), 1+SIN(165), 1,

2, 1, 0,

1.9999, 1, 0,
1, 1, 0

background image

67

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

RULED

RULED

RULED

RULED

RULED

n, maska,
u

1

, v

1

, s

1

, . . . u

n

, v

n

, s

n

,

x

1

, y

1

, z

1

, . . . x

n

, y

n

, z

n

RULED jest powierzchnià zbudowanà na bazie dwóch linii ∏ama-
nych (p∏askiej i przestrzennej), o identycznej liczbie w´z∏ów.
Odpowiadajàce sobie w´z∏y obydwóch ∏amanych ∏àczone sà odcin-
kami.

Jest to jedyny element j´zyka GDL pozwalajàcy na to, aby dwa sà-
siednie w´z∏y nak∏ada∏y si´ na siebie

n :

liczba w´z∏ów w ka˝dej z ∏amanych.

maska :

steruje widocznoÊcià powierzchni dolnej, górnej
i bocznej powierzchni zamykajàcej oraz widoczno-
Êcià kraw´dzi tworzàcych figur´ ∏amanych.

ui, vi :

wspó∏rz´dne w´z∏ów p∏askiej ∏amanej.

si :

wspó∏rz´dne w´z∏ów ∏amanej przestrzennej.

xi, yi, zi :

wspó∏rz´dne w´z∏ów ∏amanej przestrzennej.

Ograniczenia wartoÊci parametrów:

n > 1

background image

68

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

Maski

maska = j1 + 2*j2 + 4*j3 + 16*j5 + 32*j6 + 64*j7

gdzie j1, j2, j3, j5, j6, j7

przyjmujà wartoÊci 0 lub 1.

j1 (1):

widocznoÊç powierzchni dolnej

j2 (2):

widocznoÊç powierzchni górnej (nie dzia∏a je˝eli
powierzchnia ta nie le˝y na p∏aszczyênie).

j3 (4):

widocznoÊç powierzchni bocznej (p∏aski czworo-
bok lub dwa trójkàty).

j5 (16):

widocznoÊç kraw´dzi na ∏amanej p∏askiej.

j6 (32):

widocznoÊç kraw´dzi na ∏amanej przestrzennej.

j7 (64):

widocznoÊç kraw´dzi na powierzchniach czworo-
boków tworzàcych powierzchni´ (przy widocznych
kraw´dziach powierzchnia nie b´dzie g∏adka).

WartoÊci statusu

0 :

boczne kraw´dzie zaczynajàce si´ w w´êle sà
widoczne.

1 :

boczne kraw´dzie zaczynajàce si´ w w´êle u˝ywane
sà do znajdowania konturu.

Przyk∏ady:

background image

69

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

RULED 6, 1+2+4+16+32+64,
0, 0, 0,

3, 0.5, 0,
6, 0, 0,

6, 6, 0,

3, 8, 0,
0, 6, 0,

3, 1, 7,

3, 1, 7,

3, 1, 7,
3, 5, 4,

3, 5, 4,
3, 5, 4

background image

70

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

SWEEP

SWEEP

SWEEP

SWEEP

SWEEP

n, m, alfa, skala, maska
u

1

, v

1

, s

1

, . . . u

n

, v

n

, s

n

,

x

1

, y

1

, z

1

, . . . x

m

, y

m

, z

m

Powierzchnia utworzona przez przeciàgni´cie p∏askiej linii ∏amanej
wzd∏u˝ ∏amanej przestrzennej.

P∏aska linia ∏amana mo˝e byç zarówno otwarta, jak i zamkni´ta.
Mo˝e byç równie˝ skalowana i obracana w ka˝dym kolejnym kro-
ku.

P∏aska ∏amana jest przesuwana po Êcie˝ce wyznaczonej przez ∏ama-
nà przestrzennà. ¸amana przestrzenna powinna zaczynaç si´ na
p∏aszczyênie x-y. Je˝eli ten warunek nie jest spe∏niony, ∏amana jest
przesuwana wzd∏u˝ osi z tak, aby go spe∏niç.

P∏aszczyzna, na której le˝y poÊrednia linia ∏amana, jest prostopad∏a
w w´êle (xi, yi, zi) do odcinka ∏amanej przestrzennej pomi´dzy
punktami (xi-1, yi-1, zi-1) i (xi, yi, zi). Polecenie SWEEP umo˝liwia
modelowanie np. ucha fili˝anki lub innych skomplikowanych
kszta∏tów.

n :

liczba w´z∏ów ∏amanej p∏askiej.

m :

liczba w´z∏ów ∏amanej przestrzennej (Êcie˝ki).

alfa :

kàt, o który obracane sà kolejne poÊrednie ∏amane
tworzone z ∏amanej p∏askiej.

skala:

wspó∏czynnik skalowania ∏amanej p∏askiej pomi´-
dzy kolejnymi w´z∏ami Êcie˝ki.

maska :

decyduje o widocznoÊci dolnej i górnej powierzchni
figury oraz o widocznoÊci kraw´dzi.

ui, vi :

wspó∏rz´dne ∏amanej p∏askiej.

si :

status kraw´dzi bocznych.

xi, yi, zi :

wspó∏rz´dne w´z∏ów Êcie˝ki.

Ograniczenia wartoÊci parametrów:

n > 1

m > 1

z1 < z2

Maski

maska = j1 + 2*j2 + 4*j3 + 16*j5 + 32*j6 + 64*j7

gdzie j1, j2, j3, j5, j6, j7

przyjmujà wartoÊci 0 lub 1.

j1 (1):

widocznoÊç powierzchni podstawy.

background image

71

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

j2 (2):

widocznoÊç górnej powierzchni.

j3 (4):

widocznoÊç zamykajàcej powierzchni bocznej.

j5 (16):

widocznoÊç kraw´dzi podstawy.

j6 (32):

widocznoÊç kraw´dzi powierzchni górnej.

j7 (64):

widocznoÊç kraw´dzi ∏amanych poÊrednich.

WartoÊci statusu

0 :

boczne kraw´dzie zaczynajàce si´ w w´êle sà
widoczne.

1 :

boczne kraw´dzie zaczynajàce si´ w w´êle u˝ywane
sà do pokazywania konturu.

Przyk∏ady:

background image

72

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

SWEEP 4, 5, 10, 0.7, 1+2+4+16+32,

2, 2, 0,
-2, 2, 0,

-2, -2, 0,
2, -2, 0,

0, 0, 0,
0, 0, 2,

0, 0, 4,
0, 0, 6,

0, 0, 8

background image

73

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

TUBE

TUBE

TUBE

TUBE

TUBE

n, m, maska,
u

1

, w

1

, s

1

,

. . .
u

n

, w

n

, s

n

,

x

1

, y

1

, z

1

, kàt1,,

. . .
x

m

, y

m

, z

m

, kàtm

Powierzchnia tworzona przez przeciàgni´cie linii ∏amanej wzd∏u˝
przestrzennej Êcie˝ki, bez modyfikacji kolejnych ∏amanych poÊred-
nich. PoÊrednie ∏amane mogà byç obrócone we wspó∏rz´dnych
U-W pomocniczego uk∏adu wspó∏rz´dnych
U-V-W.

oÊ V:

przybli˝a lini´ stycznà do Êcie˝ki w danym w´êle,

oÊ W:

prostopad∏a do osi V, skierowana mo˝liwie najbar-
dziej zgodnie z osià z,

oÊ U:

prostopad∏a do V i W, skierowana tak, aby utworzyç
dodatnio zorientowany uk∏ad wspó∏rz´dnych
kartezjaƒskich.

JeÊli oÊ V jest pionowa, to nie mo˝na prawid∏owo wyznaczyç kie-
runku osi. W takim przypadku jako dana pomocnicza, u˝ywany jest
kierunek osi W w poprzednim w´êle.

n:

liczba w´z∏ów ∏amanej.

m:

liczba w´z∏ów w Êcie˝ce.

ui, wi :

wspó∏rz´dne w´z∏ów ∏amanej.

si :

status kraw´dzi bocznych.

xi, yi, zi :

wspó∏rz´dne w´z∏ów Êcie˝ki.

(Âcie˝ka zawiera dwa dodatkowe w´z∏y. Pierwszy i
ostatni w´ze∏ s∏u˝à do wyznaczenia pierwszej i
ostatniej powierzchni nale˝àcych do figury. Punkty
te nie nale˝à do Êcie˝ki, ale wyznaczajà kierunek
segmentów, tak, jakby by∏y przed∏u˝eniem figury.)

kàti

kàt obrotu ∏amanej poÊredniej.

Maski

maska == j1 + 2*j2 + 16*j5 + 32*j6 + 64*j7

gdzie j1, j2, j5, j6, j7

przyjmujà wartoÊci 0 lub 1.

j1 (1):

widocznoÊç powierzchni startowej.

background image

74

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

j2 (2):

widocznoÊç powierzchni koƒcowej.

j5 (16):

widocznoÊç kraw´dzi ∏amanej w pozycji startowej
(x1, y1, z1).

j6 (32):

widocznoÊç kraw´dzi ∏amanej w pozycji koƒcowej
(xm, ym, zm).

j7 (64):

widocznoÊç kraw´dzi ∏amanych poÊrednich (poza
liniami ∏àczàcymi powierzchnie le˝àce na tej samej
p∏aszczyênie).

Ograniczenia wartoÊci parametrów:

n > 2

m > 3

W

U

U

V

W

alpha

WartoÊci statusu

0 :

boczne kraw´dzie zaczynajàce si´ w w´êle sà
widoczne.

1 :

boczne kraw´dzie zaczynajàce si´ w w´êle u˝ywane
sà do pokazywania konturu.

background image

75

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

Przyk∏ady:

TUBE 4, 18, 16+32,

2.0, 0.0, 0,

0.0, 0.0, 0,
0.0, 0.4, 0,

2.0, 0.4, 0,

-1, 0, 0, 0,

0, 0, 0, 0,
4, 0, 0.1, 0,

6, 0, 0.15, 0,

6+4*SIN(15), 4 - 4*COS(15), 0.2, 0,
6+4*SIN(30), 4 - 4*COS(30), 0.25, 0,

6+4*SIN(45), 4 - 4*COS(45), 0.3, 0,
6+4*SIN(60), 4 - 4*COS(60), 0.35, 0,

6+4*SIN(75), 4 - 4*COS(75), 0.4, 0,

10, 4, 0.45, 0,
6+4*SIN(105), 4 - 4*COS(105), 0.5, 0,

6+4*SIN(120), 4 - 4*COS(120), 0.55, 0,
6+4*SIN(135), 4 - 4*COS(135), 0.6, 0,

6+4*SIN(150), 4 - 4*COS(150), 0.65, 0,

6+4*SIN(165), 4 - 4*cos(165), 0.7, 0,
6, 8, 0.75, 0,

0, 8, 1, 0,
-1, 8, 1, 0

background image

76

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

TUBE 8, 11, 1+2,
0, 0, 0,

0, 0.4, 0,
0.08, 0.4, 0,

0.08, 0.24, 0,

0.24, 0.24, 0,
0.24, 0.16, 0,

0.4, 0.16, 0,
0.4, 0, 0,

2.4, 0, 0, 0,
1.2, 0, 0, 0,

0, 0, 0, 0,
0, 0, 2.4, 0,

0.6, 0, 3.0, 0,

1.2, 0, 3.2, 0,
1.8, 0, 3.0, 0,

2.4, 0, 2.4, 0,
2.4, 0, 0, 0,

1.2, 0, 0, 0,

0, 0, 0, 0

background image

77

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

TUBE 3, 7, 16+32,
0, 0, 0,

-0.5,0, 0,
0, 0.5,0,

0.2, 0, -0.2, 0,
0, 0, 0, 0,

0, 0, 5, 0,
3, 0, 5, 0,

3, 4, 5, 0,

3, 4, 0, 0,
3, 3.8, -0.2, 0

background image

78

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

COONS

COONS

COONS

COONS

COONS

n, m, maska,
x1

1

, y1

1

, z1

1

, . . . x1

n

, y1

n

, z1

n

,

x2

1

, y2

1

, z2

1

, . . . x2

n

, y2

n

, z2

n

,

x3

1

, y3

1

, z3

1

, . . . x3

m

, y3

m

, z3

m

,

x4

1

, y4

1

, z4

1

, . . . x4

m

, y4

m

, z4

m

Âcie˝ka Coona utworzona z czterech krzywych brzegowych.

Maski

maska = 4*j3 + 8*j4 + 16*j5 + 32*j6 + 64*j7

gdzie j3, j4, j5, j6, j7 przyjmujà wartoÊci 0 lub 1.

j3 (4):

widocznoÊç kraw´dzi pierwszego brzegu
(x1, y1, z1).

j4 (8):

widocznoÊç kraw´dzi drugiego brzegu
(x2, y2, z2).

j5 (16):

widocznoÊç kraw´dzi trzeciego brzegu
(x3, y3, z3).

j6 (32):

widocznoÊç kraw´dzi czwartego brzegu
(x4, y4, z4).

j7 (64):

widocznoÊç kraw´dzi na powierzchni (przy widocz-
nych kraw´dziach powierzchnia nie jest g∏adka w
fotoprezentacjach).

Ograniczenia wartoÊci parametrów:

n, m > 1

4(m)

2(n)

3(m)

1(n)

background image

79

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

Przyk∏ady:

COONS 3,6,4+8+16+32+64,

0,0,0,
0,5,2,

0,10,1,

10,0,0,

10,5,0,
10,10,0,

0,0,0,
2,0,-0.3,

4,0,-0.2,
6,0,0.5,

8,0,0.7,

10,0,0,

0,10,1,
2,10,1.5,

4,10,2,

6,10,2,
8,10,1,

10,10,0

background image

80

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

ROTZ -90

ROTY 90
COONS 7, 6, 4+8+16+32+64,

!pierwszy brzeg, n=7

1, 2, 0,
0.5, 1, 0,

0.2, 0.5, 0,
-0.5, 0, 0,

0.2, -0.5, 0,

0.5, -1, 0,
1, -2, 0,

!drugi brzeg, n=7
6, 10, -2,

6.5, 4, -1.5,

5, 1, -1.2,
4, 0, -1,

5, -1, -1.2,
6.5, -4, -1.5,

6, -10, -2,

!trzeci brzeg, m=6

1, 2, 0,
2, 4, -0.5,

3, 6, -1,

4, 8, -1.5,
5, 9, -1.8,

6, 10, -2,
!czwarty brzegy, m=6

1, -2, 0,

2, -4, -0.5,
3, -6, -1,

4, -8, -1.5,
5, -9, -1.8,

6, -10, -2

background image

81

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

MESH

MESH

MESH

MESH

MESH

a, b, m, n, maska, z

11

, z

12

, . . . z

1m

, z

21

, z

22

, . . . z

2m

, . . . z

nm

G∏adka powierzchnia zbudowana na planie prostokàta, z wysoko-
Êciami okreÊlonymi w punktach rozmieszczonych w w´z∏ach siatki
o równoodleg∏ych liniach. Rzut na p∏aszczyzn´ x-y jest prostokà-
tem o wymiarach a i b; m i n sà iloÊciami linii siatki wzd∏u˝ osi x i
y, a zij sà wzniesieniami powierzchni w poszczególnych w´z∏ach.
Maski

maska = j1 + 4*j3 + 16*j5 + 32*j6 + 64*j7

gdzie j1, j3, j5, j6, j7

przyjmujà wartoÊci 0 lub 1.

j1 (1):

widocznoÊç podstawy.

j3 (4):

widocznoÊç podstawy.

j5 (16):

widocznoÊç podstawy.

j6 (32):

brzegi góry sà widoczne.

j7 (64):

kraw´dzie boczne sa widoczne, powierzchnia górna
nie jest g∏adka

Ograniczenia wartoÊci parametrów:

m > 2, n > 2

background image

82

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

Przyk∏ady:

MESH 50, 30, 5, 6, 1+4+16+32+64,
2, 4, 6, 7, 8,

10, 3, 4, 5, 6,
7, 9, 5, 5, 7,

8, 10, 9, 4, 5,

6, 7, 9, 8, 2,
4, 5, 6, 8, 6

MESH 90,100, 12,8, 1+4+16+32+64,

17,16,15,14,13,12,11,10,10,10,10, 9,
16,14,13,11,10, 9, 9, 9,10,10,12,10,

16,14,12,11, 5, 5, 5, 5, 5,11,12,11,
16,14,12,11, 5, 5, 5, 5, 5,11,12,12,

16,14,12,12, 5, 5, 5, 5, 5,11,12,12,

16,14,12,12, 5, 5, 5, 5, 5,11,13,14,
17,17,15,13,12,12,12,12,12,12,15,15,

17,17,15,13,12,12,12,12,13,13,16,16

background image

83

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

5.3 Elementy tylko dla

fotoprezentacji

LIGHT

LIGHT

LIGHT

LIGHT

LIGHT

czerwony, zielony, niebieski, cieƒ,
promieƒ, alfa, beta, rozm_kàtowe,
odl1, odl2, t∏umienie

èród∏o Êwiat∏a o barwie okreÊlonej przez sk∏adowe RGB (czerwo-
ny, zielony, niebieski) umieszczone w poczàtku lokalnego uk∏adu
wspó∏rz´dnych, Êwiecàce wzd∏u˝ osi x. Promienie Êwiat∏a idà rów-
nolegle do osi x z punktowego lub ko∏owego êród∏a. IntensywnoÊç
Êwiat∏a jest maksymalna wewnàtrz sto˝ka Êci´tego okreÊlonego kà-
tem alfa, a spada do zera na kraw´dzi sto˝ka Êci´tego, okreÊlonego
kàtem beta. Rozmycie to jest okreÊlone poprzez parametr rozm_kà-
towe (im wi´ksza wartoÊç, tym przejÊcie jest ∏agodniejsze; 0
oznacza ostrà kraw´dê). Âwiat∏o emitowane ze êród∏a jest brane
pod uwag´ jedynie pomi´dzy odleg∏oÊciami odl1 i odl2. Parametr
t∏umienie decyduje o spadku intensywnoÊci Êwiat∏a wraz z odleg∏o-
Êcià (im wi´ksza wartoÊç, tym silniejsze t∏umienie; 0 oznacza sta∏à
intensywnoÊç).

Transformacje GDL majà wp∏yw tylko na punkt poczàtkowy i kie-
runek swiat∏a

.

Parametr cieƒ decyduje o tym, czy dane êród∏o Êwiat∏a powoduje
rzucanie cieni.

0 :

cienie nie sà rzucane

1 :

cienie sà rzucane

background image

84

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

radius

intensity

alpha

beta

dist2

dist1

Ograniczenia wartoÊci parametrów:

alfa < beta < 80°

Poni˝sze kombinacje parametrów majà

promieƒ = 0, alfa = 0, beta = 0

Punktowe êród∏o Êwiat∏a, promieniujàce we wszystkich
kierunkach i nie powodujàce rzucania cieni.

Parametry cieƒ i rozm_kàtowe sà ignorowane, przyjmowa-
ne sà wartoÊci cieƒ = 0, rozm_kàtowe = 0.

promieƒ > 0, alfa = 0, beta = 0

Kierunkowe êród∏o Êwiat∏a.

Przyk∏ad:

LIGHT 1.0,0.2,0.3,

! (czerwony, zielony, nie-

bieski)
1,

! cienie w∏àczone

1.0,

! promieƒ

45.0,60.0,

! kàt1, kàt2

0.3,

! rozmycie kàtowe

1.0,10.0,

! dist1, dist2

0.2

! t∏umienie

background image

85

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

Okno dialogowe Êwiat∏a w ArchiCADa:

Fragment skryptu u˝ywajàcego parametrów êród∏a Êwiat∏a:

IF C = 0 GOTO 10
LIGHT G/100*D, G/100*E, G/100*F, !RGB

...

10:

r = 0, alfa > 0, beta > 0

r > 0, alfa = 0, beta > 0

r > 0, alfa = 0, beta = 0

èród∏a Êwiat∏a o ró˝nych kombinacjach parametrów alfa i beta

background image

86

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

PICTURE

PICTURE

PICTURE

PICTURE

PICTURE

nazwa_pliku, a, b, maska

Obrazek do umieszczenia na fotoprezentacji. Obrazek ze wskazane-
go pliku umieszczany jest w prostokàcie o parametrach takich, jak
w poleceniu RECT.we wszystkich innych metodach projekcji 3D.

maska = alfa + dopasowanie

alfa :

sterowanie u˝yciem kana∏u alfa

0: kana∏ alfa nie jest u˝ywany, obrazek pozostaje
prostokàtem

1: kana∏ alfa jest u˝ywany, fragmenty obrazka mogà
byç przezroczyste.

dopasowanie: metoda dopasowywania obrazka do prostokàta

0: obrazek jest rozciàgany tak, aby pasowa∏ do
prostokàta

2: obrazek jest przeskalowany z zachowaniem
proporcji tak, aby mieÊci∏ si´ ca∏y wewnàtrz prosto-
kàta

4: obrazek jest przeskalowywany z zachowaniem
proporcji tak, aby wype∏ni∏ ca∏y prostokàt

background image

87

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

5.4 Tekst

TEXT

TEXT

TEXT

TEXT

TEXT

d, 0, wyra˝enie

Przestrzenny tekst o bie˝àcych parametrach. Zobacz DEFINE STY-
LE i SET STYLE w rozdziale 10.

d: g∏´bokoÊç liter (w metrach)

W tej wersji GDL drugi parametr jest zawsze zerem.

Przyk∏ad:

DEFINE STYLE "aa" "New York", 3, 7, 0
SET STYLE "aa"

TEXT 0.005, 0, "3D Text"

nazwa = "Grand"

ROTX 90

ROTY -30
TEXT 0.003, 0, nazwa

ADDX STW (nazwa)/1000
ROTY 60

TEXT 0.003, 0, "Hotel"

Uwaga:

Uwaga:

Uwaga:

Uwaga:

Uwaga: Dla kompatybilnoÊci z 2D GDL skrypt, znak, wysokoÊç za-
wsze jest interpretowana w mm w DEFINE STYLE

background image

88

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

5.5 Elementy podstawowe

Elementami podstawowymi struktur danych 3D sà: VERT, VECT,
EDGE, PGON i BODY. Bry∏y sà z∏o˝one z tworzàcych je
powierzchni i informacji o po∏àczeniach mi´dzy nimi. Informacja o
wyglàdzie przekroju pochodzi w∏aÊnie z informacji o po∏àczeniach
powierzchni w bryle.

Numerowanie zaczyna si´ zawsze od 1, a ka˝de polecenie BODY
ustawia ponownie numeracj´ na 1. Dla ka˝dej kraw´dzi
przechowywane sà numery sàsiadujàcych wieloboków (maksimum
2). Orientacja kraw´dzi jest wyznaczana poprzez numery jej
wierzcho∏ków.

Wieloboki (PGON) sà listami kraw´dzi z orientacjà, zawierajàcymi
numery tych kraw´dzi. Numery mogà byç podawane ze znakiem
minus, co oznacza, ˝e dana kraw´dê ma w wieloboku zmienionà
orientacj´ na przeciwnà. Wieloboki mogà zawieraç otwory.
Poczàtek otworu jest zaznaczany na liÊcie kraw´dzi liczbà zero.
Otwory nie mogà zawieraç kolejnych otworów. Jedna kraw´dê
mo˝e nale˝eç do maksimum dwóch wieloboków. W przypadku
zamkni´tych bry∏ orientacja wieloboku jest poprawna, je˝eli znak
przed numerem kraw´dzi jest ró˝ny w listach dwóch
odpowiednich wieloboków

Wektory normalne wieloboków sà przechowywane osobno. W
przypadku zamkni´tych bry∏ zorientowane sà one od wn´trza na
zewnàtrz bry∏y. Orientacja listy kraw´dzi (patrzàc od zewnàtrz) jest
przeciwna do ruchu wskazówek zegara (okreÊlona dodatnio).
Orientacja otworów jest przeciwna do orientacji zawierajàcego je
wieloboku. Wektory normalne otwartej bry∏y muszà byç
zorientowane na t´ samà stron´ bry∏y.

Aby móc okreÊliç wn´trze i zewn´trze bry∏y musi byç ona
zamkni´ta. Prostà definicjà zamkni´cia jest to, ˝e ka˝da jej kraw´dê
nale˝y do dok∏adnie dwóch wieloboków.

WydajnoÊç tworzenia przekrojów, ukrywania linii i fotoprezentacji
jest gorsza dla bry∏ otwartych. Wszystkie z∏o˝one bry∏y z
prawid∏owymi parametrami sà w reprezentacji wewn´trznej
bry∏ami zamkni´tymi.

Wyszukiwanie konturu bry∏y jest oparte na bitach statusu kraw´dzi
i na analizie sàsiednich wieloboków. Bity te sà ustawiane
automatycznie przez polecenia z∏o˝one, ale w przypadku u˝ycia

background image

89

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

elementów prostych obowiàzek prawid∏owego ich ustawienia
spoczywa na piszàcym skrypt.

W przypadku definicji uproszczonej (parametr i vect w PGON jest
równy 0 lub parametr status <0) elementy, do których nast´puje
odwo∏anie w innych elementach, muszà byç zdefiniowane przed
odwo∏aniem si´ do nich. W takim przypadku zalecanà kolejnoÊcià
poleceƒ jest:

ERT

EDGE

(VECT)

PGON

BODY

Wyszukiwanie stykajàcych si´ kraw´dziami wieloboków nast´puje
podczas wykonywania polecenia BODY.

Numerowanie elementów VERT, EDGE, VECT i PGON jest
odnoszone do ostatniego (jawnego lub domyÊlnego) wywo∏ania
polecenia BASE.

WartoÊci statusu u˝ywane sà do przechowywania specjalnych
informacji o elementach prostych. Pojedyncze bity majà na ogó∏
niezale˝ne od siebie znaczenia. Jednak od tej regu∏y bywajà
wyjàtki.

Przedstawione poni˝ej wartoÊci statusu mogà byç do siebie
dodawane. WartoÊci, które nie zosta∏y wymienione, sà
zarezerwowane dla u˝ytku wewn´trznego. DomyÊlnà wartoÊcià dla
wszystkich bitów statusu jest 0.

VERT

VERT

VERT

VERT

VERT

x, y, z

W´ze∏ w przestrzeni, zdefiniowany przez trzy jego wspó∏rz´dne.

VECT

VECT

VECT

VECT

VECT

x, y, z

v

EDGE

EDGE

EDGE

EDGE

EDGE

vert

1

, vert

2

, pgon

1

, pgon

2

, status

Definicja kraw´dzi

vert1, vert2 : numery w´z∏ów (zdefiniowanych poleceniem

VERT), b´dàcych koƒcami odcinka.

Numery vert1 i vert2 muszà byç ró˝ne i muszà odnosiç si´ do
wczeÊniej zdefiniowanych w´z∏ów.

background image

90

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

pgon1, pgon2

:

numery wieloboków do których nale˝y kraw´dê.
Zero i liczby ujemne majà znaczenie specjalne:

0 : kraƒcowa lub swobodna kraw´dê.

<0 : ArchiCAD powinien sam znaleêç odpowiednie
wieloboki.

Bity statusu:

1

kraw´dê niewidoczna.

2

kraw´dê na zakrzywionej powierzchni.

Zarezerwowane na przysz∏oÊç bity statusu:

4

pierwsza kraw´dê na zakrzywionej powierzchni

(zawsze razem z bitem 2).

8

ostatnia kraw´dê na zakrzywionej powierzchni

(zawsze razem z bitem 2).

16

kraw´dê b´dàca segmentem ∏uku.

32

pierwszy segment ∏uku (zawsze razem z bitem 16).

64

ostatni segment ∏uku (zawsze razem z bitem 16).

PGON

PGON

PGON

PGON

PGON

n, ivect, status, edge

1

, edge

2

, . . . edge

n

n :

liczba kraw´dzi w liÊcie kraw´dzi.

ivect :

numer wektora normalnego (wskazuje na numer
wektora wczeÊniej zdefiniowanego poleceniem
VECT; je˝eli ivect = 0, ArchiCAD oblicza wektor
normalny podczas analizy).

edge1, edge2, . . . edgen index musi odpowiadaç wczeÊniej
zdefiniowanemu EDGE.

Ujemne wartoÊci numerów oznaczajà zmian´ zwrotu wektora
normalnego lub kraw´dzi (wektor i kraw´dê nie zmieniajà si´, inne
wieloboki mogà odwo∏ywaç si´ do nich poprzez ich zwyk∏e
numery).

Bity statusu:

1

wielobok niewidoczny.

2

wielobok na zakrzywionej powierzchni.

16

wielobok wkl´s∏y.

background image

91

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

32

wielobok z otworami.

64

otwór (otwory) jest wypuk∏y (zawsze razem z bitem
32)

Zarezerwowane na przysz∏oÊç bity statusu:

4

pierwszy wielobok na zakrzywionej powierzchni

(zawsze razem z bitem 2).

8

ostatni wielobok na zakrzywionej powierzchni

(zawsze razem z bitem 2).

Je˝eli wartoÊç statusu jest ujemna, ArchiCAD oblicza status
wieloboku (sprawdza wkl´s∏oÊç, otwory itp.).

n = 0 jest dozwolone dla specjalnych zastosowaƒ.

PIPG

PIPG

PIPG

PIPG

PIPG

nazwa_pliku, a, b, maska, n, ivect, status,
edge1, edge2, . . . edgen

Definicja wieloboku obrazka. Pierwsze cztery parametry sà takie
same, jak dla polecenia PICTURE. Pozosta∏e sà takie same, jak dla
polecenia PGON.

COOR

COOR

COOR

COOR

COOR

nak∏adanie, vert1, vert2, vert3, vert4

Lokalny uk∏ad wspó∏rz´dnych dla nak∏adania wzoru wype∏nienia w
instrukcji BODY.

nak∏adanie :

sposób nak∏adania

1 :

p∏askie

2 :

pude∏ko

3 :

cylinder

4 :

sfera

vert1 :

numer w´z∏a VERT oznaczajàcego poczàtek
lokalnego uk∏adu wspó∏rz´dnych.

vert2, vert3, vert4 :

numery w´z∏ów definiujàcych trzy osie uk∏adu
wspó∏rz´dnych.

Je˝eli w´z∏y VERT u˝ywane sà tylko do definiowania uk∏adu
wspó∏rz´dnych, to nale˝y poprzedziç ich numery znakiem minus.

background image

92

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

BODY

BODY

BODY

BODY

BODY

status

Sk∏ada bry∏´ ze zdefiniowanych wczeÊniej elementów prostych.

Bity statusu:

1

bry∏a zamkni´ta.

2

bry∏a zawierajàcy zakrzywione powierzchnie.

4

model powierzchniowy (na przekrojach b´dzie
pusty).

32

bry∏a zawsze rzuca cieƒ niezale˝nie od
automatycznego wyboru.

64

bry∏a nigdy nie rzuca cienia.

Je˝eli ani bit 32, ani 64 nie jest ustawiony, decyzja o uwzgl´dnieniu
bry∏y przy rzucaniu cieni podejmowana jest za pomocà algorytmu
automatycznego wyboru. Zajrzyj równie˝ do rozdzia∏u 10.

Je˝eli wartoÊç statusu jest mniejsza od 0, to ArchiCAD obliczy
status sam.

Przyk∏ad:

background image

93

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

1: Kompletny opis

VERT 0.0, 0.0, 0.0

!#1

VERT 1.0, 0.0, 0.0

!#2

VERT 1.0, 1.0, 0.0

!#3

VERT 0.0, 1.0, 0.0

!#4

VERT 0.0, 0.0, 1.0

!#5

VERT 1.0, 0.0, 1.0

!#6

VERT 1.0, 1.0, 1.0

!#7

VERT 0.0, 1.0, 1.0

!#8

EDGE

1, 2, 1, 3, 0

!#1

EDGE

2, 3, 1, 4, 0

!#2

EDGE

3, 4, 1, 5, 0

!#3

EDGE

4, 1, 1, 6, 0

!#4

EDGE

5, 6, 2, 3, 0

!#5

EDGE

6, 7, 2, 4, 0

!#6

EDGE

7, 8, 2, 5, 0

!#7

EDGE

8, 5, 2, 6, 0

!#8

EDGE

1, 5, 6, 3, 0

!#9

EDGE

2, 6, 3, 4, 0

!#10

EDGE

3, 7, 4, 5, 0

!#11

EDGE

4, 8, 5, 6, 0

!#12

VECT 1.0, 0.0, 0.0

!#1

VECT 0.0, 1.0, 0.0

!#2

VECT 0.0, 0.0, 1.0

!#3

PGON 4, -3, 0, -1, -4, -3, -2

!#1

!VERT1,2,3,4

PGON 4, 3, 0, 5, 6, 7, 8

!#2

!VERT5,6,7,8

PGON 4, -2, 0, 1, 10, -5, -9

!#3

!VERT1,2,5,6

PGON 4, 1, 0, 2, 11, -6, -10

!#4

!VERT2,3,6,7

PGON 4, 2, 0, 3, 12, -7, -11

!#5

!VERT3,4,7,8

PGON 4, -1, 0, 4, 9, -8, -12

!#6

!VERT1,4,5,8

BODY 1

!CUBE

background image

94

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

2: (bez bezpoÊrednich odwo∏aƒ do wieloboków, ArchiCAD
znajduje je sam)

VERT 0.0, 0.0, 0.0

!#1

VERT 1.0, 0.0, 0.0

!#2

VERT 1.0, 1.0, 0.0

!#3

VERT 0.0, 1.0, 0.0

!#4

VERT 0.0, 0.0, 1.0

!#5

VERT 1.0, 0.0, 1.0

!#6

VERT 1.0, 1.0, 1.0

!#7

VERT 0.0, 1.0, 1.0

!#8

EDGE 1, 2, -1, -1, 0

!#1

EDGE 2, 3, -1, -1, 0

!#2

EDGE 3, 4, -1, -1, 0

!#3

EDGE 4, 1, -1, -1, 0

!#4

EDGE 5, 6, -1, -1, 0

!#5

EDGE 6, 7, -1, -1, 0

!#6

EDGE 7, 8, -1, -1, 0

!#7

EDGE 8, 5, -1, -1, 0

!#8

EDGE 1, 5, -1, -1, 0

!#9

EDGE 2, 6, -1, -1, 0

!#10

EDGE 3, 7, -1, -1, 0

!#11

EDGE 4, 8, -1, -1, 0

!#12

PGON 4, 0, -1, -1, -4, -3, -2

!#1

!VERT1,2,3,4

PGON 4, 0, -1, 5, 6, 7, 8

!#2

!VERT5,6,7,8

PGON 4, 0, -1, 1, 10, -5, -9

!#3

!VERT1,2,5,6

PGON 4, 0, -1, 2, 11, -6, -10

!#4

!VERT2,3,6,7

PGON 4, 0, -1, 3, 12, -7, -11

!#5

!VERT3,4,7,8

PGON 4, 0, -1, 4, 9, -8, -12 !#6

!VERT1,4,5,8

BODY -1

!CUBE

BASE

BASE

BASE

BASE

BASE

Kasuje numeracj´ elementów podstawowych (VERT, VECT, EDGE
i PGON). DomyÊlnie wywo∏ywane po ka˝dym u˝yciu elementu
z∏o˝onego.

background image

95

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

5.6 U˝ywanie formatu

dwójkowego

BINARY

BINARY

BINARY

BINARY

BINARY

tryb [, sekcja]

Polecenie specjalne umo˝liwiajàce umieszczenie wewnàtrz skryptu
GDL elementów zdefiniowanych w dwójkowej cz´Êci pliku
obiektu GDL. Elementy te sà umieszczane w modelu 3D zgodnie z
aktualnym ustawieniem uk∏adu wspó∏rz´dnych. Dane z dwójkowej
cz´Êci pliku nie mogà byç zmieniane.

tryb

0:

do rysowania u˝ywane sà bie˝àce ustawienia PEN i
MATERIAL.

1:

do rysowania u˝ywane sà zapami´tane definicje
materia∏ów i piór; wyglàd powierzchni nie zmienia
si´. Bie˝àce ustawienia PEN i MATERIAL sà
pomijane.

2:

do rysowania u˝ywane sà zapami´tane definicje
materia∏ów i piór; niezdefiniowane materia∏y
zast´powane sà materia∏em domyÊlnym.

3:

do rysowania u˝ywane sà zapami´tane definicje
materia∏ów i piór; niezdefiniowane materia∏y
zast´powane sà zapami´tanym materia∏em
domyÊlnym.

sekcja:

indeks fragmentów dwójkowych od 1 to 16

Ustalajàc wartoÊç sekcji równà 0, mo˝na wp∏ywaç równolegle na
wszystkie istniejàce fragmenty.

W skrypcie GDL instrukcja BINARY mo˝e zostaç u˝yta z
parametrem sekcja równym 1. Przy braku tego parametru, jego
wartoÊç przyjmowana jest automatycznie równa 1. Inne wartoÊci
parametru sekcja bedà u˝yte przez programy rozszerzajàce
(StairMaker, ArchiSite, VisualGDL, itd.)

Je˝eli element biblioteczny zosta∏ utworzony przez ArchiCADa na
podstawie modeli utworzonych w innych programach (np. DXF,
ZOOM), to ca∏y opis tych elementów znajduje si´ w cz´Êci
dwójkowej pliku elementu bibliotecznego.

background image

96

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

Mo˝liwe jest zachowanie elementu bibliotecznego ArchiCADa w
formacie dwójkowym poprzez u˝ycie polecenia

Otwórz element z

biblioteki z menu Plik. Po otwarciu elementu bibliotecznego nale˝y
go zachowaç za pomocà polecenia

Zachowaj jako… zaznaczajàc

kratk´

Zachowaj w formacie dwójkowym .

Rada: Zachowanie przekroju 3D w formacie dwójkowym
spowoduje zachowanie jedynie tego fragmentu modelu, który jest
widoczny. Umo˝liwia to tworzenie elementów przeci´tych.

Zachowanie w formacie dwójkowym mo˝liwe jest jedynie wtedy,
gdy utworzony zosta∏ model 3D, tzn. kiedy zosta∏ przynajmniej raz
utworzony widok 3D elementu.

Zastàpienie elementu GDL

GDL

GDL

GDL

GDL jego modelem dwójkowym znacznie

przyspiesza czas potrzebny na jego prezentacj´. Z drugiej strony
element w formacie dwójkowym nie jest parametryczny, a plik z
jego opisem jest wi´kszy od pliku z opisem GDL

GDL

GDL

GDL

GDL.

5.7 P∏aszczyzny ci´cia

CUTPLANE

CUTPLANE

CUTPLANE

CUTPLANE

CUTPLANE

[x, y, z [, strona]]

instrukcje

CUTEND

CUTEND

CUTEND

CUTEND

CUTEND

lub

CUTPLANE

CUTPLANE

CUTPLANE

CUTPLANE

CUTPLANE

kàt

instrukcje

CUTEND

CUTEND

CUTEND

CUTEND

CUTEND

Tworzy p∏aszczyzny ci´cia i odcina cz´Êci z nast´pujàcych po niej
figur CUTPLANE mo˝e mieç ró˝ne parametry.

CUTPLANE zawiera:

Bez parametrów:

Bez parametrów:

Bez parametrów:

Bez parametrów:

Bez parametrów: ci´cie w p∏aszczyênie x-y

1 parametr

1 parametr

1 parametr

1 parametr

1 parametr: p∏aszczyzna ci´cia przechodzi przez oÊ x i wyznaczona
jest poprzez kàt p∏aszczyzny x-y

2 parametery

2 parametery

2 parametery

2 parametery

2 parametery: p∏aszczyzna jest równoleg∏a do osi z i przecina osie
x,y w podanych punktach

3 parametery

3 parametery

3 parametery

3 parametery

3 parametery: przecina osie x,y,z w podanych punktach

4 parametery

4 parametery

4 parametery

4 parametery

4 parametery: pierwsze trzy parametry jak wy˝ej,

background image

97

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

strona = 0: odcina fragment powy˝ej p∏aszczyzny ci´cia

(standardowo)

strona = 1: odcina fragment poni˝ej p∏aszczyzny ci´cia. W

przypadku p∏aszczyzny x-y, x-z, y-z, fragment po stronie zwróconej
w kierunku wartoÊci ujemnych trzeciej osi.

Ci´cie (bez parametru

strona) odcina fragment powy˝ej

p∏aszczyzny ci´cia. Jesli jest ona zdefiniowana przez pierwsze trzy
parametry jako p∏aszczyzna x-y, x-z lub y-z (na przyk∏ad 1.0, 1.0, 0.0
definiuje p∏aszczyzn´ x-y), to fragment odcinany le˝y po stronie w
kierunku wartoÊci dodatnich trzeciej osi.

Dowolna iloÊç komend mo˝e byç umieszczona mi´dzy CUTPLANE
i CUTEND. Makrodefinicje moga zawieraç równie˝ te komendy.

Parametry CUTPLANE odnoszà si´ do aktualnego uk∏adu
wspó∏rz´dnych.

Transformacje mi´dzy CUTEND i CUTPLANE nie majà wp∏ywu na
p∏aszczyzny ci´cia ale ka˝da nast´pna CUTPLANE b´dzie
przetransformowana, wi´c po u˝yciu odpowiednich transformacji,
do wstawienia p∏aszczyzny ci´cia nale˝y je skasowaç przed
zdefiniowaniem figur.

Pary poleceƒ CUTPLANE-CUTEND mogà byç zagnie˝d˝one tak˝e w
p´tli. Je˝eli brakuje ostatniej komendy CUTEND, to poprzedzajaca
go komenda pozostaje aktywna do koƒca skryptu.

CUTPLANE zawarte w makrodefinicjach dzia∏ajà tylko wewnatrz
nich, nawet je˝eli brakuje zamykajacej komendy CUTEND.

Aktualne utawienia materialów, piór i nape∏nieƒ sa u˝ywane jako
definicje nowo powsta∏ych powierzchniprzekrojowych.

Nale˝y pami´taç ˝e:

Je˝eli CUTPLANE nie zostanie zamkni´te przy pomocy CUTEND, w
najgorszym wypadku ˝adna z figur nie zostanie wyÊwietlona,
pojawi si´ szereg komunikatów o braku CUTEND.

Je˝eli transformacje u˝yte tylko do ustawienia p∏aszczyzn ci´cia nie
zostana skasowane, mo˝na ulec z∏udzeniu, ˝e definicja p∏aszczyzny
ci´cia jest b∏´dna, jednak przyczynà jest zmiana uk∏adu
wspó∏rz´dnych obiektów, które mia∏y byc obci´te.

background image

98

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

Przyk∏ady:

CUTPLANE

CUTPLANE 1, 1, 0, 1

SPHERE 2

SPHERE 2

CUTEND

CUTEND

CUTPLANE 1.8, 1.8,

CUTPLANE 1.8, 1.8,

1.8

1.8, 1

SPHERE 2

SPHERE 2

CUTEND

CUTEND

background image

99

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

CUTPLANE 60

CUTPLANE -120

BRICK 2, 2, 2

BRICK 2, 2, 2

CUTEND

CUTEND

background image

100

• Rozdzia∏ 5: Elementy przestrzenne

Podr´cznik j´zyka GDL

background image

101

• Rozdzia∏ 6: Elementy dla symboli 2D

Podr´cznik j´zyka GDL

6

Elementy dla symboli 2D

background image

102

• Rozdzia∏ 6: Elementy dla symboli 2D

Podr´cznik j´zyka GDL

6.1 Elementy rysowane

HOTSPOT2

HOTSPOT2

HOTSPOT2

HOTSPOT2

HOTSPOT2

x, y

LINE2

LINE2

LINE2

LINE2

LINE2

x

1

, y

1

, x

2

, y

2

RECT2

RECT2

RECT2

RECT2

RECT2

x

1

, y

1

, x

2

, y

2

background image

103

• Rozdzia∏ 6: Elementy dla symboli 2D

Podr´cznik j´zyka GDL

POLY2

POLY2

POLY2

POLY2

POLY2

n, wype∏nienie, x1, y1, .... xn, yn

Otwarty lub zamkni´ty wielobok o n wierzcho∏kach.

Ograniczenia wartoÊci parametrów:

n > 2

wype∏nienie = j1 + 2*j2 + 4*j3

gdzie j1, j2, j3

przyjmujà wartoÊci 0 lub 1

j1

(1):

tylko kontur

j2

(2):

tylko wype∏nienie

j3

(4):

zamkni´cie otwartego wieloboku.

background image

104

• Rozdzia∏ 6: Elementy dla symboli 2D

Podr´cznik j´zyka GDL

POLY2_

POLY2_

POLY2_

POLY2_

POLY2_

n, wype∏nienie, x1, y1, maska1, .... xn, yn, maska n

Podobne do polecenia POLY2, ale ka˝da z kraw´dzi mo˝e zostaç
pomini´ta. Je˝eli maskai

= 0, to kraw´dê zaczynajàca si´ w punkcie

(xi, yi) zostanie pomini´ta. Je˝eli maskai

= 1, to kraw´dê zostanie

pokazana. WartoÊç -1 oznacza koniec bie˝àcego konturu i
rozpocz´cie definiowania nowego otworu. Dok∏adniejsze
informacje znajdziesz w opisie polecenia PRISM_.

Ograniczenia wartoÊci parametrów:

n > 2

wype∏nienie = j1 + 2*j2 + 4*j3

gdzie j1, j2, j3

przyjmujà wartoÊci 0 lub 1

j1

(1):

tylko kontur

j2

(2):

tylko wype∏nienie

j3

(4):

zamkni´cie otwartego wieloboku.

maskai

:

0: nast´pny odcinek jest niewidoczny

1: nast´pny odcinek jest widoczny

-1: koniec konturu

background image

105

• Rozdzia∏ 6: Elementy dla symboli 2D

Podr´cznik j´zyka GDL

ARC2

ARC2

ARC2

ARC2

ARC2

x, y, r,alfa, beta

¸uk o Êrodku w punkcie (x, y) i promieniu r, zawarty pomi´dzy
kàtami alfa i beta.

Kàty alfa i beta podawane sà w stopniach.

CIRCLE2

CIRCLE2

CIRCLE2

CIRCLE2

CIRCLE2

x, y, r

Okràg o Êrodku w punkcie (x, y) i promieniu r.

background image

106

• Rozdzia∏ 6: Elementy dla symboli 2D

Podr´cznik j´zyka GDL

SPLINE2

SPLINE2

SPLINE2

SPLINE2

SPLINE2

n, status, x

1

, y

1

, kàt

1

,…, x

n

, y

n

, kàt

n

Ograniczenie:

n 2

Krzywa, o n punktach kontrolnych. Styczna do krzywej w punkcie
kontrolnym definiowana jest przez kàt

i

w stopniach do osi Ox.

WartoÊci statusu:

1: zamkni´ta krzywa

2: automatyczne wyg∏adzanie krzywej

Przyk∏ady:

SPLINE2 5, 2,

0, 0, 60,
1, 2, 30,

1.5, 1.5, -30,
3, 4, 45,

4, 3, -45

background image

107

• Rozdzia∏ 6: Elementy dla symboli 2D

Podr´cznik j´zyka GDL

n = 5

FOR i = 1 TO n

SPLINE2 4, 0,
0.0, 2.0, 135.0,

-1.0, 1.8, 240.0,
-1.0, 1.0, 290.0,

0.0, 0.0, 45.0

MUL2 -1.0, 1.0

SPLINE2 4, 0,
0.0, 2.0, 135.0,

-1.0, 1.8, 240.0,

-1.0, 1.0, 290.0,
0.0, 0.0, 45.0

DEL 1

SPLINE2 4, 0,

0.0, 2.0, 100.0,
0.0, 2.5, 0.0,

0.0, 2.4, 270.0,
0.0, 2.0, 270.0

ADD2 2.5, 0

NEXT i

background image

108

• Rozdzia∏ 6: Elementy dla symboli 2D

Podr´cznik j´zyka GDL

6.2 Element tekstowy

TEXT2

TEXT2

TEXT2

TEXT2

TEXT2

x, y, wyra˝enie

Sta∏a tekstowa lub wartoÊç obliczonego wyra˝enia jest pisana
aktualnie ustawionym stylem pisma w punkcie o wspó∏rz´dnych
(x, y).

ArchiCAD

6.3 Fragmenty

FRAGMENT2

FRAGMENT2

FRAGMENT2

FRAGMENT2

FRAGMENT2

numer_fragmentu, u˝ycie_bie˝àcych_atrybutów

Fragment o podanym numerze jest umieszczany zgodnie z
aktualnym ustawieniem uk∏adu wspó∏rz´dnych na pe∏nym widoku
2D.

u˝ycie_bie˝àcych_atrybutów :

0: Fragment jest umieszczany zgodnie z u˝ytymi w nim

kolorami, typami linii i wype∏nieƒ

1: Fragment jest umieszczany z wartoÊciami koloru,
typu linii i wype∏nienia bie˝àcymi w danym
skrypcie

FRAGMENT2

FRAGMENT2

FRAGMENT2

FRAGMENT2

FRAGMENT2

ALL

ALL

ALL

ALL

ALL

, u˝ycie_bie˝àcych_atrybutów

Wszystkie fragmenty sà umieszczane zgodnie z aktualnym
ustawieniem uk∏adu wspó∏rz´dnych w pe∏nym widoku 2D.

u˝ycie_bie˝àcych_atrybutów :

0: Fragment jest umieszczany zgodnie z u˝ytymi w
nim kolorami, typami linii i wype∏nieƒ

1: Fragment jest umieszczany z wartoÊciami koloru,
typu linii i wype∏nienia bie˝àcymi w danym
skrypcie

background image

109

• Rozdzia∏ 6: Elementy dla symboli 2D

Podr´cznik j´zyka GDL

6.4 Projekcje 3D umieszczane w

symbolu 2D

PROJECT2

PROJECT2

PROJECT2

PROJECT2

PROJECT2

kod_projekcji, kàt, metoda

Tworzy projekcj´ modelu elementu i dodaje powsta∏y widok do
symbolu 2D.

kod_projekcji:

3: Widok z góry
4: Widok z boku
6: Aksonometria kawaleryjska
7: Aksonometria równomiarowa
8: Aksonometria wojskowa
9: Aksonometria dwumiarowa

-3: Widok z do∏u
-6: Aksonometria kawaleryjska z do∏u
-7: Aksonometria równomiarowa z do∏u
-8: Aksonometria wojskowa z do∏u
-9: Aksonometria dwumiarowa z do∏u

kàt:

azymut z okna ustawieƒ widoku 3D.

metoda:

1: szkielet
2: ukryte linie — analitycznie

background image

110

• Rozdzia∏ 6: Elementy dla symboli 2D

Podr´cznik j´zyka GDL

Przyk∏ad:

background image

111

• Rozdzia∏ 7: Skrypt cech

Podr´cznik j´zyka GDL

7

Skrypt cech

background image

112

• Rozdzia∏ 7: Skrypt cech

Podr´cznik j´zyka GDL

Elementy biblioteczne majà nowe okno GDL zarezerwowane dla
skryptu cech. Skrypt ten pozwala opisywaç cechy obiektu zale˝ne
od parametrów i poprzez dyrektywy definiowaç ich miejsce w
ostatecznym bilansie materia∏owym. Zast´puje on dotychczasowo
istniejàce okno cechy obiektu bibliotecznego.

Przy u˝yciu kilku komend, jest mo˝liwe zdefiniowanie w skrypcie
opisu (descriptor), komponentów (components) oraz charaktery-
styki podobnej do dost´pnej w oknie cechy w poprzednich
wersjach ArchiCADa. W skrypcie cech mo˝na u˝ywaç wszystkich
innych komend z wyjàtkiem tych, które generujà kszta∏ty.

DESCRIPTOR

DESCRIPTOR

DESCRIPTOR

DESCRIPTOR

DESCRIPTOR

tekst

Polecenie to jest odpowiednikiem pola opisu w oknie cech ele-
mentu bibliotecznego. Tekst mo˝e byç d∏u˝szy ni˝ jedna linia.
Nowa linia mo˝e zostaç zdefiniowana przez znak '\n' a tabulatory
'\t'. Dodanie znaku '\' na koƒcu linii, pozwala na kontynuowanie
tekstu w nast´pnej linii bez dodawania nowej linii. D∏ugie linie tek-
stu mo˝na dzieliç za pomocà znaku '/'. Je˝eli w tekÊcie '\' jest
zdwojony (\\), traci on swoje znaczenie znaku kontrolnego i ozna-
cza zwyk∏e '\'.

D∏ugoÊç tekstu (w∏àcznie ze znakami nowej linii) nie mo˝e prze-
kroczyç 255 znaków. Wszystkie pozosta∏e zostanà pomini´te. Je˝eli
potrzebny jest d∏u˝szy tekst, nale˝y u˝yç wi´kszej iloÊci komend
DESCRIPTOR. DESCRIPTOR pod tà samà pozycjà sà ∏àczone przez
kompilator.

Przyk∏ad:

DESCRIPTOR "\tPainted box.\n\t Properties:\n\

\t\t - swinging doors\n\
\t\t - adjustable height\n\

\t\t - scratchproof"

COMPONENT

COMPONENT

COMPONENT

COMPONENT

COMPONENT

nazwa_sk∏adnika, iloÊç, jednostka

Opis w∏aÊciwoÊci komponentów elementów bibliotecznych (sym-
bol, drzwi, okno, swiat∏a). Skrypt mo˝e zawieraç dowolnà liczb´
poleceƒ COMPONENT. Parametry tego polecenia odpowiadaja ana-
logicznym elementom okna cechy.

Przyk∏ad:

s = SURFACE3D () ! powierzchnia szafy

COMPONENT "glue", 1.5, "kg"
COMPONENT "handle", 2 * c, "nb" ! c liczba drzwi

COMPONENT "paint", 0.5 * s, "kg"

background image

113

• Rozdzia∏ 7: Skrypt cech

Podr´cznik j´zyka GDL

SURFACE3D ()

SURFACE3D ()

SURFACE3D ()

SURFACE3D ()

SURFACE3D ()

VOLUME3D ()

VOLUME3D ()

VOLUME3D ()

VOLUME3D ()

VOLUME3D ()

Funkcje te zwracajà powierzchni´ i obj´toÊç kszta∏tów, z elementu
bibliotecznego.

Uwaga: Je˝eli umieszczone sà dwa lub wi´cej kszta∏tów w tym sa-
mym po∏o˝eniu z tymi samymi parametrami, funkcja zwraca ogólnà
sum´ wszystkich powierzchni i obj´toÊci tych kszta∏tów.

POSITION

POSITION

POSITION

POSITION

POSITION

s∏owo_kluczowe

Je˝eli w skrypcie cechy nie ma tej komendy, to cechy i komponen-
ty elementu bibliotecznego b´dà wypisywane wed∏ug typów.

Istnieje mo˝liwoÊç zmiany kolejnoÊci wypisywania cech i kompo-
nentów elementu bibliotecznego np: nieprostokàtne otwory w
Êcianach mogà umieÊciç w bilansie materia∏owym kszta∏ty podobne
do Êciany, zdefiniowane w elemencie bibliotecznym w sekcji Êcia-
na, .

Istnieja nastepujàce s∏owa kluczowe:

WALLS

WALLS

WALLS

WALLS

WALLS
COLUMNS

COLUMNS

COLUMNS

COLUMNS

COLUMNS
DOORS

DOORS

DOORS

DOORS

DOORS
WINDOWS

WINDOWS

WINDOWS

WINDOWS

WINDOWS
OBJECTS

OBJECTS

OBJECTS

OBJECTS

OBJECTS
CEILS

CEILS

CEILS

CEILS

CEILS
PITCHED_ROOFS

PITCHED_ROOFS

PITCHED_ROOFS

PITCHED_ROOFS

PITCHED_ROOFS
HIP_ROOFS

HIP_ROOFS

HIP_ROOFS

HIP_ROOFS

HIP_ROOFS
LIGHTS

LIGHTS

LIGHTS

LIGHTS

LIGHTS
HATCHES

HATCHES

HATCHES

HATCHES

HATCHES

Polecenie to pozostaje wa˝ne dla wszystkich nast´pnych po nim
s∏ów kluczowych DESCRIPTOR i COMPONENT, a˝ do wystàpienia
nast´pnego polecenia POSITION. W skrypcie mo˝e wyst´powaç
dowolna lista tych poleceƒ.

background image

114

• Rozdzia∏ 7: Skrypt cech

Podr´cznik j´zyka GDL

background image

115

• Rozdzia∏ 8: Dodatkowe kody statusu GDL

Podr´cznik j´zyka GDL

8

Dodatkowe kody statusu
dla p∏askich ∏amanych
u˝ywanych w skryptach
GDL

background image

116

• Rozdzia∏ 8: Dodatkowe kody statusu GDL

Podr´cznik j´zyka GDL

P∏askie ∏amane z kodami maski/statusu stanowià baz´ wielu figur
GDL:

POLY_

maskai

PRISM_

maskai

CPRISM_

maskai

BPRISM_

maskai

EXTRUDE

si

PYRAMID

si

REVOLVE

si

SWEEP

si

TUBE

si

POLY2_

maskai

Przedstawione poni˝ej wartoÊci statusu/maski pozwalajà na tworze-
nie odcinków i ∏uków na liniach ∏amanych, oraz u˝ywanie innych,
parametrów ni˝ bezwzgl´dne wartoÊci wspó∏rz´dnych.

Ostatni odcinek ∏amanej definiuje parametry: bie˝àcà pozycj´ i kie-
runek stycznoÊci.

background image

117

• Rozdzia∏ 8: Dodatkowe kody statusu GDL

Podr´cznik j´zyka GDL

Odcinek, przez wskazanie bezwzgl´dnych wspó∏rz´dnych koƒca

x, y, s,

gdzie 0 < s < 100

Odcinek, przez wskazanie wzgl´dnych wspó∏rz´dnych koƒca

dx, dy, 100+s,

gdzie 0 < s < 100

Odcinek, przez wskazanie d∏ugoÊci i kàta

l, a, 200+s,

gdzie 0 < s < 100

background image

118

• Rozdzia∏ 8: Dodatkowe kody statusu GDL

Podr´cznik j´zyka GDL

Przed∏u˝enie ostatniego elementu o odcinek o okreÊlonej d∏ugoÊci
(z u˝yciem kàta stycznoÊci)

l, 0, 300+s,

gdzie 0 < s < 100

Ustawienie punktu startowego

x1, y1, 600,

Zamkni´cie ∏amanej

0, 0, 700,

Ustawienie kierunku stycznoÊci

ex, ey, 800,

background image

119

• Rozdzia∏ 8: Dodatkowe kody statusu GDL

Podr´cznik j´zyka GDL

Ustawienie Êrodka obrotu

x0, y0, 900,

¸uk styczny do punktu o wspó∏rz´dnych bezwzgl´dnych

x, y, 1000+s,

gdzie 0 < s < 100

¸uk styczny o zadanym promieniu i kàcie

r, a, 2000+s,

gdzie 0 < s < 100

background image

120

• Rozdzia∏ 8: Dodatkowe kody statusu GDL

Podr´cznik j´zyka GDL

¸uk u˝ywajàcy Êrodka obrotu i punktu wyznaczajàcego kàt koƒco-
wy ∏uku

x, y, 3000+s,

gdzie 0 < s < 100

¸uk u˝ywajàcy Êrodka obrotu i kàta

0, a, 4000+s,

gdzie 0 < s < 100

Okràg u˝ywajàcy Êrodka obrotu i promienia

r, 360, 4000+s,

gdzie 0 < s < 100

Wszyskie kàty podawane sà w stopniach. Opuszczone wspó∏rz´dne
oznaczone przez zero (dla kodów 300, 700, 4000) mogà mieç do-
wolnà wartoÊç.

background image

121

• Rozdzia∏ 8: Dodatkowe kody statusu GDL

Podr´cznik j´zyka GDL

Przyk∏ad:

EXTRUDE 21,0,0,3, 1+2+4+16+32,

0, 0, 0,

7, 0, 0,
7, 3, 1,

6, 3, 1000, ! Styczny ∏uk do punktu
5, 3, 1001, ! Styczny ∏uk do punktu

1, 90, 2000, ! Styczny ∏uk o promieniu i kàcie

2, 3, 1001, ! Styczny ∏uk do punktu
1, 3, 900, ! Ustawienie Êrodka obrotu

1, 2, 3000, ! ¸uk u˝ywajàcy Êrodka obrotu
! i punktu wyznaczajàcego kàt

1, 2.5, 900, ! Ustawienie Êrodka obrotu

0,-180, 4001, ! ¸uk u˝ywajàcy Êrodka obrotu
! i kàta

1, 5, 1000, ! Styczny ∏uk do punktu
-1, 0, 100, ! Odcinek okreÊlony wspó∏rz´dnymi

! wzgl´dnymi

2, 225, 200, ! Odcinek okreÊlony d∏ugoÊcià
! i kàtem

-1, 0, 800, ! Ustawienie kierunku stycznoÊci
-1, 0, 1000, ! Styczny ∏uk do punktu

0, 0, -1, ! Koniec konturu

1, 1, 900, ! Ustawienie Êrodka obrotu
0.5,360, 4000, ! Okràg

3.5,1.5, 900, ! Ustawienie Êrodka obrotu
1, 360, 4001 ! Okràg

background image

122

• Rozdzia∏ 8: Dodatkowe kody statusu GDL

Podr´cznik j´zyka GDL

EXTRUDE 2+5+10+10+2,0,0,3, 1+2+4+16+32,
0, 0, 900,

3,360,4001,

2.5, -1, 0,

2.5, 1, 0,
1.5, 1, 1,

1.5, -1, 1001,

2.5, -1, -1,

0, 2.5, 600,
0, -1, 800,

1, 1.5, 1001,

-1, 0, 800,
0, 0.5, 1001,

0, 1, 800,
-1, 1.5, 1001,

1, 0, 800,

0, 2.5, 1001,
0, 2.5, 700,

-1.5, 0, 900,

-2.5, 0, 600,

-2.5, 1, 3000,
-2.5, 1, 0,

-1.5, 1, 0,
-1.5, -1, 1001,

-2.5, -1, 0,

SQR(2)-1, 45, 200,
-2.5, 0, 3000,

-2.5, 0, 700,

0, -1.5, 900,

1, 360, 4000

background image

123

• Rozdzia∏ 8: Dodatkowe kody statusu GDL

Podr´cznik j´zyka GDL

EXTRUDE 3,1,1,3, 1+2+4+16+32,
0, 0, 900,

3,360,4001,

2,360,4000

ROTY -90
REVOLVE 9, 180, 16+32,

7, 1, 0,
6, 1, 0,

5.5, 2, 0,

5, 1, 0,
4, 1, 0,

3, 1, 900,

! Ustawienie Êrodka obrotu

0, 180, 4001,

! ¸uk u˝ywajàcy Êrodka obrotu

i kàta

2, 1, 0,
1, 1, 0

background image

124

• Rozdzia∏ 8: Dodatkowe kody statusu GDL

Podr´cznik j´zyka GDL

background image

125

• Rozdzia∏ 9: Narz´dzia matematyczne

Podr´cznik jezyka GDL

9

Narz´dzia matematyczne

background image

126

• Rozdzia∏ 9: Narz´dzia matematyczne

Podr´cznik j´zyka GDL

Wszystkie parametry liczbowe elementów GDL

GDL

GDL

GDL

GDL mogà byç wyni-

kiem obliczeƒ wyra˝eƒ arytmetycznych. Np. mo˝na zdefiniowaç,
˝e wysokoÊç walca jest pi´ciokrotnie wi´ksza od jego promienia,
lub mo˝na przed zdefiniowaniem szeÊcianu przesunàç uk∏ad wspó∏-
rz´dnych wzd∏u˝ ka˝dej osi o po∏ow´ d∏ugoÊci jego boków, aby
umieÊciç Êrodek szeÊcianu w poczàtku uk∏adu wspó∏rz´dnych.

9.1 Wyra˝enia

W poleceniach GDL

GDL

GDL

GDL

GDL mo˝na u˝ywaç z∏o˝onych wyra˝eƒ arytmetycz-

nych.

Wyra˝enie

okreÊla wartoÊç liczbowà.
Mo˝e byç z∏o˝one ze sta∏ych, zmiennych oraz z wywo∏aƒ funkcji
po∏àczonych operatorami dzia∏aƒ. Nawiasy okràg∏e (()) (priorytet
1) u˝ywane sà do zmiany domyÊlnej kolejnoÊci wykonywania dzia-
∏aƒ.

Przyk∏ady wyra˝eƒ arytmetycznych:

Z

5.5
(+15)

-X

A*(B+C)
SIN(X+Y)*Z

A+R*COS(I*D)

5' 4"
SQR (x^2 + y^2) / (1 - d)

a + b * sin (alfa)
wysokoÊç * szerokoÊç

Przyk∏ady wyra˝eƒ ciàgów znakowych:

"Sta∏y ciàg",
nazwa + STR ("%m", i) + "." + ext,

ciàg_param <> "Mode 1"

9.2 Operatory

Wymienione poni˝ej operatory podane sà w kolejnoÊci s∏abnàcego
priorytetu w obliczaniu wyra˝eƒ. W przypadku równego priorytetu
obliczenia wykonywane sà od prawej do lewej.

Operatory arytmetyczne

^

^

^

^

^ (lub

**)

Pot´ga

priorytet 2

background image

127

• Rozdzia∏ 9: Narz´dzia matematyczne

Podr´cznik jezyka GDL

*

Mno˝enie

priorytet 3

/

Dzielenie

priorytet 3

MOD

MOD

MOD

MOD

MOD (lub

%)

Dzielenie modulo (reszta z dzielenia)

priorytet 3

X MOD Y = X — Y * INT (X/Y)

+

Dodawanie

priorytet 4

-

Odejmowanie

priorytet 4

Uwaga:

Uwaga:

Uwaga:

Uwaga:

Uwaga: + (dodawanie) mo˝na tak˝e zastosowaç w ciàgach znako-
wych: rezultatem jest powiàzanie ciàgów.

Operatory relacji

=

Równe

priorytet 5

<

Mniejsze od

priorytet 5

>

Wi´ksze od

priorytet 5

< =

Mniejsze lub równe

priorytet 5

> =

Wi´ksze lub równe

priorytet 5

<> (lub #)

Ró˝ne

priorytet 5

Operatory relacji porównujà równie˝ ciàgi znakowe. Wynikiem jest
1.0 dla prawdy i 0.0 dla fa∏szu. Funkcje te uwzgl´dniajà wielkoÊci
liter.

Operatory logiczne

AND

AND

AND

AND

AND (lub &

&

&

&

&)

Logiczne i (koniunkcja)

priorytet 6

OR

OR

OR

OR

OR (lub

|)

Logiczne lub (alternatywa)

priorytet 7

EXOR

EXOR

EXOR

EXOR

EXOR (lub

@)

Ró˝nica symetryczna

priorytet 8

Poniewa˝

GDL u˝ywa jedynie liczb zmiennoprzecinkowych, ope-

ratory logiczne dzia∏ajà na liczbach rzeczywistych. 0.0 oznacza
fa∏sz, a wszystkie inne wartoÊci oznaczajà prawd´. Wynik jest rów-
nie˝ liczbà rzeczywistà: 1.0 dla prawdy i 0.0 dla fa∏szu.

background image

128

• Rozdzia∏ 9: Narz´dzia matematyczne

Podr´cznik j´zyka GDL

9.3 Funkcje

Funkcje arytmetyczne

ABS

ABS

ABS

ABS

ABS (x)

Zwraca wartoÊç bezwzgl´dnà liczby x.

INT

INT

INT

INT

INT (x)

Zwraca cz´Êç ca∏kowità x.
(n.p. INT(1.23) = 1, INT(-1.23) = -2).

FRA

FRA

FRA

FRA

FRA (x)

Zwraca cz´Êç u∏amkowà x.
(n.p. FRA(1.23) = 0.23, FRA(-1.23) = 0.77).

SGN

SGN

SGN

SGN

SGN (x)

Zwraca +1.0 je˝eli x jest dodatni, -1.0 je˝eli jest ujemny,

SQR

SQR

SQR

SQR

SQR (x)

Zwraca pierwiastek kwadratowy z x.

Funkcje trygonometryczne

Wszystkie wartoÊci kàtów b´dàcych argumentami (COS, SIN, TAN)
lub wartoÊciami (ACS, ASN, ATN) funkcji wyra˝one sà w stopniach
TN).

ACS

ACS

ACS

ACS

ACS (x)

Arcus cosinus x.
(-1.0 < x < 1.0; 0° < ACS(x) < 180°).

ASN

ASN

ASN

ASN

ASN (x)

Arcus sinus x.
(-1.0 < x < 1.0; -90° < ASN(x) < 90°).

ATN

ATN

ATN

ATN

ATN (x)

Arcus tangens x.
(-90° < ATN(x) < 90°).

COS

COS

COS

COS

COS (x)

Cosinus x.

SIN

SIN

SIN

SIN

SIN (x)

Sinus x.

TAN

TAN

TAN

TAN

TAN (x)

Tangens x.

PI

PI

PI

PI

PI

Zwraca sta∏à (

π

= 3.1415926).

Funkcje wyk∏adnicze i
logarytmiczne

EXP

EXP

EXP

EXP

EXP (x)

Zwraca eksponent x tj. ex. (e = 2.7182818).

LGT

LGT

LGT

LGT

LGT (x)

Zwraca logarytm o podstawie 10 z x.

background image

129

• Rozdzia∏ 9: Narz´dzia matematyczne

Podr´cznik jezyka GDL

LOG

LOG

LOG

LOG

LOG (x)

Zwraca logarytm naturalny z x.

Funkcje logiczne

NOT

NOT

NOT

NOT

NOT (x)

Zwraca fa∏sz (=0.0) je˝eli x jest prawdà (=0.0) i prawd´ (=1.0)
je˝eli x jest fa∏szem (=0.0) (zaprzeczenie logiczne).

Funkcje statystyczne

MIN

MIN

MIN

MIN

MIN (x

1

,x

2

, . . . x

n

)

Zwraca najmniejszy ze swoich argumentów. Liczba argumentów

jest dowolna.

MAX

MAX

MAX

MAX

MAX (x

1

,x

2

, . . . x

n

)

Zwraca najwi´kszy ze swoich argumentów. Liczba argumentów

jest dowolna.

RND

RND

RND

RND

RND (x)

Zwraca liczb´ losowà z zakresu od 0.0 do x.

(x > 0.0).

Funkcje specjalne

REQ

REQ

REQ

REQ

REQ

(tekst_sterujàcy)
Funkcja zwraca informacje o stanie programu. Jej parametr — pyta-
nie o stan systemu — jest tekstem. Interpreter

GDL odpowiada na

to pytanie wartoÊcià numerycznà. Je˝eli interpreter nie rozumie
pytania, odpowiedê jest liczbà ujemnà.

Lista dost´pnych pytaƒ:

"GDL_Version

GDL_Version

GDL_Version

GDL_Version

GDL_Version"

numer wersji kompilatora/interpretera GDL.
(Uwaga: nie jest to równoznaczne z numerem wersji
ArchiCADa.)

"Program

Program

Program

Program

Program"

kod programu (1: ArchiCAD, 2: topCAD, etc.).

"Serial_numer

Serial_numer

Serial_numer

Serial_numer

Serial_numer"

seryjny numer klucza sprz´towego.

"Model_Size

Model_Size

Model_Size

Model_Size

Model_Size"

bie˝àcy rozmiar struktur 3D modelu.

"Red_of_material

Red_of_material

Red_of_material

Red_of_material

Red_of_material nazwa

"Green_of_material

Green_of_material

Green_of_material

Green_of_material

Green_of_material nazwa"

"Blue_of_material

Blue_of_material

Blue_of_material

Blue_of_material

Blue_of_material nazwa"

background image

130

• Rozdzia∏ 9: Narz´dzia matematyczne

Podr´cznik j´zyka GDL

Podaje sk∏adniki RGB barwy materia∏u o podanej nazwie.
WartoÊci z przedzia∏u 0…1.

"Red_of_pen

Red_of_pen

Red_of_pen

Red_of_pen

Red_of_pen numer’"

"Green_of_pen

Green_of_pen

Green_of_pen

Green_of_pen

Green_of_pen numer

"Blue_of_pen

Blue_of_pen

Blue_of_pen

Blue_of_pen

Blue_of_pen numer"

Podaje sk∏adniki RGB barwy pióra o podanym numerze.
WartoÊci z przedzia∏u 0…1

"Pen_of_RGB

Pen_of_RGB

Pen_of_RGB

Pen_of_RGB

Pen_of_RGB r g b"

Podaje numer pióra o barwie najbli˝szej barwie o sk∏ado-
wych podanych w pytaniu. WartoÊci r, g i b sà z przedzia-
∏u 0…1.

REQUEST

REQUEST

REQUEST

REQUEST

REQUEST

(nazwa index_pytanie,, var1 [, var2, ....])

Pierwszy parametr przedstawia pytanie, drugi oznacza obiekt pyta-
nia (jeÊli taki istnieje), który mo˝e byç typu ciàg znaków lub liczba.
Przyk∏ad: Pytaniem mo˝e byç "Rgb_of_material"(RGB-skrót z ang.
od czerwony, zielony, niebieski materia∏u) i jego obiektem jest ma-
teria∏ o podanej nazwie. Inny przyk∏ad: "Rgb_of_pen" (czerwony,
zielony, niebieski pióra), jego obiektem jest pióro o podanym in-
deksie. Inne parametry sà nazwami zmiennych, którym nadawane
sà wartoÊci zwracane (odpowiedzi). Funkcja zwraca wartoÊç w po-
staci numeru odpowiedzi (w przypadku êle sformuowanego
pytania lub nieistniejacej nazwy, wartoÊç b´dzie 0).

REQUEST

REQUEST

REQUEST

REQUEST

REQUEST

("Rgb_of_material

Rgb_of_material

Rgb_of_material

Rgb_of_material

Rgb_of_material", nazwa, r, g, b)

REQUEST

REQUEST

REQUEST

REQUEST

REQUEST

("Rgb_of_pen

Rgb_of_pen

Rgb_of_pen

Rgb_of_pen

Rgb_of_pen", penindex, r, g, b)

REQUEST

REQUEST

REQUEST

REQUEST

REQUEST

("Pen_of_RGB

Pen_of_RGB

Pen_of_RGB

Pen_of_RGB

Pen_of_RGB", "r g b", index pióra)

Podobnie jak funkcja REQ() (tylko w jednym wywo∏aniu), zwraca
podanym zmiennym wartoÊç sk∏adowych koloru r, g, b materia∏u i
pióra, lub numer pióra odpowiadajàcy danym wartoÊciom r, g, b.

REQUEST

REQUEST

REQUEST

REQUEST

REQUEST

("Height_of_style

Height_of_style

Height_of_style

Height_of_style

Height_of_style", nazwa, wysokoÊç)

Zwraca w danej zmiennej, wysokoÊç stylu mierzonà w metrach.

REQUEST

REQUEST

REQUEST

REQUEST

REQUEST

("Name_of_program

Name_of_program

Name_of_program

Name_of_program

Name_of_program", "", nazwa programu)

Zwraca w danej zmiennej nazw´ programu, n.p. "ArchiCAD", "top-
CAD" , etc.

REQUEST

REQUEST

REQUEST

REQUEST

REQUEST

("Name_of_macro

Name_of_macro

Name_of_macro

Name_of_macro

Name_of_macro", "", moja_nazwa)

REQUEST

REQUEST

REQUEST

REQUEST

REQUEST

("Name_of_main

Name_of_main

Name_of_main

Name_of_main

Name_of_main", "", g∏ówna_nazwa)

Po wywo∏aniu tych pytaƒ, zmienna moja_nazwa, b´dzie zawiera∏a
nazw´ makrodefinicji, a zmienna g∏ówna_nazwa, b´dzie zawieraç

background image

131

• Rozdzia∏ 9: Narz´dzia matematyczne

Podr´cznik jezyka GDL

nazw´ g∏ównej makrodefinicji (jeÊli taka nie istnieje, zwraca ciàg
pusty).

REQUEST

REQUEST

REQUEST

REQUEST

REQUEST

("ID_of_main

ID_of_main

ID_of_main

ID_of_main

ID_of_main", "", id_ciàg)

Dla elementów bibliotecznych umieszczonych na rzucie, REQUEST
zwraca identyfikator podany w oknie dialogowym parametrów na-
rz´dzi w polu id (przy braku wartoÊci w tym polu, ciàg pusty).

REQUEST

REQUEST

REQUEST

REQUEST

REQUEST

("Zone_category

Zone_category

Zone_category

Zone_category

Zone_category", "", nazwa, kod)

Dla pomieszczeƒ Zone, zwraca nazw´ ciàg znaków kodu aktualnej
kategorii Zone.

REQUEST

REQUEST

REQUEST

REQUEST

REQUEST

("Linear_dimension

Linear_dimension

Linear_dimension

Linear_dimension

Linear_dimension", "", formatstr), wymiarowanie liniowe

REQUEST

REQUEST

REQUEST

REQUEST

REQUEST

("Angular_dimension

Angular_dimension

Angular_dimension

Angular_dimension

Angular_dimension", "", formatstr), wymiarowanie kàtów

REQUEST

REQUEST

REQUEST

REQUEST

REQUEST

("Angular_length_dimension

Angular_length_dimension

Angular_length_dimension

Angular_length_dimension

Angular_length_dimension", "", formatstr),

wymiarowanie ∏ukowe, niezaimplementowane

REQUEST

REQUEST

REQUEST

REQUEST

REQUEST

("Radial_dimension

Radial_dimension

Radial_dimension

Radial_dimension

Radial_dimension", "", formaatstr), wymiarowanie biegunowe

REQUEST

REQUEST

REQUEST

REQUEST

REQUEST

("Level_dimension

Level_dimension

Level_dimension

Level_dimension

Level_dimension", "", formatstr), okotowanie poziomów

REQUEST

REQUEST

REQUEST

REQUEST

REQUEST

("Elevation_dimension

Elevation_dimension

Elevation_dimension

Elevation_dimension

Elevation_dimension", "", formatstr), wymiarowanie pionowe

REQUEST

REQUEST

REQUEST

REQUEST

REQUEST

("Window_door_dimension

Window_door_dimension

Window_door_dimension

Window_door_dimension

Window_door_dimension", "", formatstr),

wymiarowanie drzwi i okien

REQUEST

REQUEST

REQUEST

REQUEST

REQUEST

("Sill_height_dimension

Sill_height_dimension

Sill_height_dimension

Sill_height_dimension

Sill_height_dimension", "", formatstr),

wymiarowanie wysokoÊci parapetu

REQUEST

REQUEST

REQUEST

REQUEST

REQUEST

("Area_dimension

Area_dimension

Area_dimension

Area_dimension

Area_dimension", "", formatstr), obliczenia powierzchni

Te pytania pozwalajà zasi´gnàç informacji o formacie wymiarowa-
nia ustalonym w oknie dialogowym w Opcjach ArchiCADa Opcje/
Preferencje/Wymiarowanie wymiarowania. Te pytania zwracajà
ciàgi znaków formatu, które mogà byç u˝yte jako pierwszy para-
metr w funkcji STR ().

Przyk∏ad:

format = ""

num = 60.55

REQUEST ("wymiarowanie_kàtów", "", format) !”%.2dd”
TEXT2 0, 0, STR (format, num)

!60.55°

REQUEST

REQUEST

REQUEST

REQUEST

REQUEST

(nazwa_rozszerzenia, parameter, zmienna 1, zmienna 2, ...)
JeÊli pytanie nie nale˝y do podanych wy˝ej, funkcja REQUEST()
próbuje u˝yç specyficznej nazwy rozszerzenia. Je˝eli to rozszerze-
nie znajduje si´ w teczce Dodatki, to zostanie ono u˝yte do nadania
wartoÊci wszystkim podanym zmiennym. Ciàg parametrów jest in-
terpretowany przez rozszerzenie.

STR

STR

STR

STR

STR

(wyra˝enie_numeryczne, d∏ugoÊç, tolerancja)

STR

STR

STR

STR

STR

(format, wyra˝enie_numeryczne)

background image

132

• Rozdzia∏ 9: Narz´dzia matematyczne

Podr´cznik j´zyka GDL

Pierwsza forma funkcji zwraca ciàg znaków z aktualnej wartoÊci
wyra˝enia numerycznego. Maksymalnà liczba cyfr w ciàgu jest d∏u-
goÊç, podczas kiedy tolerancja reprezentuje liczb´ miejsc po
przecinku.

Przyk∏ad:

A=4.5
B=2.345

HOTSPOT2 0, 2
HOTSPOT2 0, 1

HOTSPOT2 0, 0

DEFINE STYLE "bb" "Monaco", 5, 9, 0
STYLE "bb"

TEXT2 0, 2, STR(A, 8, 2)
TEXT2 0, 1, STR(B, 8, 2)

TEXT2 0, 0, STR(A*B, 8, 2)

W drugim przypadku, format mo˝e byç tak˝e zmienny lub sta∏y.
JeÊli format jest pusty, interpretowany jest jako metr, z dok∏adno-
Êcià do trzech miejsc po przecinku (zachowuje nieznaczàce zera).
Format ma nast´pujacà sk∏adni´:

%[0 lub wi´cej opcji] [szerokoÊç_pola] [.precyzja] conv_spec

%[0 lub wi´cej opcji] [szerokoÊç_pola] [.precyzja] conv_spec

%[0 lub wi´cej opcji] [szerokoÊç_pola] [.precyzja] conv_spec

%[0 lub wi´cej opcji] [szerokoÊç_pola] [.precyzja] conv_spec

%[0 lub wi´cej opcji] [szerokoÊç_pola] [.precyzja] conv_spec

opcje (dla m, mm, cm, e, df, di, sqm, sqcm, sqf, sqi, dd, gr, rad):

brak wyrównanie do prawej (domyÊlnie)

-

wyrównanie do lewej

+

plus znak

przestrzeƒ w miejscu znaku +

opcje dla (dla m, mm, cm, df, di, sqm, sqcm, sqf, sqi, dd, gr, rad):

'#'

gubi nieznaczàce zera

opcje dla (for ffi, fdi, fi):

'0'

wyÊwietla 0 cali

szerokoÊç_pola::::: liczba naturalna

background image

133

• Rozdzia∏ 9: Narz´dzia matematyczne

Podr´cznik jezyka GDL

minimalna liczba znaków do wytworzenia

precyzja: naturalna liczba znaków po przecinku

liczba u∏amek cyfry do wytworzenia

conv_spec (okreÊlenie_konwersja):

e

- wyk∏adniczy format (metr)

m

- metr

mm

- millimetr

cm

- centymetr

ffi

- stopa & u∏amkowy cal

fdi

- stopa & cal

df

- dziesi´tna stopa

fi

- u∏amkowy cal

di

- dziesi´tny cal

dla obszarów:

sqm

- metry kwadratowe

sqcm - centymetry kwadratowe

sqmm - milimetry kwadratowe

sqf

- stopa kwadratowa

sqi

- cal kwadratowy

dla kàtów:

dd

- stopieƒ dziesi´tny

dms

- stopnie, minuty, sekundy

gr

- stopnie

rad

- radiany

surv

-gradusy

background image

134

• Rozdzia∏ 9: Narz´dzia matematyczne

Podr´cznik j´zyka GDL

Przyk∏ady:

h = 23
nr = 0.345678

TEXT2 0, h, STR ("%m", nr)

!0.346

TEXT2 0, h-1, STR ("%#10.2m", nr)

! 35

TEXT2 0, h-2, STR ("%.4cm", nr)!34.5678
TEXT2 0, h-3, STR ("%12.4cm", nr)

! 34.5678

TEXT2 0, h-4, STR ("%.6mm", nr)!345.678000

TEXT2 0, h-5, STR ("%+15e", nr)!+3.456780e-01

TEXT2 0, h-6, STR ("%ffi", nr) !1'-2"
TEXT2 0, h-7, STR ("%0.16ffi", nr)

!1'-1 5/8"

TEXT2 0, h-8, STR ("% .3fdi", nr)

!1'-1.609"

TEXT2 0, h-9, STR ("% -10.4df", nr)

!1.1341'

TEXT2 0, h-10, STR ("%0.64fi", nr)

!13 39/64"

TEXT2 0, h-11, STR ("%+12.4di", nr)

! +13.6094"

TEXT2 0, h-12, STR ("%#.3sqm", nr)

!346

TEXT2 0, h-13, STR ("%+sqcm", nr)

!+3,456.78

TEXT2 0, h-14, STR ("% .2sqmm", nr)

!345,678.00

TEXT2 0, h-15, STR ("%-12sqf", nr)

!3.72

TEXT2 0, h-16, STR ("%10sqi", nr)

! 535.80

alpha = 88.657

TEXT2 0, h-17, STR ("%+10.3dd", alpha)

!

+88.657°

TEXT2 0, h-18, STR ("%.1dms", alpha) !88°39'

TEXT2 0, h-19, STR ("%.2dms", alpha) !88°39’25"
TEXT2 0, h-20, STR ("%10.4gr", alpha)

!

98.5078G
TEXT2 0, h-21, STR ("%rad", alpha)

!1.55R

TEXT2 0, h-22, STR ("%.2surv", alpha)

!N

1°20’35" E

background image

135

• Rozdzia∏ 9: Narz´dzia matematyczne

Podr´cznik jezyka GDL

STW

STW

STW

STW

STW

(wyra˝enie_tekstowe)

Zwraca szerokoÊç wyra˝enia w metrach przedstawiony w aktual-
nym stylu.

Przyklad:

abcd

DEFINE STYLE "own" "Monaco", 5 / A_, 0, 0

SET STYLE "own"
napis = "abcd"

szerokoÊç = STW (ciàg) / 1000 * A_
REQUEST ("wysokoÊç_stylu", "own", wysokoÊç)

wysokoÊç = wysokoÊç / 1000 * A_

TEXT2 0, 0, ciàg

LINE2 0, 0, , 0
LINE2 0, -2 * height, szerokoÊç, -2 * wysokoÊç

LINE2 0, 0, 0, -2 * wysokoÊç
LINE2 szerokoÊç, 0, szerokoÊç, -2 * wysokoÊç

IND

IND

IND

IND

IND

(MATERIA¸, nazwa_ciàg)

IND

IND

IND

IND

IND

(WYPE¸NIENIE, nazwa_ciàg)

IND

IND

IND

IND

IND

(LINIA_TYP, nazwa_ciàg)

IND

IND

IND

IND

IND

(STYL, nazwa_ciàg)

Funkcja ta zwraca numer materia∏u, wzorku wype∏nienia, typu linii
lub stylu. Podstawowym zastosowaniem jest u˝ycie jej wyniku jako
parametru w wywo∏aniu makrodefinicji (wartoÊç parametru musi
byç liczbà). Je˝eli wynik jest ujemy, to definicja jest tymczasowa,
je˝eli jest dodatni, to definicja jest globalna (zobacz równie˝ opisy
poleceƒ

Materia∏..., Rodzaje wype∏nieƒ....i Rodzaje lin...i w pod-

r´czniku ArchiCADa).

background image

136

• Rozdzia∏ 9: Narz´dzia matematyczne

Podr´cznik j´zyka GDL

background image

137

• Rozdzia∏ 10: Atrybuty

Podr´cznik j´zyka GDL

10

Atrybuty

background image

138

• Rozdzia∏ 10: Atrybuty

Podr´cznik j´zyka GDL

10.1 Dyrektywy

Przedstawione poni˝ej dyrektywy wp∏ywajà na interpretacj´ nie-
których poleceƒ j´zyka GDL

GDL

GDL

GDL

GDL. Zmiana interpretacji jest trwa∏a do

nast´pnego wystàpienia dyrektywy, lub do koƒca bie˝àcego skryp-
tu. Wywo∏ywane skrypty dziedziczà zmiany dokonane przez
dyrektywy w skrypcie wywo∏ujàcym. Przy powrocie ze skryptu
przywracany jest stan sprzed jego wywo∏ania.

Dyrektywy dla skryptów 3D i 2D

[LET

LET

LET

LET

LET]

nazwa_zmiennej = n

Przypisanie wartoÊci. Dyrektywa LET jest opcjonalna. Zmienna o
nazwie umieszczonej w dyrektywie zapami´tuje wartoÊç sta∏ej lub
wyra˝enia n.

RADIUS

RADIUS

RADIUS

RADIUS

RADIUS

rmin, rmax

Ustawia g∏adkoÊç, segmentacj´ elementów cylindrycznych (CIRC-
LE, ARC, CYLIND, SPHERE, ELLIPS, CONE, ARMC, ARME, ELBOW,
REVOLVE, ARC2, CIRCLE2).

¸uki w zale˝noÊci od swojego promienia sà zamieniane na wielobo-
ki w nast´pujàcy sposób:

je˝eli r < rmin, okràg jest zamieniany na szeÊciokàt foremny,

je˝eli r > rmax, okràg jest zamieniany na 36-kàt foremny,

je˝eli rmin < r < rmax, okràg jest zamieniany na wielobok foremny
o iloÊci boków danej wzorem:

(6+30*(r-rmin)/(rmax-rmin))

Segmentacja ∏uków nast´puje proporcjonalnie jak dla okr´gów.

Po dyrektywie RADIUS przestajà dzia∏aç poprzednio wydane dyrek-
tywy RESOL i TOLER.

Ograniczenia wartoÊci parametrów:

rmin<rmax

Przyk∏ady:

RADIUS 1.1, 1.15 RADIUS 0.9, 1.15

CYLIND 3.0, 1.0

CYLIND 3.0, 1.0

background image

139

• Rozdzia∏ 10: Atrybuty

Podr´cznik j´zyka GDL

RESOL

RESOL

RESOL

RESOL

RESOL

n

Ustawia g∏adkoÊç elementów cylindrycznych. Okr´gi zamieniane sà
na n-kàty foremne.

Konwersja ∏uków odbywa si´ proporcjonalnie.

Po dyrektywie RESOL przestajà dzia∏aç poprzednio wydane dyrek-
tywy RADIUS i TOLER.

Ograniczenia wartoÊci parametrów:

n > 3

DomyÊlnie:

RESOL 36

Przyk∏ady:

RESOL 5

RESOL 36

CYLIND 3.0, 1.0

CYLIND 3.0, 1.0

TOLER

TOLER

TOLER

TOLER

TOLER

d

Ustawia g∏adkoÊç elementów cylindrycznych. Niedok∏adnoÊç przy-
bli˝enia ∏uku (tj. najwi´ksza odleg∏oÊç punktu na przybli˝ajàcym
okràg wieloboku od przybli˝anego okr´gu), jest mniejsza od d.

Po dyrektywie TOLER przestajà dzia∏aç poprzednio wydane dyrek-
tywy RADIUS i RESOL.

background image

140

• Rozdzia∏ 10: Atrybuty

Podr´cznik j´zyka GDL

Przyk∏ady:

TOLER 0.1

TOLER 0.01

CYLIND 3.0, 1.0

CYLIND 3.0, 1.0

PEN

PEN

PEN

PEN

PEN

n

Ustawia bie˝àcy numer pióra.

Ograniczenia wartoÊci parametrów:

0 < n < 99

DomyÊlnie je˝eli nie wydano polecenia PEN w skrypcie:

PEN 1

(Dla elementów bibliotecznych ArchiCAD czyta domyÊlnà wartoÊç
numeru pióra z ustawieƒ elementu bibliotecznego. Je˝eli w skryp-
cie nast´puje odwo∏anie do nieistniejàcego numeru pióra
przyjmowane jest PEN 1.)

[SET

SET

SET

SET

SET] STYLE

STYLE

STYLE

STYLE

STYLE

nazwa

[SET

SET

SET

SET

SET] STYLE

STYLE

STYLE

STYLE

STYLE

numer

Wszystkie teksty utworzone po tej dyrektywie b´dà u˝ywa∏y wy-
specyfikowanego stylu.

Numer jest liczbà wskazujàcà na po∏o˝enie definicji stylu w we-
wn´trznych strukturach ArchiCADa. ZawartoÊç tych struktur mo˝e
byç zmieniana zarówno wewnàtrz ArchiCADa, jak i wewnàtrz
skryptu. U˝ycie numeru zamiast nazwy stylu jest wskazane jedynie
w przypadku korzystania z funkcji IND.

Je˝eli nie u˝yto w skrypcie dyrektywy SET STYLE, to jej wartoÊcià
domyÊlnà jest:

SET FILL 0

(czcionka programu, rozmiar 5 mm, punkt kotwiczny = 1, normal-
na) jeÊli nie wyst. SET STYLE wyra˝ony w skrypcie.

Zobacz równie˝ opis polecenia IND w rozdziale 9.

background image

141

• Rozdzia∏ 10: Atrybuty

Podr´cznik j´zyka GDL

Polecenia u˝ywane tylko w
skryptach 3D

MODEL

MODEL

MODEL

MODEL

MODEL

WIRE

MODEL

MODEL

MODEL

MODEL

MODEL

SURFACE

MODEL

MODEL

MODEL

MODEL

MODEL

SOLID

Ustawia tryb prezentacji w bie˝àcym skrypcie.

MODEL WIRE: tylko szkielet, bez powierzchni i obj´toÊci.

Obiekty sà przejrzyste.

MODEL SURFACE, MODEL SOLID: tworzenie przekrojów jest opar-
te na analizie u∏o˝enia powierzchni ograniczajàcych bry∏y i dlatego
obydwa te tryby tworzà takie same wewn´trzne struktury danych.
Obiekty sà nieprzezroczyste.

Jedynà ró˝nicà jest zachowanie si´ elementów na przekrojach:

MODEL SURFACE:

widoczne jest wn´trze bry∏,

MODEL SOLID:

tworzona jest powierzchnia zamykajàca
przeci´tà bry∏´.

DomyÊlnie:

MODEL SOLID

Aby zilustrowaç dzia∏anie tej dyrektywy, u˝yjmy trzech prostopa-
d∏oÊcianów utworzonych przy ró˝nych ustawieniach:

MODEL WIRE

BLOCK 3,2,1

ADDY 4

MODEL SURFACE

BLOCK 3,2,1

ADDY 4

MODEL SOLID

BLOCK 3,2,1

Po wykonaniu przekroju:

background image

142

• Rozdzia∏ 10: Atrybuty

Podr´cznik j´zyka GDL

[SET

SET

SET

SET

SET] MATERIAL

MATERIAL

MATERIAL

MATERIAL

MATERIAL

nazwa_ciàg

[SET

SET

SET

SET

SET] MATERIAL

MATERIAL

MATERIAL

MATERIAL

MATERIAL

indeks

Wszystkie powierzchnie tworzone po tym poleceniu b´dà u˝ywa∏y
materia∏u o danej nazwie lub o danym numerze, a˝ do wystàpienia
nast´pnego polecenia MATERIAL. Wyjàtkami od tej regu∏y sà pole-
cenia CPRISM_, CSLAB_, CWALL_ i BWALL_.

Indeks jest liczbà wskazujàcà na po∏o˝enie danych materia∏u w we-
wn´trznych strukturach ArchiCADa. ZawartoÊç tych struktur mo˝e
byç zmieniana zarówno wewnàtrz ArchiCADa, jak i wewnàtrz
skryptu. U˝ycie indeksu zamiast nazwy materia∏u jest wskazane je-
dynie po wczesniejszym uxyciu funkcji INDopisanej wy˝ej lub
u˝ycia materia∏u jako parametru danego skryptu.

Numer 0 ma specjalne znaczenie: materia∏ otrzyma kolor bie˝àcego
pióra i matowà powierzchni´.

DomyÊlna wartoÊç, je˝eli w skrypcie nie pojawi∏a si´ dyrektywa
MATERIAL:

MATERIAL 0

Dla elementów bibliotecznych ArchiCAD czyta domyÊlnà wartoÊç
numeru materia∏u z ustawieƒ elementu bibliotecznego. Je˝eli w
skrypcie nast´puje odwo∏anie do nieistniejàcego numeru materia∏u
przyjmowane jest MATERIAL 0.)

Zobacz równie˝ opis polecenia IND w rozdziale 9.

SHADOW

SHADOW

SHADOW

SHADOW

SHADOW

tryb1 [, tryb2]

Sterowanie rzucaniem cieni w fotoprezentacji i prezentacji 3D.

tryb1:

ON, AUTO or OFF

tryb2:

ON or OFF

ON:

wszystkie umieszczane elementy rzucajà cienie bez
wzgl´du na ustawienie.

OFF:

wszystkie umieszczane dalej elementy nie rzucajà
cieni bez wzgl´du na ustawienie.

AUTO:

decyzja o rzucaniu cieni podejmowana jest automa-
tycznie.

Ustawienie SHADOW OFF dla niewidocznych cz´Êci powinno
znacznie przyspieszyç czas tworzenia modelu i zmniejszyç rozmiar
danych go opisujàcych.

USTAWIENIE SHADOW ON zapewnia wymuszenie rzucanie cieni
nawet przez najmniejsze detale projektu.

background image

143

• Rozdzia∏ 10: Atrybuty

Podr´cznik j´zyka GDL

Drugi opcjonalny tryb steruje pojawianiem si´ cieni na wszystkich
powierzchniach.

SHADOW tryb1, OFF wy∏àcza rzucanie cieni na wszystkie po-
wierzchnie.

SHADOW tryb2, ON w∏àcza rzucanie cieni na wszystkie powierzch-
nie.

DomyÊlnie:

SHADOW AUTO

Dyrektywy tylko dla skryptów 2D

[SET

SET

SET

SET

SET] FILL

FILL

FILL

FILL

FILL

nazwa

[SET

SET

SET

SET

SET] FILL

FILL

FILL

FILL

FILL

numer_indeks/wieloboki

Wszystkie wype∏nienia 2D utworzone po tej dyrektywie b´dà u˝y-
wa∏y tego rodzaju wype∏nienia, a˝ do nastepnego wystàpienia SET
FILL
Indeks jest sta∏à odpowiadajàcà wype∏nieniu stosu w wewn´trznej
strukturze danych ArchiCADa. Stos ten jest modyfikowany podczas
analiz GDL,

GDL,

GDL,

GDL,

GDL, mo˝e byç modyfikowany te˝ przez program. U˝ycie

numeru w miejsce nazwy wype∏nienia jest rekomendowana tylko z
uprzednim u˝yciem funkcji IND opisanej wy˝ej.
WartoÊcià domyÊlnà jest:

SET FILL 0

Puste wype∏nienie, jeÊli w skrypcie nie ma wyra˝enia SET FILL.
Zobacz te˝ funkcj´ IND w rozdziale 9.

[SET

SET

SET

SET

SET] LINE_TYPE

LINE_TYPE

LINE_TYPE

LINE_TYPE

LINE_TYPE

nazwa

[SET

SET

SET

SET

SET] LINE_TYPE

LINE_TYPE

LINE_TYPE

LINE_TYPE

LINE_TYPE

numer

Wszystkie linie symbolu 2D utworzone po tej dyrektywie b´dà u˝y-
wa∏y wyspecyfikowanego rodzaju linii.

Numer jest liczbà wskazujàcà na po∏o˝enie danych typu linii w we-
wn´trznych strukturach ArchiCADa. ZawartoÊç tych struktur mo˝e
byç zmieniana zarówno wewnàtrz ArchiCADa, jak i wewnàtrz
skryptu. U˝ycie numeru zamiast nazwy rodzaju linii jest wskazane
jedynie po uprzednim u˝yciu funkcji IND lub u˝ycia rodzaju linii
jako parametru danego skryptu.
WartoÊcià domyÊlnà jest:

SET LINE_TYPE 1

linia ciàg∏a, jeÊli w skrypcie nie ma polecenia SET LINE_TYPE.

background image

144

• Rozdzia∏ 10: Atrybuty

Podr´cznik j´zyka GDL

10.2 Definicje atrybutów w

skryptach GDL

Komenda

Sprawdê skrypt GDL w oknie dialogowym elementu bi-

bliotecznego pomaga zweryfikowaç poprawnoÊç materia∏u,
wype∏nienia, linii stylu jest prawid∏owy.

JeÊli materia∏, wype∏nienie, rodzaj linii lub stylu w interpretacji ele-
mentów bibliotecznych 3D jest ró˝ny od zamierzonego, a nie
wystàpi∏ b∏àd w zleceniu, jest prawdopodobne, ˝e jeden lub wi´cej
wartoÊci parametrów sà b∏´dne. Polecenie

Sprawdê skrypt GDL

pomo˝e znaleêç te parametry.

Definicja materia∏u

DEFINE MATERIAL

DEFINE MATERIAL

DEFINE MATERIAL

DEFINE MATERIAL

DEFINE MATERIAL

nazwa typ, m

1

, m

2

, . . . m

n

Ka˝dy skrypt

GDL mo˝e zawieraç definicje materia∏ów. Definicje

te muszà znajdowaç si´ przed pierwszymi odwo∏aniami do nich.
Tak zdefiniowany materia∏ mo˝e byç u˝ywany tylko dla elementów
3D w skrypcie, w którym zosta∏ zdefiniowany i w skryptach z nie-
go wywo∏anych.

nazwa :

nazwa materia∏u.

typ :

0 : definicja ogólna, n=16

Znaczenie parametrów i zakresy ich wartoÊci sà
wyjaÊnione w poni˝szych przyk∏adach.

1: definicja prosta, n=9

Dodatkowe parametry sà sta∏e lub obliczane na
podstawie danych.

2—6: materia∏y predefiniowane, n=3

Trzy parametry sà wartoÊciami sk∏adowych RGB
barwy materia∏u (czerwony, zielony, niebieski).
Inne parametry sà sta∏e lub obliczane na podstawie
koloru.

2: matowy
3: metal
4: plastik
5: szk∏o
6: Êwiecàcy

background image

145

• Rozdzia∏ 10: Atrybuty

Podr´cznik j´zyka GDL

10: definicja ogólna z wzorkiem wype∏nienia, n=17

11: definicja prosta z wzorkiem wype∏nienia, n=10

12—16: materia∏y predefiniowane z wzorkiem
wype∏nienia, n=4

20: ogólna definicja z wype∏nieniem, numer koloru
wype∏nienia oraz numer parametrów struktury,
n=19

21: prosta definicja z wype∏nieniem, numerem
koloru wype∏nienia, oraz numerem parametrów
struktury, n=12

22-26: wczeÊniej zdefiniowane typy materia∏ów z
wype∏nieniem, numerem koloru wype∏nienia, oraz
numerem parametrów struktury, n=6.

Przyk∏ady:

DEFINE MATERIAL "woda" 0,

0.5284, 0.5989, 0.6167,

! kolor powierzchni (RGB) [0.0..1.0]

1.0, 0.5, 0.5, 0.9,

! Âwiat∏o otoczenia, Rozproszenie

! Odb. kierunkowe, PrzezroczystoÊç [0.0..1.0]

20,

! Po∏ysk [0.0..100.0]

1,

! T∏umienie [0.0..4.0]

0.5284, 0.5989, 0.6167,

! Kolor Êwiat∏a otoczenia (RGB) [0.0..1.0]

0, 0, 0,

! Kolor Êwiat∏a emitowanego (RGB) [0.0..1.0]

0.0

! T∏umienie Êwiat∏a emitowanego [0.0..65.5]

background image

146

• Rozdzia∏ 10: Atrybuty

Podr´cznik j´zyka GDL

Przyk∏ady:

DEFINE MATERIAL "asfalt" 1,
0.1995, 0.2023, 0.2418

! Kolor powierzchni (RGB) [0.0..1.0]

1.0, 1.0, 0.0, 0.0,
! Âwiat∏o otoczenia, Rozproszenie

! Odb. kierunkowe, PrzezroczystoÊç [0.0..1.0]
0,

! Po∏ysk [0..100]

0
! T∏umienie [0..4]

DEFINE MATERIAL

"Ceg∏a czerwona" 10,

0.878294, 0.398199, 0.109468,

0.58, 0.85, 0.0, 0.0,
0,

0.0,
0.878401, 0.513481, 0.412253,

0.0, 0.0, 0.0,

0,
IND(FILL, "ceg∏a zwyk∏a")

! numer wzorku wype∏nienia

DEFINIOWANY MATERIA¸

"˝ó∏ta ceg∏a+*" 20,

1,

1,

0,

! kolor powierzchni RGB [0.0 .. 1.0]

0.58, 0.85,

0,

0,

! otaczajacy, rozproszony, lustrzany, przezroczysty

! wspó∏czynniki [0.0 .. 1.0]

0,

! po∏ysk [0.0 .. 100.0]

0,

! t∏umienie przezroczystoÊci [0.0 .. 4.0]

0.878401,

0.513481,

0.412253,

! odbicie RGB [0.0 .. 1.0]

0,

0,

0,

! emisja RGB [0.0 .. 1.0]

0,

! t∏umienie Êwiat∏a emitowanego [0.0 .. 65.5]

IND(WYPE¸NIENIE, "spojenie ceg∏y 25x75"), 61,
IND(MATERIA¸, "ceg∏a")

! numer wype∏nienia, numer koloru, numer tekstury

Specjalne znaczenia:

- JeÊli numer pióra wynosi zero, wype∏nienie wektorowe b´dzie
tworzone z aktywnym kolorem pióra.

- WartoÊç zero pozwala zdefiniowaç materia∏ bez wektorowego wy-
pe∏nienia lub teksty.

background image

147

• Rozdzia∏ 10: Atrybuty

Podr´cznik j´zyka GDL

DEFINE TEXTURE

DEFINE TEXTURE

DEFINE TEXTURE

DEFINE TEXTURE

DEFINE TEXTURE

nazwa, nazwa_pliku, x, y, maska, kàt

Ka˝dy skrypt GDL

GDL

GDL

GDL

GDL mo˝e zawieraç definicj´ materia∏u poprzedzajà-

cà pierwsze odwo∏anie do nazwy tej tekstury. Tekstura mo˝e byç
u˝yta tylko w skrypcie, w którym zosta∏a zdefiniowana a tak˝e w
skryptach potomnych.

nazwa:

nazwa tekstury

nazwa_pliku: nazwa obrazu pliku z obrazkiem

x:

logiczna szerokoÊç tekstury

y:

logiczna wysokoÊç tekstury

maska:

j

1

+ 2 * j

2

+ 4 * j

3

+ 8 * j

4

+ 16 * j

5

+

32 * j

6

+ 64 * j

7

+ 128 * j

8

+ 256 * j

9

gdzie j

1

, j

2

, j

3

, j

4

, j

5

, j

6

, j

7

, j

8

, j

9

mo˝e byç 0 lub 1

.

kontrola kana∏u alfa (j

1

j

6

):

j

1

:

kana∏ alfa zmienia przezroczystoÊç materia∏u

j

2

:

chropowatoÊç lub normalne zaburzenia powierzch-
ni

chropowatoÊç u˝ywa kana∏u alfa aby zdetermino-
waç normalnej amplitud´ powierzchni.

j

3

:

kana∏ alfa rozproszenie koloru

j

4

:

kana∏ alfa zmienia odbicie kolor materia∏u

j

5

:

kana∏ alfa zmienia kolor otaczajàcy materia∏.

j

6

:

kana∏ alfa zmienia kolor powierzchni

Kontrola po∏àczeƒ (j

7

j

9

):

JeÊli wartoÊç jest równa zero, wybierany jest sposób normalny:

x

y

background image

148

• Rozdzia∏ 10: Atrybuty

Podr´cznik j´zyka GDL

j

7

:

materia∏ b´dzie przesuni´ty na chybi∏ trafi∏

x

y

j

8

:

odbijanie w kierunku 'x'

x

y

j

9

:

odbijanie w kierunku 'y'

x

y

kàt:

kàt obrotu o naturalnej orientacji:

DEFINE TEXTURE "ceg∏a" "ceg∏a.PICT",

1.35, 0.3, 256+128, 35.0

background image

149

• Rozdzia∏ 10: Atrybuty

Podr´cznik j´zyka GDL

Definicja wype∏nienia

DEFINE FILL

DEFINE FILL

DEFINE FILL

DEFINE FILL

DEFINE FILL

nazwa pat

1

, pat

2

, pat

3

, pat

4

, pat

5

, pat

6

, pat

7

, pat

8

,

odst´py, kàt, n,
cz´st1, kier1, przesx1, przezy1, m1,
d∏11, . . . d∏m1
...
cz´stn, kiern, przesxn, przezyn, mn,
d∏n1, . . . d∏nm

Ka˝dy skrypt GDL

GDL

GDL

GDL

GDL

mo˝e zawieraç definicje wzorków wype∏nienia.

Definicje te muszà znajdowaç si´ przed pierwszymi do nich odwo-
∏aniami. Tak zdefiniowany wzorek wype∏nienia mo˝e byç u˝ywany
wy∏àcznie w skrypcie, w którym zosta∏ zdefiniowany i w skryptach
z niego wywo∏anych.

nazwa :

nazwa wzorku wype∏nienia

wz1, wz2, wz3, wz4, wz5, wz6, wz7, wz8 :

definicja wzorku punktowego — 8 liczb od 0 do
255 interpretowanych dwójkowo

odst´py :

wspó∏czynnik powi´kszenia wzorku

kàt :

kàt obrotu w stopniach

n :

liczba odcinków we wzorku

cz´sti :

cz´stotliwoÊç rysowania linii (odleg∏oÊç pomi´dzy
dwoma liniami jest równa odst´py * cz´stn)

kieri :

kàt dla danego odcinka w stopniach

przesxi,

przesyi :

przesuni´cie odcinka wzgl´dem poczàtku uk∏adu
wspó∏rz´dnych

mi :

iloÊç sk∏adników w odcinku

d∏ij :

d∏ugoÊci kolejnych sk∏adników (rzeczywista d∏ugoÊç
jest równa odst´py * d∏ij. Sk∏adniki sà na przemian
kreskà i przerwà; pierwszym fragmentem jest
kreska. Zerowa d∏ugoÊç oznacza kropk´).

background image

150

• Rozdzia∏ 10: Atrybuty

Podr´cznik j´zyka GDL

Przyk∏ad:

DEFINE FILL "ceg∏a" 85,255,136,255,34,255,136,255,

0.08333, 0.0, 4,

1.0, 0.0, 0.0, 0.0, 0,

3.0, 90.0, 0.0, 0.0, 2,

1.0, 1.0,

3.0, 90.0, 1.5, 1.0, 4,

1.0, 3.0, 1.0, 1.0,

1.5, 90.0, 0.75, 3.0, 2,

1.0, 5.0

85

01010101

• • •

255

11111111

••••••••

136

10001000

• •

255

11111111

••••••••

34

00100010

• •

255

11111111

••••••••

136

10001000

• •

255

11111111

••••••••

Definicja rodzaju linii

DEFINE LINE_TYPE

DEFINE LINE_TYPE

DEFINE LINE_TYPE

DEFINE LINE_TYPE

DEFINE LINE_TYPE

nazwa_odst´py, n, d∏

1

, . . . d∏

n

Ka˝dy skrypt GDL

GDL

GDL

GDL

GDL

mo˝e zawieraç definicje rodzajów linii. Definicje

te muszà znajdowaç si´ przed pierwszymi do nich odwo∏aniami.
Tak zdefiniowany rodzaj linii mo˝e byç u˝ywany wy∏àcznie w
skrypcie, w którym zosta∏ zdefiniowany i w skryptach z niego wy-
wo∏anych.

nazwa

nazwa rodzaju linii.

odst´py:

wspó∏czynnik powi´kszenia wzorku.

n:

liczba sk∏adników linii.

d∏i :

d∏ugoÊci kolejnych sk∏adników (rzeczywista d∏ugoÊç
jest równa odst´py * d∏i.) Sk∏adniki sà na przemian
kreskà i przerwà; pierwszym fragmentem jest
kreska. Zerowa d∏ugoÊç oznacza kropk´.

Uwaga: Tylko proste typy linii mogà byç definiowane w ten

sposób, tzn. zawierajàce tylko kreski, punkty i
przerwy

background image

151

• Rozdzia∏ 10: Atrybuty

Podr´cznik j´zyka GDL

Przyk∏ad:

DEFINE LINE_TYPE "linia - - ." 1,

6, 0.005, 0.002, 0.001, 0.002, 0.0, 0.002

Definicja stylu

DEFINE STYLE

DEFINE STYLE

DEFINE STYLE

DEFINE STYLE

DEFINE STYLE

nazwa rodziny_czcionek, rozmiar, zaczepienie, kod_typu

DEFINE STYLE

DEFINE STYLE

DEFINE STYLE

DEFINE STYLE

DEFINE STYLE

nazwa PLOTMAKER, rozmiar, zaczepienie, nachylenie

DEFINE STYLE

DEFINE STYLE

DEFINE STYLE

DEFINE STYLE

DEFINE STYLE

nazwa PLOTTER, rozmiar, zaczepienie, nachylenie

Ka˝dy skrypt GDL

GDL

GDL

GDL

GDL

mo˝e zawieraç definicje stylów pisma. Definicje

te muszà znajdowaç si´ przed pierwszymi do nich odwo∏aniami.
Tak zdefiniowany styl mo˝e byç u˝ywany wy∏àcznie w skrypcie, w
którym zosta∏ zdefiniowany i w skryptach z niego wywo∏anych.

nazwa:

nazwa stylu

rodzina_czcionek:

nazwa u˝ywanej rodziny czcionek (np. Geneva)

rozmiar:

wysokoÊç czcionki w

zaczepienie: kod oznaczajàcy pozycj´ dla tekstu

1

2

3

4

5

6

7

8

9

kod_typu:

suma nast´pujàcych liczb:

0

tekst normalny

1

tekst pogrubiony

tekst pogrubiony

tekst pogrubiony

tekst pogrubiony

tekst pogrubiony

2

kursywa

4

podkreÊlenie

8

obrysowanie

obrysowanie

16

c i e ƒ

c i e ƒ

nachylenie:

kàt nachylenia w stopniach (dla czcionek PlotMake-
ra i plotera)

background image

152

• Rozdzia∏ 10: Atrybuty

Podr´cznik j´zyka GDL

background image

153

• Rozdzia∏ 11: Instrukcje sterowania

Podr´cznik j´zyka GDL

11

Instrukcje sterowania

background image

154

• Rozdzia∏ 11: Instrukcje sterowania

Podr´cznik j´zyka GDL

11.1 Instrukcje sterowania

wykonywaniem programu

FOR

FOR

FOR

FOR

FOR

nazwa_zmiennej=wart_pocz TO wart_koƒc [STEP wielk_kroku]

Cz´Êç inicjujàca p´tli FOR. S∏owo STEP i wielk_kroku mogà byç
pomini´te, co oznacza przyj´cie kroku równego jeden.

Zmienne globalne nie mogà byç zmiennymi sterujàcymi p´tli.

Przyk∏ad:

FOR I=1 TO 10 STEP 2

.

.

.

NEXT I

NEXT

NEXT

NEXT

NEXT

NEXT

nazwa_zmiennej

Instrukcja zamykajàca p´tl´ FOR.

WartoÊç zmiennej okreÊlonej przez nazw´_zmiennej zmienia si´ od
wartoÊci wart_pocz do wartoÊci wart_koƒc, rosnàc lub malejàc w
ka˝dym powtórzeniu o wartoÊç wielk_kroku, za ka˝dym razem wy-
konujàc ca∏y fragment skryptu znajdujàcy si´ pomi´dzy
instrukcjami FOR i NEXT. Kiedy wartoÊç zmiennej sterujàcej p´tli
(nazwa_zmiennej) przekroczy wartoÊç wart_koƒc, wykonywane sà
polecenia znajdujàce si´ po instrukcji NEXT.

Dwa przedstawione poni˝ej przyk∏ady sà sobie równowa˝ne:

A = B
1:IF C > 0 AND A > D OR C < 0 AND A < D THEN 2

.
.

.

A = A + C

GOTO 1

2:

- - - - - - - - - - - - - - - - - - - -
FOR A = B TO D STEP C

.
.

.

NEXT A

Powy˝szy przyk∏ad pokazuje, ˝e zastosowanie kroku równego zero
powoduje powstanie p´tli nieskoƒczonej.

background image

155

• Rozdzia∏ 11: Instrukcje sterowania

Podr´cznik j´zyka GDL

Tylko jedna instrukcja NEXT jest dopuszczalna po instrukcji FOR.
P´tl´ mo˝na równie˝ opuÊciç za pomocà instrukcji GOTO (lub
IF…GOTO). Mo˝na do takiej p´tli powróciç, ale nie mo˝na wyko-
nywaç skoku do wn´trza p´tli, z pomini´ciem instrukcji FOR.

IF

IF

IF

IF

IF

warunek THEN etykieta

IF

IF

IF

IF

IF

warunek GOTO etykieta

IF

IF

IF

IF

IF

warunek GOSUB etykieta

Instrukcja skoku warunkowego. Je˝eli wartoÊç wyra˝enia warunek
wynosi 0.0, to wykonywane jest nast´pne polecenie. W przeciw-
nym wypadku, nast´pnym wykonywanym poleceniem b´dzie
polecenie wyst´pujàce po podanej w instrukcji etykiecie.

Przyk∏ady:

IF A THEN 28

IF I > J GOTO 200+I*J

IF I > 0 GOSUB 9000

IF

IF

IF

IF

IF

warunek THEN

THEN

THEN

THEN

THEN polecenie [ELSE

[ELSE

[ELSE

[ELSE

[ELSE polecenie]]]]]

lub

IF

IF

IF

IF

IF

warunek THEN

THEN

THEN

THEN

THEN

polecenie 1
polecenie 2
...

[ELSE

[ELSE

[ELSE

[ELSE

[ELSE

polecenie n
polecenie n+1
...]

...]

...]

...]

...]

ENDIF

ENDIF

ENDIF

ENDIF

ENDIF

Je˝eli wraz ze s∏owem kluczowym THEN i/lub ELSE w jednej linii
zapisane jest tylko jedno polecenie, to nie wymaga si´ koƒczenia
instrukcji IF s∏owem kluczowym ENDIF.

Je˝eli po THEN nast´puje szereg poleceƒ, b´da one wykonywane
(wszystkie, a˝ do s∏owa kluczowego ELSE lub ENDIF), je˝eli wyra-
˝enie w warunku b´dzie mia∏o wartoÊç logicznà=prawda (inna ni˝
0). W przeciwnym wypadku b´da wykonywane komendy nast´pu-
jàce po ELSE. Je˝eli nie ma s∏owa kluczowego ELSE, to zostanà
wykonane dalsze polecenia nast´pujàce po ENDIF.

background image

156

• Rozdzia∏ 11: Instrukcje sterowania

Podr´cznik j´zyka GDL

Przyk∏ad:

IF

a = b THEN wysokoÊç = 5 ELSE wysokoÊç = 7

IF potrzebne_drzwi THEN

CALL "drzwi_macro" PARAMETERS
ADDX a

ENDIF

IF simple THEN

HOTSPOT2 0, 0
RECT2 a, 0, 0, b

ELSE PROJECT2 3, 270, 1

IF nazwa = "Sphere" THEN

ADDY b
SPHERE 1

ELSE
ROTX 90

TEXT 0.002, 0, nazwa

ENDIF

GOTO

GOTO

GOTO

GOTO

GOTO

etykieta

Instrukcja skoku bezwarunkowego. Jako nast´pne wykonywane
b´dà instrukcje znajdujàce si´ po wymienionej w instrukcji etykie-
cie.

Przyk∏ad:

GOTO K+2

GOSUB

GOSUB

GOSUB

GOSUB

GOSUB

etykieta

Skok do podprocedury. Etykieta jest wskazaniem miejsca startu
podprocedury. Zobacz równie˝ informacje o etykietach w rozdzia-
le 2.

RETURN

RETURN

RETURN

RETURN

RETURN

Powrót z podprocedury. Nast´pnà wykonywanà instrukcjà b´dzie
instrukcja znajdujàca si´ za instrukcjà GOSUB, która wywo∏a∏a pod-
procedur´.

END

END

END

END

END

EXIT

EXIT

EXIT

EXIT

EXIT

Koniec skryptu

GDL. Wykonywanie skryptu zostaje przerwane, a

sterowanie przechodzi do skryptu, który wywo∏a∏ dany skrypt lub
do ArchiCADa. Dozwolone jest wielokrotne u˝ywane instrukcji
EXIT i END w jednym skrypcie.

background image

157

• Rozdzia∏ 11: Instrukcje sterowania

Podr´cznik j´zyka GDL

11.2 U˝ywanie bufora

parametrów

Bufor parametrow jest wbudowanà strukturà danych (typu kolejka)
dostepnà przez u˝ytkownika.

Oto przyk∏ady wykorzystania takiej struktury:

- pewne dane (np. wspó∏rz´dne) zmieniajà si´ zgodnie z zasadami,
które mogà byç opisane wzorem matematycznym

- zachodzi potrzeba magazynowaniaaktualnych wartoÊci zmien-
nych.

Bufor parametrów jest nieskoƒczenie d∏ugà tablicà, w której mo˝-
na magazynowaç wartoÊci liczbowe. Polecenie PUT zachowuje
danà wartoÊç na koƒcu bufora. WartoÊç ta mo˝e byç póêniej uzy-
skana (polecenia GET, USE ) dok∏adnie w tej samej kolejnoÊci, w
której zosta∏a zachowana tzn. pierwsza zachowana wartoÊç b´dzie
pierwszà uzyskanà wartoÊcià.

Polecenie GET(n) i USE(n) jest równowa˝ne n wartoÊciom oddzie-
lanym przecinkami. Oznacza to, ˝e mo˝na nim zastàpiç n wartoÊci
wymaganych przez dowolne polecenie GDL.

PUT

PUT

PUT

PUT

PUT

wyra˝enie [, wyra˝enie] . . .

Umieszcza podane wartoÊci w tej samej kolejnoÊci w wewn´trz-
nym buforze parametrów.

NSP = NSP+1

PUT

GET

GET

GET

GET

GET

(n)

U˝ywa n nast´pnych wartoÊci z bufora i usuwa je z niego.

NSP = NSP-1

GET

background image

158

• Rozdzia∏ 11: Instrukcje sterowania

Podr´cznik j´zyka GDL

USE

USE

USE

USE

USE

(n)

U˝ywa n nast´pnych wartoÊci z bufora, nie usuwajàc ich z niego.
Nast´pujàce po sobie polecenia USE i GET u˝yjà sekwencji tych
samych wartoÊci parametrów.

USE

NSP

NSP

NSP

NSP

NSP

Zwraca iloÊç parametrów znajdujàcych si´ w buforze.

Przyk∏ad u˝ycia bufora parametrów:

R=2 : B=6 : C=4 : D=10
N=12

S=180/N
FOR T=0 TO 180 STEP S

PUT R+R*COS(T), C-R*SIN(T), 1
NEXT T

FOR I=1 TO 2
EXTRUDE 3+NSP/3, 0,0,D, 1+16,

0, B, 0,

2*R, B, 0,
USE(NSP),

0, B, 0
MULY -1

NEXT I

DEL 1
ADDZ D

REVOLVE 3+NSP/3, 180, 0,
0, B, 0,

2*R, B, 0,

GET(NSP),
0, B, 0

background image

159

• Rozdzia∏ 11: Instrukcje sterowania

Podr´cznik j´zyka GDL

Pe∏ny opis:

R=2 : B=6 : C=4 : D=10

FOR I=1 TO 2
EXTRUDE 16, 0,0,D, 1+16,

0, B, 0,
2*R, B, 0,

2*R, C, 1,

R+R*COS(15), C-R*SIN(15), 1,
R+R*COS(30), C-R*SIN(30), 1,

R+R*COS(45), C-R*SIN(45), 1,
R+R*COS(60), C-R*SIN(50), 1,

R+R*COS(75), C-R*SIN(75), 1,

R+R*COS(90), C-R*SIN(90), 1,
R+R*COS(105), C-R*SIN(105), 1,

R+R*COS(120), C-R*SIN(120), 1,
R+R*COS(135), C-R*SIN(135), 1,

R+R*COS(150), C-R*SIN(150), 1,

R+R*COS(165), C-R*SIN(165), 1,
0, B, 1,

0, B, 0
MULY -1

NEXT I

DEL 1
ADDZ D

REVOLVE 16, 180, 0,
0, B, 0,

2*R, B, 0,

2*R, C, 1,

background image

160

• Rozdzia∏ 11: Instrukcje sterowania

Podr´cznik j´zyka GDL

R+R*COS(15), C-R*SIN(15), 1,

R+R*COS(30), C-R*SIN(30), 1,
R+R*COS(45), C-R*SIN(45), 1,

R+R*COS(60), C-R*SIN(50), 1,
R+R*COS(75), C-R*SIN(75), 1,

R+R*COS(90), C-R*SIN(90), 1,

R+R*COS(105), C-R*SIN(105), 1,
R+R*COS(120), C-R*SIN(120), 1,

R+R*COS(135), C-R*SIN(135), 1,
R+R*COS(150), C-R*SIN(150), 1,

R+R*COS(165), C-R*SIN(165), 1,

0, B, 1,
0, B, 0

11.3 Makrodefinicje

Chocia˝ ka˝dy obiekt 3D daje si´ roz∏o˝yç na z∏o˝one i proste figu-
ry GDL, to czasem istnieje potrzeba zdefiniowania w∏asnych
elementów z∏o˝onych dla specjalnych zastosowaƒ. Elementy takie
nazywane sà makrodefinicjami.

Odwo∏anie do takich elementów nast´puje za pomocà instrukcji
CALL:

CALL

CALL

CALL

CALL

CALL

nazwa_makrodefinicji

[lista_parametrów]

CALL

CALL

CALL

CALL

CALL

nazwa_makrodefinicji PARAMETERS

PARAMETERS

PARAMETERS

PARAMETERS

PARAMETERS [nazwa

1

=wartoÊç

1

,…

nazwa

n

=wartoÊç

n

]

Nazwa makrodefinicji nie mo˝e byç d∏u˝sza ni˝ 31 znaków.

Nazwy makrodefinicji mogà byç sta∏ymi ciàgami znaków lub zmien-
nymi typu ciàg znaków. Nazwa makrodefinicji w wywo∏aniu nie
mo˝e byç wynikiem operacji na ciàgu znaków.

Nazwa makrodefinicji musi byç umieszczona w cudzys∏owie

(",',”,’

,

“,‘), z wyjàtkiem: je˝eli zaczyna si´ literà lub znakiem '_' lub

'~' i zawiera tylko litery, cyfry lub znak podkreÊlenia '_'. W przeciw-
nym wypadku cudzys∏ów otwierajàcy i zamykajàcy u˝yty w
instrukcji CALL musi byç tego samego typu, oraz byç inny od
wszystkich znaków u˝ytych w nazwie makrodefinicji.

Suma nazw makrodefinicji mo˝e byc uxyta jako polecenie (bez s∏o-
wa kluczowego CALL):

nazwa_makrodefinicji

lista_parametrów

nazwa_makrodefinicji

PARAMETERS

PARAMETERS

PARAMETERS

PARAMETERS

PARAMETERS [nazwa

1

=wartoÊç

1

,… nazwa

n

=wartoÊç

n

]

Pierwszy typ odwo∏aƒ do makrodefinicji mo˝e byç u˝yty w pro-
stych plikach tekstowych GDL, jak równie˝ w elementach

background image

161

• Rozdzia∏ 11: Instrukcje sterowania

Podr´cznik j´zyka GDL

bibliotecznych, pod warunkiem, ˝e lista parametrów zawiera jedy-
nie parametry oznaczone pojedynczymi literami (A…Z). Ten rodzaj
wywo∏aƒ makrodefinicji u˝ywany jest by zachowaç zgodnoÊç z po-
przednimi wersjami GDL. Polecany jest jednak drugi sposób.

Znaczenie listy parametrów:

WartoÊç parametru A b´dzie pierwszà wartoÊcià na liÊcie, wartoÊç
parametru B b´dzie drugà wartoÊcià na liÊcie, itd.

Je˝eli makrodefinicja (element biblioteczny) nie zawiera parametru
opisanego pojedynczà literà odpowiadajàcego wartoÊci, interpreta-
cja b´dzie kontynuowana przy opuszczeniu wartoÊci,równoczeÊnie
otrzyma ostrze˝enie od programu. Wyra˝enia typu ciàg znaków nie
sà dopuszczalne na liÊcie wartoÊci.

Drugi typ mo˝e byç u˝yty tylko w przypadku, je˝eli plik posiada
wszystkie w∏aÊciwoÊci elementu bibliotecznego nigdy w pliku tek-
stowym GDL. Po s∏owie kluczowym PARAMETERS, nale˝y umieÊciç
nazwy parametrów wywo∏anej makrodefinicji w dowolnej kolejno-
Êci ze znakami "=" i z wartoÊcià ka˝dego z nich. Mo˝na u˝ywaç
wyra˝eƒ znakowe, ale nale˝y pami´taç, by ciàgi znaków przypisy-
waç tylko do parametrów znakowych. Je˝eli nazwa parametru w
liÊcie parametrów nie zostaje odnaleziona w wywo∏ywanej marode-
finicji, pozostanie wyÊwietlona informacja o b∏´dzie. Parametry
wywo∏ywanej makrodefinicji, które nie sà wymienione w jej wy-
wo∏aniu, przyjmà wartoÊç zdefiniowanà a wywo∏ywanym obiekcie
bibliotecznym.

Makrodefinicja

GDL ma w∏asne Êrodowisko pracy, zale˝ne od kolej-

noÊci w jakim zosta∏a wywo∏ana. Ustawienia MODEL, RADIUS,
RESOL, TOLER, PEN, MATERIAL, SHADOW oraz bie˝àce ustawie-
nie uk∏adu wspó∏rz´dnych sà przekazywane do makrodefinicji.
Mogà byç w niej u˝ywane i modyfikowane, ale zmiany te majà cha-
rakter lokalny. Wszystkie te zmiany nie b´dà mia∏y wp∏ywu na
wykonywanie skryptu, z którego makrodefinicja zosta∏a wywo∏ana.

Nadanie wartoÊci parametrom w wywo∏aniu makrodefinicji, ozna-
cza bezpoÊrednie nadanie wartoÊci jej zamiennym na poziome tej
makrodefinicji.

Parametry A i B sà na ogó∏ u˝ywane jako wymiary obiektu.

Przyk∏ad:

CALL

"noga" 2, , 5

! A = 2, B = 0, C = 5

leg

2, , 5

CALL

"drzwi-1" PARAMETERS height = 2, a = 25.5,

name = "Director"

background image

162

• Rozdzia∏ 11: Instrukcje sterowania

Podr´cznik j´zyka GDL

CALL

"drzwi-1" PARAMETERS

! u˝yj domyÊlnie

! wartoÊci parametrów

drzwi-1 PARAMETERS

Podsumowanie: Je˝eli nie sà niezb´dne d∏ugie nazwy parametrów
lub ciàgi znaków, to u˝ycie plików tekstowych GDL mo˝e byç wy-
starczajàce.

Typ ten mo˝e byç wywo∏ywany tylko przy pomocy pierwszego
wywo∏ania makrodefinicji. Nie obs∏uguje ono modyfikowalnej listy
parametrów.

Innymi s∏owy, je˝eli potrzebne sà nazwy parametrów bardziej roz-
budowane ni˝ jedna litera (od A...do Z) lub na liÊcie parametrów
wyst´pujà ciàgi znaków, musi zostaç u˝yty jako makrodefinicja
kompletny element biblioteczny i drugi rodzaj jego wywo∏ania.

background image

163

• Rozdzia∏ 11: Instrukcje sterowania

Podr´cznik j´zyka GDL

11.4 Instrukcje komunikacji z

u˝ytkownikiem

PRINT

PRINT

PRINT

PRINT

PRINT

[ wyra˝enie ] [, wyra˝enie ]. . .

WyÊwietla wszystkie argumenty w oknie dialogowym. Argumenta-
mi mogà byç wyra˝enia znakowe i numeryczne, w dowolnej iloÊci i
kolejnoÊci oddzielone przecinkami.

Przyk∏ady:

PRINT "zmienna_p´tli:", I

PRINT J, K-3*L

PRINT "Poczàtek interpretacji"
PRINT a * SIN (alpha) + b * COS (alpha)

PRINT "WartoÊci parametru: ", "a = ", a,

", b = ", b

PRINT nazwa + STR (“%m”, i) + “.” + ext

background image

164

• Rozdzia∏ 11: Instrukcje sterowania

Podr´cznik j´zyka GDL

11.5 Operacje na plikach

Opisywane poni˝ej s∏owa kluczowe umo˝liwiajà dost´p do plików
zewn´trznych, pozwalajàc na ich czytanie/zapisywanie. Stwarza to
mo˝liwoÊci umieszczania/pobierania wartoÊci z/do skryptów GDL.
Z tym procesem nieroz∏àcznie zwiàzane jest u˝ycie specjalnych do-
datków ArciCADa. Pliki tekstowe obs∏ugiwane sà poprzez dodatek
"Zapis/odczyt tekstu GDL". Dodatki do innych typów plików mogà
byç tworzone poprzez firmy niezale˝nie.

channel = OPEN

= OPEN

= OPEN

= OPEN

= OPEN

(filtr, nazwa_pliku, paramstring)

filtr :

ciàg znaków, nazwa istniejàcego dodatku

nazwa _pliku :

ciàg znaków, nazwa pliku

paramstring: ciàg znaków, zawiera zestaw poleceƒ w∏aÊciwy dla

danego dodatku, jego zawartoÊç interpretowana
przez dodatek zgodnie z poddanymi parametrami.

Otwiera pliki zwracane z parametrami.

naturalnà identyfikujacà konkretny plik. Ta wartoÊç b´dzie

identyfikatorem pliku w nast´pnych poleceniach.

n = INPUT

= INPUT

= INPUT

= INPUT

= INPUT

(kana∏, rekordID, poleID, zmienna1 [, zmienna2, ...])

rekordID, poleID:

ciàg znaków lub cyfr wskazujàcych poczàtek
czytania pliku. ZawartoÊç tych zmiennych interpre-
towana jest przez dodatek.

Liczba podanych parametrów definiuje liczb´ wartoÊci czytany-
ch,odpozycji poczàtkowej, z pliku identyfikowanego przez wartoÊç
kana∏u. Na liÊcie parametrów musi byç co najmniej jedna wartoÊç.
Funkcja ta przypisuje wartoÊç parametrowi w kolejnoÊci ich czyta-
nia. WartoÊci te mogà byç ciàgami znaków lub cyframi, niezale˝nie
od typu tego parametru.

WartoÊcià zwracanà jest liczba poprawnie przeczytanych warto-
Êci.JeÊli napotkany zostanie znak koƒca pliku przyjmuje ona
wartoÊç -1.

background image

165

• Rozdzia∏ 11: Instrukcje sterowania

Podr´cznik j´zyka GDL

OUTPUT

OUTPUT

OUTPUT

OUTPUT

OUTPUT

kana∏, rekordID, poleID, wyra˝enie1 [, wyra˝enie2, ...]

rekordID, poleID:

ciàg znaków lub cyfr wskazujàcych poczàtek zapisu,
zawartoÊç tych zmiennych interpretowana jest
przez dodatek.

Zapisuje wartoÊç wyra˝enia do pliku identyfikowanego przez kana∏
od zadanej pozycji poczàtkowej. Musi zawieraç co najmniej jedno
wyra˝enie. Typ wartoÊci jest ten sam co typ wyra˝enia.

CLOSE

CLOSE

CLOSE

CLOSE

CLOSE

kana∏

Zamyka plik identyfikowany przez kana∏.

background image

166

• Rozdzia∏ 11: Instrukcje sterowania

Podr´cznik j´zyka GDL

background image

167

• Dodatek

Podr´cznik j´zyka GDL

Dodatek

A: Lista zmiennych globalnych

B: Elementy GDL tworzone na podstawie

rzutu

C: S∏owa kluczowe tylko dla 3D

D: S∏owa kluczowe tylko dla 2D

E: S∏owa kluczowe dla 3D i 2D

F: S∏owa kluczowe dla skryptu cech

G: Zarezerwowane (stare) s∏owa kluczowe

H: Alfabetyczny spis s∏ów kluczowych

I: Okna pomocy GDL

J: Dodatek "Zapis/odczyt tekstu"

background image

168

• Dodatek

Podr´cznik j´zyka GDL

A

Zmienne globalne

Zmienne globalne przechowujà specjalne informacje o modelu.
Pozwala to na dost´p do informacji o geometrii i Êrodowisku, w
jakim uruchamiany jest dany skrypt GDL. Na przyk∏ad mo˝na uzy-
skaç informacj´ o Êcianie, w której umieszczane jest okno, dzi´ki
czemu okno mo˝e dostosowaç si´ do jej gruboÊci i materia∏u.
Zmienne globalne nie sà zapami´tywane przed wywo∏aniem ma-
krodefinicji, przez co zmiany w nich dokonane zostajà przekazane
do skryptu wywo∏ujàcego makrodefinicj´.

A_

skala

rysunku

B_

wzniesienie

bie˝àcej

kondygnacji

C_

gruboÊç Êciany

D_

wysokoÊç Êciany

E_

numer pióra dla konturu Êciany

F_

numer pióra dla wype∏nienia Êciany

G_

numer materia∏u Êciany po stronie przeciwnej do strony,
na którà otwiera si´ okno/drzwi

H_

numer materia∏u Êciany po stronie, na którà otwiera si´
okno/drzwi

I_

numer materia∏u na kraw´dziach Êciany

J_

wysokoÊç progu/parapetu lub wzniesienie podstawy obiektu

K_

parapet/próg

L_

numer pióra dla symbolu

M _

numer materia∏u dla symbolu

background image

169

• Dodatek

Podr´cznik j´zyka GDL

N_

numer klatki w animacji; dzia∏a jedynie w ArchiCADzie
z w∏àczonym menu Specjalne, które pozwala na wymuszenie
przebudowy modelu po ka˝dej klatce animacji. Dla
pojedynczych klatek wartoÊç N_ wynosi -1.

O_

pierwsza klatka w Êcie˝ce animacji

P_

ostatnia

klatka

w

Êcie˝ce

animacji

Q_

wysokoÊç bie˝àcej kondygnacji

R_

promieƒ Êciany ∏ukowej (0 dla Êciany prostej)

(w kierunku +Z w 3D, w kierunku +Y w 2D)

S_…Z_

dost´pne dla u˝ytkownika

A~

wzorek dla Êciany

B~

w´garek okna/drzwi

C~

g∏´bokoÊç progu/parapetu

D ~

g∏´bokoÊç w´garka nadpro˝a

E~

w´garek po stronie przeciwnej (1) lub tej, na którà

otwiera

si´ okno/drzwi

(0)

Przy umieszczaniu okien/drzwi w´garki sà ustawiane po stronie:

- dla okien, po stronie na którà otwiera si´ okno (E~ = 0)

- dla drzwi, po przeciwnej stronie ni˝ ta, na którà otwierajà si´
drzwi (E~ = 1)

Ustawienie to mo˝e byç zmienione dla niektórych otwarç w oknie
dialogowym ustaw

F~

GruboÊç futryny okna/drzwi w 2D

G ~

(zarezerwowane)

H~

kàt pozycjonujàcy otwarcie;kàt pomi´dzy osià
otwarcia a promieniem punktu poczàtku Êciany

I~

(zarezerwowane)

J~

segmentacja wygi´tej Êciany w 3D

background image

170

• Dodatek

Podr´cznik j´zyka GDL

K~, L~, M~

pozycja punktu obserwacji

N~, O~, P~

pozycja punktu obserwowanego

Q~

elewacja bie˝àcej kondygnacji

R~

wysokoÊç bie˝àcej kondygnacji

S~

stosunek pozycji bie˝àcej do wysokoÊci bie˝àcej kondygnacji

T~

sposób u˝ycia (2: parametryczne 2D, 3: parametryczne 3D,
4: widok z boku)

U~

kierunek pó∏nocy w projekcie

V~

odbicie lustrzane (1) lub normalnie (0)

W ~

kàt obrotu symbolu

X~, Y~, Z~

pozycja symbolu

Podstawowym zastosowaniem numerów piór, numerów materia-
∏ów i gruboÊci Êciany jest automatyczne dostosowywanie si´ okien
i drzwi o kszta∏cie ró˝nym od prostokàta do Êciany, w której sà
umieszczane.

background image

171

• Dodatek

Podr´cznik j´zyka GDL

B

GDL created from the
Floor Plan

Zachowanie elementów rzutu ArchiCADa jako skrypt GDL lub jako
element biblioteczny powowduje zapisanie jego poszczególnych
elementów przedstawionymi ni˝ej elementami GDL. Mo˝esz u˝y-
waç takich plików jako wzorów, na bazie których tworzysz swoje
w∏asne skrypty GDL. Zajrzyj równie˝ do rozdzia∏u 5.

Âciany :

cWALL_
bWALL_

Kolumny:

cPRISM_

P∏yty :

LIN_
cPRISM_

Dachy wielospadowe :

VERT
EDGE
PGON
BODY

Po∏acie dachowe :

cSLAB_
cROOF_

Okna:

Drzwi:

CALL

Obiekty:

Lampy:

P∏aszczyzny ci´cia ustawiane w oknie dialogowym Parametry prze-
kroju 3D (aktywne po wydaniu polecenia Przekrój 3D):

CUTPLANE kàt

background image

172

• Dodatek

Podr´cznik j´zyka GDL

C

S∏owa kluczowe tylko dla
3D

ADDX, ADDY, ADDZ

ADDX, ADDY, ADDZ

ADDX, ADDY, ADDZ

ADDX, ADDY, ADDZ

ADDX, ADDY, ADDZ

ADD

ADD

ADD

ADD

ADD

MULX, MULY, MULZ

MULX, MULY, MULZ

MULX, MULY, MULZ

MULX, MULY, MULZ

MULX, MULY, MULZ

MUL

MUL

MUL

MUL

MUL

ROTX, ROTY, ROTZ

ROTX, ROTY, ROTZ

ROTX, ROTY, ROTZ

ROTX, ROTY, ROTZ

ROTX, ROTY, ROTZ

ROT

ROT

ROT

ROT

ROT

XFORM

XFORM

XFORM

XFORM

XFORM

LIN_

LIN_

LIN_

LIN_

LIN_

RECT

RECT

RECT

RECT

RECT

POLY, POLY_

POLY, POLY_

POLY, POLY_

POLY, POLY_

POLY, POLY_

PLANE, PLANE_

PLANE, PLANE_

PLANE, PLANE_

PLANE, PLANE_

PLANE, PLANE_

CIRCLE

CIRCLE

CIRCLE

CIRCLE

CIRCLE

ARC

ARC

ARC

ARC

ARC

BLOCK

BLOCK

BLOCK

BLOCK

BLOCK

CYLIND

CYLIND

CYLIND

CYLIND

CYLIND

SPHERE

SPHERE

SPHERE

SPHERE

SPHERE

ELLIPS

ELLIPS

ELLIPS

ELLIPS

ELLIPS

CONE

CONE

CONE

CONE

CONE

PRISM, PRISM_, CPRISM_, BPRISM_

PRISM, PRISM_, CPRISM_, BPRISM_

PRISM, PRISM_, CPRISM_, BPRISM_

PRISM, PRISM_, CPRISM_, BPRISM_

PRISM, PRISM_, CPRISM_, BPRISM_

SLAB, SLAB_, CSLAB_

SLAB, SLAB_, CSLAB_

SLAB, SLAB_, CSLAB_

SLAB, SLAB_, CSLAB_

SLAB, SLAB_, CSLAB_

CWALL_, BWALL_

CWALL_, BWALL_

CWALL_, BWALL_

CWALL_, BWALL_

CWALL_, BWALL_

CROOF_

CROOF_

CROOF_

CROOF_

CROOF_

ARMC

ARMC

ARMC

ARMC

ARMC

ARME

ARME

ARME

ARME

ARME

ELBOW

ELBOW

ELBOW

ELBOW

ELBOW

background image

173

• Dodatek

Podr´cznik j´zyka GDL

EXTRUDE

EXTRUDE

EXTRUDE

EXTRUDE

EXTRUDE

PYRAMID

PYRAMID

PYRAMID

PYRAMID

PYRAMID

REVOLVE

REVOLVE

REVOLVE

REVOLVE

REVOLVE

RULED

RULED

RULED

RULED

RULED

SWEEP

SWEEP

SWEEP

SWEEP

SWEEP

TUBE

TUBE

TUBE

TUBE

TUBE

COONS

COONS

COONS

COONS

COONS

MESH

MESH

MESH

MESH

MESH

LIGHT

LIGHT

LIGHT

LIGHT

LIGHT

PICTURE

PICTURE

PICTURE

PICTURE

PICTURE

TEXT

TEXT

TEXT

TEXT

TEXT

VERT

VERT

VERT

VERT

VERT

VECT

VECT

VECT

VECT

VECT

EDGE

EDGE

EDGE

EDGE

EDGE

PGON

PGON

PGON

PGON

PGON

PIPG

PIPG

PIPG

PIPG

PIPG

COOR

COOR

COOR

COOR

COOR

BODY

BODY

BODY

BODY

BODY

BASE

BASE

BASE

BASE

BASE

BINARY

BINARY

BINARY

BINARY

BINARY

CUTPLANE, CUTEND

CUTPLANE, CUTEND

CUTPLANE, CUTEND

CUTPLANE, CUTEND

CUTPLANE, CUTEND

DEFINE MATERIAL

DEFINE MATERIAL

DEFINE MATERIAL

DEFINE MATERIAL

DEFINE MATERIAL

DEFINE TEXTURE

DEFINE TEXTURE

DEFINE TEXTURE

DEFINE TEXTURE

DEFINE TEXTURE

[SET] MATERIAL

[SET] MATERIAL

[SET] MATERIAL

[SET] MATERIAL

[SET] MATERIAL

SHADOW

SHADOW

SHADOW

SHADOW

SHADOW

MODEL

MODEL

MODEL

MODEL

MODEL

background image

174

• Dodatek

Podr´cznik j´zyka GDL

D

S∏owa kluczowe tylko dla
symboli 2D

ADD2

ADD2

ADD2

ADD2

ADD2

MUL2

MUL2

MUL2

MUL2

MUL2

ROT2

ROT2

ROT2

ROT2

ROT2

HOTSPOT2

HOTSPOT2

HOTSPOT2

HOTSPOT2

HOTSPOT2

LINE2

LINE2

LINE2

LINE2

LINE2

RECT2

RECT2

RECT2

RECT2

RECT2

POLY2

POLY2

POLY2

POLY2

POLY2, POLY2_

POLY2_

POLY2_

POLY2_

POLY2_

ARC2

ARC2

ARC2

ARC2

ARC2

CIRCLE2

CIRCLE2

CIRCLE2

CIRCLE2

CIRCLE2

SPLINE2

SPLINE2

SPLINE2

SPLINE2

SPLINE2

TEXT2

TEXT2

TEXT2

TEXT2

TEXT2

FRAGMENT2

FRAGMENT2

FRAGMENT2

FRAGMENT2

FRAGMENT2

PROJECT2

PROJECT2

PROJECT2

PROJECT2

PROJECT2

DEFINE FILL

DEFINE FILL

DEFINE FILL

DEFINE FILL

DEFINE FILL

DEFINE LINE_TYPE

DEFINE LINE_TYPE

DEFINE LINE_TYPE

DEFINE LINE_TYPE

DEFINE LINE_TYPE

[SET

SET

SET

SET

SET] FILL

FILL

FILL

FILL

FILL

[SET

SET

SET

SET

SET] LINE_TYPE

LINE_TYPE

LINE_TYPE

LINE_TYPE

LINE_TYPE

background image

175

• Dodatek

Podr´cznik j´zyka GDL

E

S∏owa kluczowe dla 2D i
3D

DEL

DEL

DEL

DEL

DEL

Operatory

Funkcje

[LET]

[LET]

[LET]

[LET]

[LET]

RADIUS

RADIUS

RADIUS

RADIUS

RADIUS

RESOL

RESOL

RESOL

RESOL

RESOL

TOLER

TOLER

TOLER

TOLER

TOLER

IND

IND

IND

IND

IND

PEN

PEN

PEN

PEN

PEN

[SET] STYLE

[SET] STYLE

[SET] STYLE

[SET] STYLE

[SET] STYLE

DEFINE STYLE

DEFINE STYLE

DEFINE STYLE

DEFINE STYLE

DEFINE STYLE

FOR

FOR

FOR

FOR

FOR

NEXT

NEXT

NEXT

NEXT

NEXT

IF, THEN, ELSE, ENDIF

IF, THEN, ELSE, ENDIF

IF, THEN, ELSE, ENDIF

IF, THEN, ELSE, ENDIF

IF, THEN, ELSE, ENDIF

GOTO

GOTO

GOTO

GOTO

GOTO

GOSUB

GOSUB

GOSUB

GOSUB

GOSUB

RETURN

RETURN

RETURN

RETURN

RETURN

END

END

END

END

END

EXIT

EXIT

EXIT

EXIT

EXIT

PUT

PUT

PUT

PUT

PUT

GET

GET

GET

GET

GET

USE

USE

USE

USE

USE

NSP

NSP

NSP

NSP

NSP

CALL

CALL

CALL

CALL

CALL

PRINT

PRINT

PRINT

PRINT

PRINT

OPEN

OPEN

OPEN

OPEN

OPEN

INPUT

INPUT

INPUT

INPUT

INPUT

OUTPUT

OUTPUT

OUTPUT

OUTPUT

OUTPUT

CLOSE

CLOSE

CLOSE

CLOSE

CLOSE

background image

176

• Dodatek

Podr´cznik j´zyka GDL

F

S∏owa kluczowe dla
skryptu cechy

DESCRIPTOR

DESCRIPTOR

DESCRIPTOR

DESCRIPTOR

DESCRIPTOR

COMPONENT

COMPONENT

COMPONENT

COMPONENT

COMPONENT

SURFACE3D

SURFACE3D

SURFACE3D

SURFACE3D

SURFACE3D

VOLUME3D

VOLUME3D

VOLUME3D

VOLUME3D

VOLUME3D

POSITION

POSITION

POSITION

POSITION

POSITION

WALLS

WALLS

WALLS

WALLS

WALLS

COLUMNS

COLUMNS

COLUMNS

COLUMNS

COLUMNS

DOORS

DOORS

DOORS

DOORS

DOORS

WINDOWS

WINDOWS

WINDOWS

WINDOWS

WINDOWS

OBJECTS

OBJECTS

OBJECTS

OBJECTS

OBJECTS

PITCHED_ROOFS

PITCHED_ROOFS

PITCHED_ROOFS

PITCHED_ROOFS

PITCHED_ROOFS

HIP_ROOFS

HIP_ROOFS

HIP_ROOFS

HIP_ROOFS

HIP_ROOFS

LIGHTS

LIGHTS

LIGHTS

LIGHTS

LIGHTS

HATCHES

HATCHES

HATCHES

HATCHES

HATCHES

background image

177

• Dodatek

Podr´cznik j´zyka GDL

G

Zarezerwowane s∏owa
kluczowe

S∏owa kluczowe umieszczone poni˝ej sà zarezerwowane. Istniejà
dla zgodnoÊci.

BAS

BAS

BAS

BAS

BAS

BOX

BOX

BOX

BOX

BOX

GDLBIN

GDLBIN

GDLBIN

GDLBIN

GDLBIN

INPUT

INPUT

INPUT

INPUT

INPUT

LIN

LIN

LIN

LIN

LIN

LINE

LINE

LINE

LINE

LINE

NOD

NOD

NOD

NOD

NOD

NODE

NODE

NODE

NODE

NODE

ORIGO

ORIGO

ORIGO

ORIGO

ORIGO

PARS

PARS

PARS

PARS

PARS

RECT_

RECT_

RECT_

RECT_

RECT_

SFLINE

SFLINE

SFLINE

SFLINE

SFLINE

TET

TET

TET

TET

TET

TETRA

TETRA

TETRA

TETRA

TETRA

TRI

TRI

TRI

TRI

TRI

WALL_

WALL_

WALL_

WALL_

WALL_

background image

178

• Dodatek

Podr´cznik j´zyka GDL

H

Alfabetyczna lista
aktualnych s∏ów
kluczowych GDL

ABS (x)

ABS (x)

ABS (x)

ABS (x)

ABS (x)

ACS (x)

ACS (x)

ACS (x)

ACS (x)

ACS (x)

ADD

ADD

ADD

ADD

ADD

dx, dy, dz

ADD2

ADD2

ADD2

ADD2

ADD2

x, y

ADDX

ADDX

ADDX

ADDX

ADDX

dx

ADDY

ADDY

ADDY

ADDY

ADDY

dy

ADDZ

ADDZ

ADDZ

ADDZ

ADDZ

dz

AND

AND

AND

AND

AND

ARC

ARC

ARC

ARC

ARC

r, alfa, beta

ARC2

ARC2

ARC2

ARC2

ARC2

x, y, r, alfa, beta

ARMC

ARMC

ARMC

ARMC

ARMC

r1, r2, l, h, d, alfa

ARME

ARME

ARME

ARME

ARME

l, r1, r2, h, d

ASN

ASN

ASN

ASN

ASN (x)

ATN

ATN

ATN

ATN

ATN (x)

BASE

BASE

BASE

BASE

BASE

BINARY

BINARY

BINARY

BINARY

BINARY

tryb [, sekcja]

BLOCK

BLOCK

BLOCK

BLOCK

BLOCK

a, b, c

BODY

BODY

BODY

BODY

BODY

status

BPRISM_

BPRISM_

BPRISM_

BPRISM_

BPRISM_

materia∏ góry, materia∏ do∏u, materia∏ boku,

n, h, promieƒ,
x1, y1, maska1, . . . xn, yn, maskan

BRICK

BRICK

BRICK

BRICK

BRICK

a, b, c

background image

179

• Dodatek

Podr´cznik j´zyka GDL

BWALL_

BWALL_

BWALL_

BWALL_

BWALL_

materia∏ z lewej, materia∏ z prawej, materia∏ boku,
wysokoÊç, x1, x2, x3, x4, t, promieƒ,
maska1, maska2, maska3, maska4,
n,
xpocz1, dó∏1, xkon1, góra1, widocz1,
. . .
xpoczn, dó∏n, xkonn, dó∏n, widoczn,
m,
a1, b1, c1, d1,
. . .
am, bm, cm, dm

CALL

CALL

CALL

CALL

CALL

nazwa_makrodefinicji [lista_parametrów]

CALL

CALL

CALL

CALL

CALL

nazwa_makrodefinicji PARAMETERS

PARAMETERS

PARAMETERS

PARAMETERS

PARAMETERS [nazwa

1

=war-

toÊç

1

,… nazwa

n

=wartoÊç

n

]

CIRCLE

CIRCLE

CIRCLE

CIRCLE

CIRCLE

r

CIRCLE2

CIRCLE2

CIRCLE2

CIRCLE2

CIRCLE2

x, y, r

CLOSE

CLOSE

CLOSE

CLOSE

CLOSE

channel

COMPONENT

COMPONENT

COMPONENT

COMPONENT

COMPONENTnazwa_komponentu, iloÊç, jednostka

CONE

CONE

CONE

CONE

CONE

h, r1, r2, alfa1, alfa2

COONS

COONS

COONS

COONS

COONS

n, m, maska,

x11, y11, z11, . . . x1n, y1n, z1n,
x21, y21, z21, . . . x2n, y2n, z2n,
x31, y31, z31, . . . x3m, y3m, z3m,
x41, y41, z41, . . . x4m, y4m, z4m

COOR

COOR

COOR

COOR

COOR

wrap, vert1, vert2, vert3, vert4

COS

COS

COS

COS

COS (x)

CPRISM_

CPRISM_

CPRISM_

CPRISM_

CPRISM_

materia∏ góry, materia∏ boku, materia∏ do∏u,

n, h, x1, y1, maska1, . . . xn, yn, maskan

CROOF_

CROOF_

CROOF_

CROOF_

CROOF_

materia∏ góry, materia∏ boku, materia∏ do∏u,

n,
x

1

, y

1

, x

2

, y

2

, wysokoÊç, kàt,

gruboÊç,

x

1

, y

1

, alfa

1

, maska

1

,…,x

n

, y

n

, alfa

n

, maska

n

CSLAB_

CSLAB_

CSLAB_

CSLAB_

CSLAB_

materia∏ góry, materia∏ do∏u, materia∏ boku,

n, h, x1, y1, z1, maska1, . . . xn, yn, zn,

maskan

background image

180

• Dodatek

Podr´cznik j´zyka GDL

CUTPLANE

CUTPLANE

CUTPLANE

CUTPLANE

CUTPLANE

[x, y, z [, strona]]
polecenia
CUTEND

CUTEND

CUTEND

CUTEND

CUTEND

CUTPLANE

CUTPLANE

CUTPLANE

CUTPLANE

CUTPLANE

kàt
polecenia
CUTEND

CUTEND

CUTEND

CUTEND

CUTEND

CWALL_

CWALL_

CWALL_

CWALL_

CWALL_

materia∏ z lewej, materia∏ z prawej, materia∏ boku,

wysokoÊç, x1, x2, x3, x4, t,
maska1, maska2, maska3, maska4,
xpocz1, dó∏1, xkon1, góra1, widocz1,n,
v
xpoczn, dó∏n, xkonn, góran, widoczn,
m,
a1, b1, c1, d1,
. . .
am, bm, cm, dm

CYLIND

CYLIND

CYLIND

CYLIND

CYLIND

h, r

DEFINE FILL

DEFINE FILL

DEFINE FILL

DEFINE FILL

DEFINE FILL nazwa pat1, pat2, pat3, pat4, pat5, pat6, pat7, pat8,

odst´py, kàt, n,
cz´st

1

, kier

1

, przesx

1

, przesy

1

, m

1

,

d∏ug

11

, . . . d∏ug

m1

...

cz´st

n

, kier

n

, przesx

n

, offsety

n

, m

n

,

d∏ug

n1

, . . . d∏ug

nm

DEFINE LINE_TYPE

DEFINE LINE_TYPE

DEFINE LINE_TYPE

DEFINE LINE_TYPE

DEFINE LINE_TYPE nazwa odst´py, n, d∏ug1, . . . d∏ugn

DEFINE MATERIAL

DEFINE MATERIAL

DEFINE MATERIAL

DEFINE MATERIAL

DEFINE MATERIAL nazwa typ, m1, m2,..., mn

DEFINE STYLE

DEFINE STYLE

DEFINE STYLE

DEFINE STYLE

DEFINE STYLE nazwa czcionek_rodzina, zaczepienie, kod_typ

DEFINE STYLE

DEFINE STYLE

DEFINE STYLE

DEFINE STYLE

DEFINE STYLE nazwa PLOTMAKER, rozmiar, zaczepienie,

nachylenie

DEFINE STYLE

DEFINE STYLE

DEFINE STYLE

DEFINE STYLE

DEFINE STYLE nazwa PLOTTER, rozmiar, zaczepienie, nachyle-

nie

DEFINE TEXTURE

DEFINE TEXTURE

DEFINE TEXTURE

DEFINE TEXTURE

DEFINE TEXTURE

nazwa, nazwa pliku, x, y, maska, kàt

DEL

DEL

DEL

DEL

DEL

n

DEL

DEL

DEL

DEL

DEL

TOP

DESCRIPTOR

DESCRIPTOR

DESCRIPTOR

DESCRIPTOR

DESCRIPTOR ciàg_znaków

EDGE

EDGE

EDGE

EDGE

EDGE

vert1, vert2, pgon1, pgon2, status

ELBOW

ELBOW

ELBOW

ELBOW

ELBOW

r1, alfa, r2

background image

181

• Dodatek

Podr´cznik j´zyka GDL

ELLIPS

ELLIPS

ELLIPS

ELLIPS

ELLIPS

h, r

END

END

END

END

END

EXIT

EXIT

EXIT

EXIT

EXIT

EXOR

EXOR

EXOR

EXOR

EXOR

EXP

EXP

EXP

EXP

EXP (x)

EXTRUDE

EXTRUDE

EXTRUDE

EXTRUDE

EXTRUDE

n, dx, dy, dz, maska, x1, y1, s1, . . . xn, yn, sn

FILL

FILL

FILL

FILL

FILL

spis

FILL

FILL

FILL

FILL

FILL

nazwa_ciàg

FOR

FOR

FOR

FOR

FOR

warunek = wartoÊç_poczàtkowa TO

TO

TO

TO

TO wartoÊç_koƒ-

cowa [STEP

STEP

STEP

STEP

STEP krok]

FRA

FRA

FRA

FRA

FRA (x)

FRAGMENT2

FRAGMENT2

FRAGMENT2

FRAGMENT2

FRAGMENT2 ALL, u˝ycie_bie˝àcych_atrybutów

FRAGMENT2

FRAGMENT2

FRAGMENT2

FRAGMENT2

FRAGMENT2 numer_fragmentów, u˝ycie_bie˝àcych_atrybutó-

w_p∏yty

GET

GET

GET

GET

GET (n)

GOSUB

GOSUB

GOSUB

GOSUB

GOSUB

etykieta

GOTO

GOTO

GOTO

GOTO

GOTO

etykieta

HOTSPOT2

HOTSPOT2

HOTSPOT2

HOTSPOT2

HOTSPOT2

x, y

IF

IF

IF

IF

IF

warunek

GOSUB

GOSUB

GOSUB

GOSUB

GOSUB

etykieta

IF

IF

IF

IF

IF

warunek

GOTO

GOTO

GOTO

GOTO

GOTOetykieta

IF

IF

IF

IF

IF

warunek

THEN

THEN

THEN

THEN

THEN etykieta

IF

IF

IF

IF

IF

warunek THEN

THEN

THEN

THEN

THEN

polecenie [ELSE

[ELSE

[ELSE

[ELSE

[ELSE polecenie]]]]]

IF

IF

IF

IF

IF

warunek THEN

THEN

THEN

THEN

THEN

polecenie 1

polecenie 2

...

[ELSE

[ELSE

[ELSE

[ELSE

[ELSE

polecenie n

polecenie n+1

...]

...]

...]

...]

...]

ENDIF

ENDIF

ENDIF

ENDIF

ENDIF

IND

IND

IND

IND

IND

(FILL , nazwa)

background image

182

• Dodatek

Podr´cznik j´zyka GDL

IND

IND

IND

IND

IND

(LINE_TYPE , nazwa)

IND

IND

IND

IND

IND

(MATERIAL, nazwa)

IND

IND

IND

IND

IND

(STYLE , nazwa)

INPUT

INPUT

INPUT

INPUT

INPUT

(kana∏, rekordID, poleID, wart1 [, wart2,…]

INT

INT

INT

INT

INT (x)

LET

LET

LET

LET

LET

LGT

LGT

LGT

LGT

LGT (x)

LIGHT

LIGHT

LIGHT

LIGHT

LIGHT

czerwony, zielony, niebieski, cieƒ,

promieƒ, alfa, beta, rozm_kàtowe,
odl1, odl2, t∏umienie

LINE2

LINE2

LINE2

LINE2

LINE2

x1, y1, x2, y2

LINE_TYPE

LINE_TYPE

LINE_TYPE

LINE_TYPE

LINE_TYPE

indeks

LINE_TYPE

LINE_TYPE

LINE_TYPE

LINE_TYPE

LINE_TYPE

nazwa

LIN_

LIN_

LIN_

LIN_

LIN_

x1, y1, z1, x2, y2, z2

LOG

LOG

LOG

LOG

LOG (x)

MATERIAL

MATERIAL

MATERIAL

MATERIAL

MATERIAL

indeks

MATERIAL

MATERIAL

MATERIAL

MATERIAL

MATERIAL

nazwa

MAX

MAX

MAX

MAX

MAX (x1,x2,... ,xn)

MESH

MESH

MESH

MESH

MESH

a, b, m, n, maska, z11, z12, . . . z1m, z21, z22, . . .
z2m, . . . znm

MIN

MIN

MIN

MIN

MIN (x1,x2,... ,xn)

MOD

MOD

MOD

MOD

MOD

MODEL

MODEL

MODEL

MODEL

MODEL

SOLID

MODEL

MODEL

MODEL

MODEL

MODEL

SURFACE

MODEL

MODEL

MODEL

MODEL

MODEL

WIRE

MUL

MUL

MUL

MUL

MUL

mx, my, mz

MUL2

MUL2

MUL2

MUL2

MUL2

x, y

MULX

MULX

MULX

MULX

MULX

mx

MULY

MULY

MULY

MULY

MULY

my

MULZ

MULZ

MULZ

MULZ

MULZ

mz

NEXT

NEXT

NEXT

NEXT

NEXT

warunki, nazwa_zmiennej

NOT

NOT

NOT

NOT

NOT (x)

background image

183

• Dodatek

Podr´cznik j´zyka GDL

NSP

NSP

NSP

NSP

NSP

OPEN

OPEN

OPEN

OPEN

OPEN

(filtr, nazwa pliku, parametr)

OR

OR

OR

OR

OR

OUTPUT

OUTPUT

OUTPUT

OUTPUT

OUTPUT

kana∏, rekordID, poleID, wyr1 [, wyr2, …]

PEN

PEN

PEN

PEN

PEN

n

PGON

PGON

PGON

PGON

PGON

n, ivect, status, edge1, edge2, ...., edge

PI

PI

PI

PI

PI

PICTURE

PICTURE

PICTURE

PICTURE

PICTURE

nazwa pliku, a, b, maska

PIPG

PIPG

PIPG

PIPG

PIPG

nazwa pliku, a, b, maska, n, ivect, status, edge1,
edge2, . . . edgen

PLANE

PLANE

PLANE

PLANE

PLANE

n, x1, y1, z1, . . . xn, yn, zn

PLANE_

PLANE_

PLANE_

PLANE_

PLANE_

n, x1, y1, z1, maska1, . . . xn, yn, zn, maskan

POLY

POLY

POLY

POLY

POLY

n, x1, y1, . . . xn, yn

POLY2

POLY2

POLY2

POLY2

POLY2

n, wype∏nienie, x1, y1, .... xn, yn

POLY2_

POLY2_

POLY2_

POLY2_

POLY2_

n, wype∏nienie, x1, y1, maska1, .... xn, yn, maskan

POLY_

POLY_

POLY_

POLY_

POLY_

n, x1, y1, maska1, . . . xn, yn, maskan

POSITION

POSITION

POSITION

POSITION

POSITION

s∏owo kluczowe

PRINT

PRINT

PRINT

PRINT

PRINT

[wyra˝enie] [,wyra˝enie]...

PRISM

PRISM

PRISM

PRISM

PRISM

n, h, x1, y1, . . . xn, yn

PRISM_

PRISM_

PRISM_

PRISM_

PRISM_

n, h, x1, y1, maska1, . . . xn, yn, maskan

PROJECT2

PROJECT2

PROJECT2

PROJECT2

PROJECT2

kod_projekcji, metoda

PUT

PUT

PUT

PUT

PUT

wyra˝enie [ , wyra˝enie ] . . .

PYRAMID

PYRAMID

PYRAMID

PYRAMID

PYRAMID

n, h, mask, x1, y1, s1, . . . xn, yn, sn

RADIUS

RADIUS

RADIUS

RADIUS

RADIUS

rmin, rmax

RECT

RECT

RECT

RECT

RECT

a, b

RECT2

RECT2

RECT2

RECT2

RECT2

x1, y1, x2, y2

RECT_

RECT_

RECT_

RECT_

RECT_

a, b, e1, e2

REQ

REQ

REQ

REQ

REQ

(tekst_sterujàcy)

REQUEST

REQUEST

REQUEST

REQUEST

REQUEST

(nazwa_pytania, nazwa | index, zmien1 [, zmienn2,
....])

RESOL

RESOL

RESOL

RESOL

RESOL

n

RETURN

RETURN

RETURN

RETURN

RETURN

background image

184

• Dodatek

Podr´cznik j´zyka GDL

REVOLVE

REVOLVE

REVOLVE

REVOLVE

REVOLVE

n, alfa, maska, x1, y1, s1, . . . xn, yn, sn

RND

RND

RND

RND

RND (x)

ROT

ROT

ROT

ROT

ROT

x, y, z, alfa

ROT2

ROT2

ROT2

ROT2

ROT2

alfaz

ROTX

ROTX

ROTX

ROTX

ROTX

alfax

ROTY

ROTY

ROTY

ROTY

ROTY

alfay

ROTZ

ROTZ

ROTZ

ROTZ

ROTZ

alfaz

RULED

RULED

RULED

RULED

RULED

n, maska,

u1, v1, s1, . . . un, vn, sn,
x1, y1, z1, . . . xn, yn, zn

SET FILL

SET FILL

SET FILL

SET FILL

SET FILL indeks

SET FILL

SET FILL

SET FILL

SET FILL

SET FILL nazwa

SET LINE_TYPE

SET LINE_TYPE

SET LINE_TYPE

SET LINE_TYPE

SET LINE_TYPE indeks

SET LINE_TYPE

SET LINE_TYPE

SET LINE_TYPE

SET LINE_TYPE

SET LINE_TYPE nazwa

SET MATERIAL

SET MATERIAL

SET MATERIAL

SET MATERIAL

SET MATERIAL indeks

SET MATERIAL

SET MATERIAL

SET MATERIAL

SET MATERIAL

SET MATERIAL nazwa

SET STYLE

SET STYLE

SET STYLE

SET STYLE

SET STYLE indeks

SET STYLE

SET STYLE

SET STYLE

SET STYLE

SET STYLE nazwa

SGN

SGN

SGN

SGN

SGN (x)

SHADOW

SHADOW

SHADOW

SHADOW

SHADOW

AUTO

SHADOW

SHADOW

SHADOW

SHADOW

SHADOW

OFF

SHADOW

SHADOW

SHADOW

SHADOW

SHADOW

ON

SIN

SIN

SIN

SIN

SIN (x)

SLAB

SLAB

SLAB

SLAB

SLAB

n, h, x1, y1, z1, . . . xn, yn, zn

SLAB_

SLAB_

SLAB_

SLAB_

SLAB_

n, h, x1, y1, z1, maska1, . . . xn, yn, zn, maskan

SPHERE

SPHERE

SPHERE

SPHERE

SPHERE

r

SPLINE2

SPLINE2

SPLINE2

SPLINE2

SPLINE2

n, status, x

1

, y

1

, kàt

1

,…, x

n

, y

n

, kàt

n

SQR

SQR

SQR

SQR

SQR (x)

STR

STR

STR

STR

STR

(wyra˝enie_numeryczne, d∏ugoÊç, tolerancja)

STR

STR

STR

STR

STR

(format, wyra˝enie_numeryczne)

STW

STW

STW

STW

STW

(wyra˝enie)

STYLE

STYLE

STYLE

STYLE

STYLE

indeks

background image

185

• Dodatek

Podr´cznik j´zyka GDL

STYLE

STYLE

STYLE

STYLE

STYLE

nazwa

SURFACE3D ()

SURFACE3D ()

SURFACE3D ()

SURFACE3D ()

SURFACE3D ()

SWEEP

SWEEP

SWEEP

SWEEP

SWEEP

n, m, alfa, skala, maska,
u1, v1, s1, . . . un, vn, sn,
x1, y1, z1, . . . xm, ym, zm

TAN

TAN

TAN

TAN

TAN (x)

TEXT

TEXT

TEXT

TEXT

TEXT

d, 0, wyra˝enie

TEXT2

TEXT2

TEXT2

TEXT2

TEXT2

x, y, ciàg

TOLER

TOLER

TOLER

TOLER

TOLER

d

TUBE

TUBE

TUBE

TUBE

TUBE

n, m, maska,

u1, w1, s1,
. . .
un, wn, sn,
x1, y1, z1, kàt1,
. . .
xm, ym, zm, katm

USE

USE

USE

USE

USE (n)

VECT

VECT

VECT

VECT

VECT

x, y, z

VERT

VERT

VERT

VERT

VERT

x, y, z

VOLUME3D ()

VOLUME3D ()

VOLUME3D ()

VOLUME3D ()

VOLUME3D ()

XFORM

XFORM

XFORM

XFORM

XFORM

a11, a12, a13, a14,

a21, a22, a23, a24,
a31, a32, a33, a34

background image

186

• Dodatek

Podr´cznik j´zyka GDL

I

Okna pomocy GDL

background image

187

• Dodatek

Podr´cznik j´zyka GDL

background image

188

• Dodatek

Podr´cznik j´zyka GDL

background image

189

• Dodatek

Podr´cznik j´zyka GDL

background image

190

• Dodatek

Podr´cznik j´zyka GDL

background image

191

• Dodatek

Podr´cznik j´zyka GDL

background image

192

• Dodatek

Podr´cznik j´zyka GDL

J

Dodatek "Zapis/odczyt
tekstu"

Oto przyk∏adowy dodatek demonstrujàcy mo˝liwoÊci operacji wej-
Êcia/wyjÊcia na plikach. Inne dodatki tego typu dost´pne sà w
firmie Graphisoft oraz u lokalnych dystrybutorów.

Ten dodatek interpretuje tekst zawarty na liÊcie parametrów pole-
ceƒ OPEN

OPEN

OPEN

OPEN

OPEN, INPUT

INPUT

INPUT

INPUT

INPUT, OUTPUT

OUTPUT

OUTPUT

OUTPUT

OUTPUT w skrypcie skryptu GDL.

Zak∏ada si´, ˝e teczka o nazwie "Teczka Danych ArchiCADa" istnie-
je w teczce ArchiCADa dla plików u˝ytkownika. (Nazwa tej teczki
jest zdefiniowana w zasobach dodatku i mo˝e byç przet∏umaczona -
[i jest]). JeÊli tej teczki nie ma, dodatek ten jà stworzy. Ta teczka
mo˝e mieç podteczki w których ten dodatek b´dzie szuka∏ istniejà-
cych plików. Mo˝liwe jest czytanie i zapis do plików typu 'TEXT'.

1. kana∏ = OPEN

OPEN

OPEN

OPEN

OPEN (filtr, nazwa_pliku, ciàg_parametrów)

filtr :

wewn´trzna nazwa dodatku, w tym przypad-

ku 'TEXT'

nazwa_pliku: nazwa pliku, który ma byç otwarty

ciàg_parametrów:

parametr specyficzny dla dodatku, zawiera

znaki rozdzielajàce oraz sposób otwarcia pliku

Otwiera plik. JeÊli plik do którego chcesz pisaç nie istnieje - tworzy
ten plik. JeÊli plik, z którego chcesz czytaç nie istnieje - wyÊwietla-
ny jest komunikat b∏´du.

Zwracanà wartoÊcià jest dodatnia liczba ca∏kowita, która b´dzie
identyfikowa∏a okreÊlony plik. Ta wartoÊç b´dzie s∏u˝y∏a w przy-
sz∏oÊci do operacji na pliku.

Ciàg parametrów mo˝e zawieraç nast´pujàce teksty:

• SEPARATOR

SEPARATOR

SEPARATOR

SEPARATOR

SEPARATOR = po tym s∏owie kluczowym nale˝y zdefiniowaç w

pojedyƒczych cudzys∏owach ('') znak, który ma rozdzielaç kolumny
w pliku tekstowym (zarówno do pisania i czytania).

Specjalnymi przypadkami sà znak tabulatora ('\t') i nowej linii ('\n')

background image

193

• Dodatek

Podr´cznik j´zyka GDL

• MODE

MODE

MODE

MODE

MODE = po tym s∏owie kluczowym nale˝y zdefiniowaç sposób

otwarcia pliku. Do wyboru sà tylko trzy sposoby:

RO

RO

RO

RO

RO

(tylko do czytania)

WA

WA

WA

WA

WA

(tylko do zapisu, dodawanie) na koƒcu pliku

WO

WO

WO

WO

WO

tylko do zapisu, przepisywanie) wszystkie dane zachowane

wczeÊniej w pliku zostanà stracone!

Plik nie mo˝e byç otwarty do czytania i pisania jednoczeÊnie.

Zawsze nale˝y umieszczaç przecinek (,) pomi´dzy s∏owami kluczo-
wymi SEPARATOR i MODE

JeÊli u˝yjesz nie istniejàcych s∏ów kluczowych lub jeÊli znaki roz-
dzielajàce sà niew∏aÊciwe lub nie ma niczego w ciàgu parametrów -
Dodatek u˝yje domyÊlnych ustawieƒ SEPARATOR = '\t', MODE =
RO.

Przyk∏ad:

ch1 = OPEN ("TEXT", "plik1", "SEPARATOR

=';', MODE=RO")

ch2 = OPEN ("TEXT", "plik2", "")
ch3 = OPEN ("TEXT", "plik3",

"SEPARATOR='\n', MODE=WO")

2. n = INPUT

INPUT

INPUT

INPUT

INPUT (kana∏, rekordID, poleID, zmienna1 [, zmienna2,

...])

rekordID:

numer wiersza (numerycznie lub tekstowo)

poleID:

numer kolumny w danym wierszu

To polecenie czyta z pliku okreÊlonego przez kana∏ od podanej po-
zycji poczàtkowej tyle wartoÊci, ile zosta∏o podanych zmiennych.
Musi byç co najmniej jedna zmienna. Wczytane wartoÊci zostajà
przyporzàdkowane zmiennym w podanej kolejnoÊci. WartoÊci
mogà byç numeryczne lub tekstowe niezale˝nie od typu zdefinio-
wanego dla parametrów. W liÊcie parametrów musi byç
przynajmniej jedna wartoÊç. Funkcja umieszcza wartoÊci odczytu w
sekwencji parametrów. WartoÊci mogà byç numeryczne, zdania
niezale˝ne od typu parametru zdefiniowanego dla nich. W miejsce
wartoÊci w pliku mogà byç umieszczane tak˝e wyra˝enia nume-
ryczne lub ciàgi wyra˝eƒ jak równie˝ sta∏e matematyczne GDL. Te
wyra˝enia sà zmieniane podczas procesu ∏adowania.

Przyk∏ad: w pliku tekstowym (separator jest ','):

1.23,1'2","aaa",2 * SIN(45) + 1,SQR (3)

Funkcja zwraca liczb´ pomyÊlnie wczytanych wartoÊci,

lub (-1) jeÊli napotkany zostanie koniec pliku.

background image

194

• Dodatek

Podr´cznik j´zyka GDL

Numer wiersza i kolumny musi byç liczbà naturalnà, w przeciw-
nym razie otrzymasz informacj´ o b∏´dzie.

JeÊli wiersz lub kolumna sà niew∏aÊciwe nic nie zostanie wczytane
( n = 0)

Gdy mo˝na okreÊliç wiersz i kolumn´ to tyle wartoÊci zostanie
wczytanych ile zosta∏o podanych zmiennych, jeÊli jest wi´cej
zmiennych ni˝ wartoÊci - zmienne bez odpowiadajàcych im warto-
Êci zostanà wyzerowane.

JeÊli kolumna jest pusta ( to znaczy nie ma tekstu pomi´dzy znaka-
mi rozdzielajàcymi) zmienne b´dà wyzerowane.

Przyk∏ad:

nr = INPUT (ch1, 1, 1, v1, v2, v3)

! wczytanie trzech wartoÊci poczàwszy
!od pierwszej kolumny pierwszego wiersza

PRINT nr, v1, v2, v3

3. OUTPUT

OUTPUT

OUTPUT

OUTPUT

OUTPUT kana∏, rekordID, poleID, wyra˝enie1 [, wyra˝enie2, ...]

rekordID:

jeÊli dodatni - po zapisaniu wartoÊci zostanie
zakoƒczony wiersz

poleID :

bez znaczenia, ta wartoÊç nie jest u˝yta

Zapisuje do pliku okreÊlonego przez kana∏ tyle wartoÊci ile zosta∏o
podanych wyra˝en (zgodnie z podanà pozycjà). Musi byç co naj-
mniej jedno wyra˝enie. Typy zapisanych wartoÊci sà zgodne z
typami wyra˝eƒ.

W przypadku dodatku tekstowego polecenie OUTPUT (w zale˝no-
Êci od sposobu otwarcia pliku) zama˝e poprzednià zawartoÊç pliku
lub doda na koƒcu pliku podane wartoÊci wpisujàc pomi´dzy nie
znak separatora okreÊlony podczas otwarcia pliku. W tym przypad-
ku pozycja nie jest interpretowana.

Parametr rekordID steruje dodawaniem nowych wierszy.

JeÊli rekordID jest dodatni po zapisaniu wartoÊci dodany zostanie
nowy wiersz, w przeciwnym przypadku po ostatniej wartoÊci zo-
stanie zapisany znak rozdzielajàcy kolumny.

background image

195

• Dodatek

Podr´cznik j´zyka GDL

Przyk∏ad:

ciàg = "Date: 19.01.1996"
a = 1.5

OUTPUT ch2, 1, 0, ciàg

! po tekÊcie wyst´puje nowy wiersz
OUTPUT ch2, 0, 0, a, a + 1, a + 2

! znak separatora po a + 2 bez nowego szeregu

4. CLOSE

CLOSE

CLOSE

CLOSE

CLOSE kana∏

Zamyka plik identyfikowany przez wartoÊç kana∏.

Przyk∏ad:

Skrypt GDL, który skopiuje zawartoÊç pliku "f1" jednoczeÊnie do
plików "f2" i "f3", ale zapisze wartoÊci rozdzielone tabulatorami z
pliku "f1" w oddzielne wiersze plików "f2" i "f3".

ch1 = OPEN ("TEXT", "f1", "MODE=ro")

ch2 = OPEN ("TEXT", "f2", "SEPARATOR='\n', MODE=wo")
ch3 = OPEN ("TEXT", "f3", "SEPARATOR='\n', MODE=wo")

i = 1
1:

n = INPUT (ch1, i, 1, var1, var2, var3, var4)

IF n <> -1 THEN
OUTPUT ch2, 1, 0, var1, var2, var3, var4

OUTPUT ch3, 1, 0, var1, var2, var3, var4
i = i + 1

GOTO 1

ELSE
GOTO 2

ENDIF
2:

CLOSE ch1

CLOSE ch2
CLOSE ch3

END

background image

196

• Skorowidz

Podr´cznik j´zyka GDL

Skorowidz

A

ABS

128

ACS

128

ADD

28

ADD2

30

ADDX

28

ADDY

28

ADDZ

28

ARC

36

ARC2

105, 138

ARMC

54, 138

ARME

54, 138

ASN

128

ATN

128

B

BASE

94

BINARY

95

BLOCK

38

BODY

92

BPRISM_

44

BRICK

38

BWALL_

50

C

CALL

160

CEILS

113

CIRCLE

36, 138

CIRCLE2

105, 138

CLOSE

165

COLUMNS

113

COMPONENT

112

CONE

40, 138

COONS

78

COOR

91

COS

128

CPRISM_

43

CROOF_

51

CSLAB_

46

CUTEND

96

CUTPLANE

96

CWALL_

47

CYLIND

38, 138

D

DEFINE FILL

149

DEFINE LINE_TYPE

150

DEFINE MATERIAL

144

DEFINE STYLE

151

DEFINE TEXTURE

147

DESCRIPTOR

112

DOORS

113

E

EDGE

89

ELBOW

55, 138

Elementy 3D

37

ELLIPS

39, 138

END

156

ENDIF

155

EXIT

156

EXP

128

F

FILL

143

FOR

154

FRA

128

FRAGMENT2

108

G

GDL

2

GET

157

GOSUB

156

GOTO

156

H

HATCHES

113

background image

197

• Skorowidz

Podr´cznik j´zyka GDL

HIP_ROOFS

113

HOTSPOT2

102

I

IF

155

IND

135

INPUT

164

INT

128

L

LET

138

LGT

128

LIGHT

83

LIGHTS

113

LIN_

34

LINE_TYPE

143

LINE2

102

LOG

129

M

MATERIAL

142

MAX

129

MESH

81

MIN

129

MODEL

141

Modulo

127

MUL

29

MULX

29

MULY

29

MULZ

29

N

Najprostsze polecenia

10

NEXT

154

NOT

129

NSP

158

O

OBJECTS

113

OPEN

164

OUTPUT

165

P

PEN

140

PGON

90

PI

128

PICTURE

86

PIPG

91

PITCHED_ROOFS

113

PLANE

35

PLANE_

35

POLY

34

POLY_

35

POLY2

103

POLY2_

104

POSITION

113

PRINT

163

PRISM

40

PRISM_

41

PROJECT2

109

PUT

157

PYRAMID

61

R

RADIUS

138

RECT

34

RECT2

102

REQ

129

REQUEST

130

RESOL

139

RETURN

156

REVOLVE

63, 138

RND

129

ROT

30

ROT2

30

ROTX

29

ROTY

29

ROTZ

29

RULED

67

S

SET FILL

140, 143

SET LINE_TYPE

143

SET MATERIAL

142

SET STYLE

140

SGN

128

SHADOW

142

background image

198

• Skorowidz

Podr´cznik j´zyka GDL

SIN

128

SLAB

46

SLAB_

46

SPHERE

39, 138

SPLINE2

106

SQR

128

STR

131

STW

135

STYLE

140

SURFACE3D

113

SWEEP

70

T

TAN

128

TEXT

87

TEXT2

108

THEN

155

TOLER

139

TUBE

73

U

USE

158

V

VECT

89

VERT

89

VOLUME3D

113

W

WALLS

113

WINDOWS

113

X

XFORM

30


Document Outline


Wyszukiwarka

Podobne podstrony:
Obiekty martyrologii polskiej
R 6 1 Obiektowy model zapytan
Wykład 6 2009 Użytkowanie obiektu
05 Odwzorowanie podstawowych obiektów rysunkowych
Automatyzacja w KiC (w 2) Obiekty reg
na niebie są widoczne różne obiekty astronomiczne
02a URAZY CZASZKOWO MÓZGOWE OGÓLNIE 2008 11 08
obiektywne metody oceny postawy ciała (win 1997 2003)
30 Obciążenia obiektów budowlanych, mostów drogowych i kolejowych
Zasady zasilania energią obiektu szpitalnego
Obiekty Graficzne w PowerPoint
Metodyka Obiektowa pojęcia podstawowe
MT st w 02a
Lokalizacja obiektu szpitalnego(6)
Wykład II Analiza podstawowych pojęć eksploatacyjnych i użytkowanie obiektów ED
Dowody za obiektywno¶ci± ewolucji z zakresu morfologii porównawczej 1 cz

więcej podobnych podstron