1
• Rozdzia∏ 1: Wprowadzenie
Podr´cznik j´zyka GDL
1
Wprowadzenie
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.
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.
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.
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.
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.
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.
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-
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-
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.
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_
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.
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.
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.
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.
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.
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.
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.
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.
20
• Rozdzia∏ 1: Wprowadzenie
Podr´cznik j´zyka GDL
21
• Rozdzia∏ 2: Sk∏adnia GDL
Podr´cznik j´zyka GDL
2
Sk∏adnia GDL
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.
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.
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.
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.
26
• Rozdzia∏ 2: Sk∏adnia GDL
Podr´cznik j´zyka GDL
27
Rozdzia∏ 3: Przekszta∏cenia uk∏adu wspó∏rz´dnych
Podr´cznik j´zyka GDL
3
Przekszta∏cenia uk∏adu
wspó∏rz´dnych
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
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
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
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.
32
Rozdzia∏ 3: Przekszta∏cenia uk∏adu wspó∏rz´dnych
Podr´cznik j´zyka GDL
33
• Rozdzia∏ 4: Figury p∏askie GDL
Podr´cznik j´zyka GDL
4
Figury p∏askie GDL
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
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
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.
37
• Rozdzia∏ 5: Elementy przestrzenne
Podr´cznik j´zyka GDL
5
Elementy przestrzenne
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.
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
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
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):
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
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
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
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
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.
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.
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.
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.
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_
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
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,
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
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)
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
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
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.
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.
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
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
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.
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
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.
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:
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
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
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
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:
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
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.
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:
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
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.
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.
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
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.
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.
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.
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:
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
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.
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.
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,
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.
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
99
• Rozdzia∏ 5: Elementy przestrzenne
Podr´cznik j´zyka GDL
CUTPLANE 60
CUTPLANE -120
BRICK 2, 2, 2
BRICK 2, 2, 2
CUTEND
CUTEND
100
• Rozdzia∏ 5: Elementy przestrzenne
Podr´cznik j´zyka GDL
101
• Rozdzia∏ 6: Elementy dla symboli 2D
Podr´cznik j´zyka GDL
6
Elementy dla symboli 2D
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
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.
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
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.
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
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
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
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
110
• Rozdzia∏ 6: Elementy dla symboli 2D
Podr´cznik j´zyka GDL
Przyk∏ad:
111
• Rozdzia∏ 7: Skrypt cech
Podr´cznik j´zyka GDL
7
Skrypt cech
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"
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ƒ.
114
• Rozdzia∏ 7: Skrypt cech
Podr´cznik j´zyka GDL
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
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.
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
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,
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
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Êç.
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
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
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
124
• Rozdzia∏ 8: Dodatkowe kody statusu GDL
Podr´cznik j´zyka GDL
125
• Rozdzia∏ 9: Narz´dzia matematyczne
Podr´cznik jezyka GDL
9
Narz´dzia matematyczne
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
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.
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.
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"
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ç
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)
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
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
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
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).
136
• Rozdzia∏ 9: Narz´dzia matematyczne
Podr´cznik j´zyka GDL
137
• Rozdzia∏ 10: Atrybuty
Podr´cznik j´zyka GDL
10
Atrybuty
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
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.
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.
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:
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.
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.
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
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]
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.
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
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
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´).
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
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)
152
• Rozdzia∏ 10: Atrybuty
Podr´cznik j´zyka GDL
153
• Rozdzia∏ 11: Instrukcje sterowania
Podr´cznik j´zyka GDL
11
Instrukcje sterowania
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.
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.
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.
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
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
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,
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
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"
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.
163
• Rozdzia∏ 11: Instrukcje sterowania
Podr´cznik j´zyka GDL
11.4 Instrukcje komunikacji z
u˝ytkownikiem
[ 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
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.
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∏.
166
• Rozdzia∏ 11: Instrukcje sterowania
Podr´cznik j´zyka GDL
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"
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
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
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.
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
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
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
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
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
OPEN
OPEN
OPEN
OPEN
OPEN
INPUT
INPUT
INPUT
INPUT
INPUT
OUTPUT
OUTPUT
OUTPUT
OUTPUT
OUTPUT
CLOSE
CLOSE
CLOSE
CLOSE
CLOSE
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
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_
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
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
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
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)
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)
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
[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
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
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
186
• Dodatek
Podr´cznik j´zyka GDL
I
Okna pomocy GDL
187
• Dodatek
Podr´cznik j´zyka GDL
188
• Dodatek
Podr´cznik j´zyka GDL
189
• Dodatek
Podr´cznik j´zyka GDL
190
• Dodatek
Podr´cznik j´zyka GDL
191
• Dodatek
Podr´cznik j´zyka GDL
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')
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.
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.
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
196
• Skorowidz
Podr´cznik j´zyka GDL
Skorowidz
A
ABS
ACS
ADD
ADD2
ADDX
ADDY
ADDZ
ARC
ARC2
ARMC
ARME
ASN
ATN
B
BASE
BINARY
BLOCK
BODY
BPRISM_
BRICK
BWALL_
C
CALL
CEILS
CIRCLE
CIRCLE2
CLOSE
COLUMNS
COMPONENT
CONE
COONS
COOR
COS
CPRISM_
CROOF_
CSLAB_
CUTEND
CUTPLANE
CWALL_
CYLIND
D
DEFINE FILL
DEFINE LINE_TYPE
DEFINE MATERIAL
DEFINE STYLE
DEFINE TEXTURE
DESCRIPTOR
DOORS
E
EDGE
ELBOW
Elementy 3D
ELLIPS
END
ENDIF
EXIT
EXP
F
FILL
FOR
FRA
FRAGMENT2
G
GDL
GET
GOSUB
GOTO
H
HATCHES
197
• Skorowidz
Podr´cznik j´zyka GDL
HIP_ROOFS
HOTSPOT2
I
IF
IND
INPUT
INT
L
LET
LGT
LIGHT
LIGHTS
LIN_
LINE_TYPE
LINE2
LOG
M
MATERIAL
MAX
MESH
MIN
MODEL
Modulo
MUL
MULX
MULY
MULZ
N
Najprostsze polecenia
NEXT
NOT
NSP
O
OBJECTS
OPEN
OUTPUT
P
PEN
PGON
PI
PICTURE
PIPG
PITCHED_ROOFS
PLANE
PLANE_
POLY
POLY_
POLY2
POLY2_
POSITION
PRISM
PRISM_
PROJECT2
PUT
PYRAMID
R
RADIUS
RECT
RECT2
REQ
REQUEST
RESOL
RETURN
REVOLVE
RND
ROT
ROT2
ROTX
ROTY
ROTZ
RULED
S
SET FILL
SET LINE_TYPE
SET MATERIAL
SET STYLE
SGN
SHADOW
198
• Skorowidz
Podr´cznik j´zyka GDL
SIN
SLAB
SLAB_
SPHERE
SPLINE2
SQR
STR
STW
STYLE
SURFACE3D
SWEEP
T
TAN
TEXT
TEXT2
THEN
TOLER
TUBE
U
USE
V
VECT
VERT
VOLUME3D
W
WALLS
WINDOWS
X
XFORM