7. semester speciale rapport for -...

53
Udført af: Uddannelsessted: Udgivet: Jørn Gaarde Andersen Vitus Bering Danmark 2005.06.09 Fabrikvej 4, Lej 19 Chr. M. Østergaards Vej 4 8700 Horsens 8700 Horsens Mobil: 20 64 36 07 Telefon: 76 25 50 00 Telefax: 76 25 51 00 7. Semester speciale Rapport for: Programmering af bygningsdele i ArchiCAD ved brug af GDL Script

Upload: nguyenquynh

Post on 07-Apr-2018

221 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

Udført af: Uddannelsessted: Udgivet:

Jørn Gaarde Andersen Vitus Bering Danmark 2005.06.09

Fabrikvej 4, Lej 19 Chr. M. Østergaards Vej 4 8700 Horsens 8700 Horsens Mobil: 20 64 36 07 Telefon: 76 25 50 00 Telefax: 76 25 51 00

7. Semester speciale

Rapport for:

Programmering af bygningsdele

i ArchiCAD ved brug af GDL Script

Page 2: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

2

Titelblad

Titel

7. Semester speciale

Rapport for:

Programmering af bygningsdele i ArchiCAD ved brug af GDL Script

Forfatter

Navn: Jørn Gaarde Andersen

Adresse: Fabrikvej 4, Lej 19

8700 Horsens

Telefon: 20 64 36 07

Konsulent

Navn: Kirsten Sommerlade

Adresse: Bygge og anlægsdivisionen

Chr. M. Østergaardsvej 4

8700 Horsens

Tlf.: 76 25 50 42

eller

76 25 50 67

Uddannelsessted

Navn: Vitus Bering Danmark

Adresse: Chr. M. Østergaards Vej 4

8700 Horsens

Telefon: 76 25 50 00

Telefax: 76 25 51 00

Page 3: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

3

Udgivelse

Udgivet i forbindelse med afgangsspeciale, 7. semester forårs-semestret 2005.

Udgivet: 09. juni 2005

Antal eksemplarer

Uddannelsessted: 2 eksemplarer

Personligt brug: 1 eksemplar

Resume

Rapporten beskriver arbejdet med specialet ” Programmering af bygningsdele i ArchiCAD

ved brug af GDL Script”.

Beskrivelsen vedrører problemstillinger, eventuelle problemer ved løsning af

problemstillingerne og løsninger dertil.

Page 4: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

4

Forord

Under mit praktikophold på tegnestuen ”Arkitekt Kontoret”, i Tønder, brugte jeg

tegneprogrammet ”ArchiCAD” til at visualisere projekterne i 3-D. Under brugen manglede

jeg den evne at kunne forbedre de forud definerede bygningsdele, og jeg følte ligeledes at

jeg havde brug for at kunne programmere nye bygningsdele som man kunne bruge

fremover på tegnestuen, bygningsdele som bedre kunne vise kunderne hvordan deres

bygning ville komme til at se ud.

Da jeg ikke havde den viden, havde jeg valgt at lave 7. semesters speciale:

”Programmering af bygningsdele i ArchiCAD ved brug af GDL Script”.

Rapporten beskriver grundlæggende hvorledes specialets problemstillinger er blevet løst.

Hvilke problemer der har været ved specialet, og hvordan disse kunne løses.

Rapporten skal læses i sammenhæng med ”Programmeringsmanualen” som er vedlagt

som bilag.

For at være i stand til at lære programmering med GDL Script, er der brugt

brugermanualen (Graphisoft GDL Reference Manual, version 6.5), samt tegneprogrammet

”ArchiCAD”.

Rapporten er udført selvstændigt med konsulent bistand.

___________________________________

Udført af: Jørn Gaarde Andersen

Page 5: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

5

Indholdsfortegnelse

Forord ..................................................................................................................................4

Indholdsfortegnelse .............................................................................................................5

Indledning ............................................................................................................................9

Valg af speciale: ..................................................................................................................9

Hvad er ArchiCAD og GDL scripts:......................................................................................9

Rapportens opbygning.......................................................................................................10

Arbejdsform .......................................................................................................................10

Problemformulering ...........................................................................................................11

Problemstillinger ................................................................................................................11

Arbejdsmetode for problemløsning ....................................................................................11

Brugermanual............................................................................................................11

Tegneprogrammet.....................................................................................................12

Hvad skyldes valget af speciale.........................................................................................12

Udfærdigelse af videnformidling ........................................................................................12

Specialeafrapportering ..............................................................................................12

Programmeringsmanual ............................................................................................13

1. Opbygning af brugermanual ..........................................................................................14

Problemstilling ...........................................................................................................14

Problemer..................................................................................................................14

Løsning......................................................................................................................14

Eksempel 1.2.1..........................................................................................................15

Eksempel 1.3.1..........................................................................................................16

Delkonklusion ............................................................................................................16

2. Opbygning af programmeringskoder..............................................................................18

2.1 Opbygning af indekset (programmeringskoderne).....................................................18

Problemstilling ...........................................................................................................18

Problemer..................................................................................................................18

Løsning......................................................................................................................18

Delkonklusion ............................................................................................................19

Page 6: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

6

2.2 Brug af programmeringskoderne under programmering..............................................19

Problemstilling ...........................................................................................................19

Problemer..................................................................................................................19

Løsning......................................................................................................................20

Eksempel 2.2.2.1.......................................................................................................21

Eksempel 2.2.2.2.......................................................................................................21

Eksempel 2.2.3.1.......................................................................................................24

Eksempel 2.2.4.1.......................................................................................................25

Eksempel 2.2.4.2.......................................................................................................27

Delkonklusion ............................................................................................................27

2.3 Logisk opbygning af indeks..........................................................................................28

Problemstilling ...........................................................................................................28

Løsning......................................................................................................................28

Delkonklusion ............................................................................................................28

3. Opsætning af programmeringsmanual...........................................................................29

Problemstilling ...........................................................................................................29

Løsning......................................................................................................................29

Delkonklusion ............................................................................................................29

4. Oprettelse af GDL objekt ...............................................................................................30

Problemstilling ...........................................................................................................30

Løsning......................................................................................................................30

Eksempel 4.1.1..........................................................................................................30

Eksempel 4.2.1..........................................................................................................35

Delkonklusion ............................................................................................................35

5. Brug af indekset under programmering..........................................................................36

Problemstilling ...........................................................................................................36

Løsning......................................................................................................................36

Delkonklusion ............................................................................................................36

6. Styring af materialer/teksturer under programmering.....................................................37

Problemstilling ...........................................................................................................37

Løsning......................................................................................................................37

Page 7: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

7

Delkonklusion ............................................................................................................37

7. Programmering af glasobjekter......................................................................................38

Problemstilling ...........................................................................................................38

Løsning......................................................................................................................38

Delkonklusion ............................................................................................................38

8. Programmering af lys objekter .......................................................................................39

Problemstilling ...........................................................................................................39

Problemer..................................................................................................................39

Løsning......................................................................................................................39

Delkonklusion ............................................................................................................39

9. Modificering af GDL objekter fra tegneflade...................................................................40

Problemstilling ...........................................................................................................40

Løsning......................................................................................................................40

Eksempel 9.1.1..........................................................................................................40

Eksempel 9.2.1..........................................................................................................41

Delkonklusion ............................................................................................................42

10. Omdefinering af 3-D objekt fra ArchiCAD til GDL script...............................................43

Problemstilling ...........................................................................................................43

Problemer..................................................................................................................43

Løsning......................................................................................................................43

Eksempel 10.1.1........................................................................................................43

Eksempel 10.2.1........................................................................................................45

Delkonklusion ............................................................................................................47

11 Omdefinering af 3-D objekt fra AutoCAD til GDL script.................................................48

Problemstilling ...........................................................................................................48

Problemer..................................................................................................................48

Løsning......................................................................................................................48

Eksempel 11.1.1........................................................................................................48

Delkonklusion ............................................................................................................48

Konklusion .........................................................................................................................49

Kilder..................................................................................................................................52

Page 8: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

8

Bilag ...................................................................................................................................53

Page 9: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

9

Indledning

Valg af speciale:

Da jeg i 6. semester var i praktik på tegnestuen ”Arkitekt Kontoret”, i Tønder, arbejdede jeg

størstedelen af tiden med tegneprogrammet ”ArchiCAD”, grunden til at jeg brugte

programmet var for at kunne visualisere projekterne i 3-D. Under den daglige brug havde

jeg brug for at kunne forbedre de forud definerede bygningsdele, og jeg manglede også

evnen til at programmere nye bygningsdele, som tegnestuen kunne bruge fremover,

bygningsdele som bedre kunne vise kunderne hvordan deres bygning ville komme til at se

ud efter endt udførelse. Da jeg ikke havde den fornødne viden til programmering med GDL

script, valgte jeg at lave 7. semester specialet: ”Programmering af bygningsdele i

ArchiCAD ved brug af GDL Script”.

Hvad er ArchiCAD og GDL scripts:

Tegneprogrammet ArchiCAD er et program der genererer intelligente 3D-objekter, hvor

brugeren på én gang tegner i snit, plan og 3d-mode.

Programmet fungerer i princippet som Architectural Desktop; hvor man kan indsætte

objekter der i plantegningen genererer ét planobjekt som har ét udseende, og tilknyttet

dertil er et 3-d objekt som kun bliver vist på tegningen i 3-d animation, renderede billeder,

perspektivbilleder osv.

Programmet ArchiCAD har som standard et Bibliotek hvor man kan hente forskellige

objekter som f.eks. vinduer, døre, møbler, mv. men tit og ofte har man brug for et objekt

som ikke er indeholdt i biblioteket, og for at være i stand til at oprette et nyt er det

essentielt at være i stand til at omprogrammere de eksisterende objekter eller starte på ny

med at programmere en bygningsdel fra scratch.

Til programmering af bibliotekets objekter benyttes der GDL scripts, som er et

programmeringssprog der benyttes i Graphisoft produkter heriblandt; ArchiCAD.

Page 10: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

10

Rapportens opbygning

Rapporten giver, sammen med Programmeringsmanualen (Se Bilag), brugeren en hurtig

adgangsvej, til at forstå programmeringsprincipperne ved programmering med GDL

Scripts.

For at formidle informationer om læringsprocessen under udfærdigelse af rapporten er

rapportens hovedafsnit opbygget med følgende 5 punkter:

1. Problemstilling (Problemstillingen der søges løst)

2. Problemer (Problemer under indlæringsprocessen og udførelse af

løsningsforslaget)

3. Løsning (Løsning på problemstillingen)

4. Eksempel (Problem og løsning kombineret i et eksempel)

5. Delkonklusion

Arbejdsform

Rapporten er udført selvstændigt med konsulent bistand.

For at være i stand til at forstå helheden af brugermanualen (Graphisoft GDL Reference

Manual, version 6.5) blev denne læst først, hvorefter de forskellige problemstillinger er

blevet løst.

Efter brugermanualen er blevet læst igennem to gange, og efterhånden som

programmeringsmanualen blev udført, er de forskellige problemstillinger blevet løst.

Page 11: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

11

Problemformulering

Problemstillinger

Hvordan er brugermanualen opbygget?

Hvordan er indekset (programmeringskoderne) opbygget?

Hvilke koder bruges til hvilke kommandoer?

Hvordan kan indekset lettest opbygges så det fremkommer som let og overskueligt?

Hvordan kan programmeringsmanualen opsættes/designes så brugeren af programmet

nemt kan komme i gang med omprogrammeringen af objekterne?

Hvordan oprettes et GDL objekt?

Hvordan bliver indekset brugt under programmeringen?

Hvordan styres materiale/tekstur i programmeringen?

Hvordan programmeres glasobjekter?

Hvordan programmeres lys objekter som f.eks. lamper?

Hvordan designes et GDL objekt, så dette kan modificeres i programmet under og efter

indsætning af objekt?

Kan man lave et objekt som 3-d model, for derefter at omdanne denne model til GDL

script, for senere at kunne redigere programmeringen af det pågældende element?

Kan man indsætte et 3-d objekt fra AutoCAD og omdanne dette objekt til GDL script og

hvis man kan; hvorledes kan det lade sig gøre?

Arbejdsmetode for problemløsning

Brugermanual

Hovedredskabet som benyttes til læringen, og dermed problemløsningen, vil

hovedsageligt være brug af Graphisofts brugermanual for GDL programmering;

”Graphisoft GDL Reference Manual”. Manualen er skrevet på engelsk, som naturligvis

besværliggør problemløsningen en anelse, men da programmet i forvejen er udført på

engelsk, er det den mest optimale løsning der kan benyttes til læringen.

Page 12: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

12

Tegneprogrammet

Som sekundært redskab til problemløsningen vil tegneprogrammet ArchiCAD blive

benyttet.

Ved hjælp af programmet vil jeg få trænet teorierne fra manualen, og dermed få frembragt

visuelle resultater, der benyttes i specialerapporten samt programmeringsmanualen for at

fremme forståelsen af brugen af GDL script.

Hvad skyldes valget af speciale

I mit praktikophold hos Arkitekt Kontoret i Tønder, ejet af Uwe Nielsen, har jeg brugt

ArchiCAD en del, og har lært at bruge de forskellige grundlæggende funktioner. Men

under forløbet generede det mig, at der af og til var bygningselementer som jeg ikke var i

stand til at omdefinere så de var tilpasset det pågældende projekt.

Jeg var ofte nødt til at acceptere det faktum at det ikke kunne lade sig gøre, med min

erfaring og viden, at omdefinere dem, hvorfor jeg ikke kunne andet end vemodigt at

benytte objekterne som de var.

Ved hjælp af dette speciale, får jeg muligheden for at få lært programmeringssproget,

fremme mine muligheder for brugen af programmet, være i stand til at opfylde mine

klienter/bygherrers krav og ønsker, med hensyn til design, samt øge mine kvalifikationer

og muligheder på arbejdsmarkedet.

Udfærdigelse af videnformidling

Specialeafrapportering

Rapporten, som bliver udført i Word, vil blive udført som værende en journal, der beskriver

læringsprocessen.

Ved denne afrapporteringsform, vil der løbende blive indført problemer, løsninger, tanker

og idéer.

Jeg vil tillige hele tiden være ajourført i projektet/opgaven:

• Hvor langt jeg er kommet.

• Hvilke problemstillinger jeg har berørt.

• Hvorfor jeg har valgt de forskellige løsninger.

Page 13: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

13

• Hvilke problemer der har været.

• Hvad der har vanskeliggjort projektet/opgaven.

Der vil blive indsat print-screens med dertilhørende kommentarer.

Programmeringsmanual

Programmeringsmanualen bliver udført i Word.

Manualen bliver en form for lærebog, hvor brugeren forholdsvis let kan blive indført i

brugen af funktionen ”programmering og omprogrammering af GDL scripts”.

Manualens indhold:

• Et ”indeks” hvor alle programmerings koder vil blive opsat på en sådan måde, at

brugeren let kan få et overblik over de kommandoer han/hun har til rådighed.

• Beskrivelser af hovedelementerne i programmeringen og hvordan disse bruges.

• Der vil være udført et eller flere eksempler på udførelse af programmering.

• Hvert eksempel vil blive vist som en sammenhængende proces, hvor brugeren kan

se konsekvensen af de programmeringsfunktioner brugeren benytter.

• Til sidst i eksemplet vil brugeren være i stand til at se det færdige produkt, både som

3-d model og som renderet (fotorealistisk) billede.

• Vedrørende eksempel, Se Bilag.

Page 14: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

14

1. Opbygning af brugermanual

Problemstilling

Hvordan er brugermanualen opbygget?

Problemer

1. Brugermanualen ”Graphisoft GDL Reference Manual, version 6.5” er udført på

Engelsk, hvorfor det engang imellem er svært at forstå de forskellige udtryk/begreb.

2. Der er mange elementer indenfor programmering med GDL Scripts, hvorfor det

virker uoverskueligt, når der bliver vist hvordan man bruger en bestemt funktion, og

samtidigt er der vist en del andre som ikke kendes på det pågældende tidspunkt.

3. Brugermanualen er ikke altid pædagogisk opbygget, f. eks. Ved ROTZ funktionen

er der beskrevet at rotationen sker omkring z aksen med vinklen Alpha, den viste

tegning i manualen viser vinklen Beta.

Løsning

1. For at forstå udtrykkene har jeg brugt en Teknisk ordbog ”Claussens tekniske

ordbøger, engelsk – dansk 4. udgave”.

2. For at være i stand til at forstå mange af de enkelte funktioner, har jeg læst hele

manualen, først en gang, derefter en gang igen, da jeg ved den sidste

gennemlæsning har fået forståelse for de funktioner og sammenhænge der virkede

uoverskuelige ved den første gangs læsning. (se eksempel 1.2.1)

3. Jeg er nødt til at tænke logisk og abstrahere fra at der er sket en fejl, og at

forfatteren har begået en mindre fejl, men at der sikkert skulle ha stået Alpha i

stedet for Beta. Det tager tid at analysere sådanne små fejl og det burde ikke

fremkomme i en professionel brugermanual. (se eksempel 1.3.1)

Page 15: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

15

Eksempel 1.2.1

Som eksempel herpå kan vises denne funktion

der kaldes Croof som er konstruering af et

tagelement, med åbninger og materialer/teksturer.

Beskrivelsen af funktionen er på side 54.

Der er tegnet en bue i toppen af hullet, men

hvordan tegnes det? Det er ret frustrerende at det

bliver vist på tegningen at det kan lade sig gøre,

men hvordan man gør det er ikke beskrevet.

Jeg har senere fundet ud af at det kan lade sig

gøre, ved at omdefinere to parametre hvor man

kan kombinere parametrene med nogle

forudbestemte koder:

f. eks er koden ”900” = placering af centerpunkt.

Dette parameter står på side 131!

Page 16: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

16

Eksempel 1.3.1

Delkonklusion

Den engelsk skrevne brugermanual ”Graphisoft GDL Reference Manual, version 6.5”,

beskriver alle funktioner inden for programmering, lige fra de grundlæggende begreber til

de mere avancerede. Dog er der af og til, samtidigt med beskrivelsen af de simple element

funktioner, vist parametre der ikke forklares før længere inde i manualen. Grundet dette

virker manualen af og til uoverskuelig, og dermed var indlæringen begrænset første gang

jeg læste manualen, da jeg tænker logisk og ikke kan finde en logisk forklaring på

parametrene bliver jeg forvirret.

Page 17: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

17

Dog er forståelsen højnet meget, ved at læse manualen anden gang. Da jeg derved fik

forståelse for sammenhængene og lærte nye formler og kombinationer.

På begynderniveau er det forholdsvis nemt at komme i gang med at udføre simple

elementer som en boks eller kugle og lignende.

Ved dybere forståelse for de enkelte elementer, deres sammenhænge og opsætninger er

jeg i stand til at tænke kreativt og bruge forskellige formler og evt. kombinere forskellige

formler, parametre og opsætninger til avancerede konstruktions elementer.

For at lære at bruge de forskellige funktioner og kombinere dem skal der træning til, og en

dybere indtrængen i manualens forskellige funktioner og sammenhænge.

Page 18: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

18

2. Opbygning af programmeringskoder

2.1 Opbygning af indekset (programmeringskoderne)

Problemstilling

Hvordan er indekset (programmeringskoderne) opbygget?

Problemer

1. Der er, bagerst i brugermanualen, udført en oversigt af koderne i alfabetisk orden,

men der er ingen beskrivelse af hvad koderne bruges til. Det er ikke altid at man

kan huske hvad koderne bruges til, især ikke som begynder. Da koderne for det

meste skal kombineres i samme script, kan det være vanskeligt at finde de rigtige

koder, når man ikke kan huske hvad de betyder.

2. Da den daglige brug skal være så hurtig og effektiv som overhovedet muligt ville det

være ønskeligt at der var en liste der beskriver funktionerne ikke kun i alfabetisk

orden men også som en funktion relateret liste, dermed menes en liste hvor der

f.eks. inden for etablering af væg- elementer er en liste for de mulige koder der kan

sættes i umiddelbar sammenhæng dertil.

Løsning

1. Jeg har udført et indeks i Programmeringsmanualen, hvori der er beskrevet hvad

den pågældende programmeringskode bruges til, dens funktion og hvilke parametre

der bruges for at kunne benytte funktionen.

(For yderligere information, se bilag).

2. I Programmeringsmanualen er der, i indekset, vist ved hvilke

programmeringsmetoder, de pågældende funktioner kan benyttes.

(For yderligere information, se bilag).

Page 19: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

19

Delkonklusion

Indekset, der er placeret bagerst i brugermanualen, er kun vist med funktionerne og deres

parametre, men ikke hvad funktionerne udfører/definerer, derfor er der, i indekset i

programmeringsmanualen, beskrevet hvad funktionerne udfører/definerer.

Indekset udføres for at give brugeren et hurtigt overblik på de funktioner der er til rådighed,

da brugermanualen ikke opfylder dette til min fulde overbevisning, er der i

programmeringsmanualen udført et indeks med en kort forklaring til

programmeringskoderne, samt de parametre man skal sætte op for at

programmeringskoden kan udføre sine funktioner.

Da programmeringen i det daglige skal være effektiv, kan det være en god idé at vise

hvilke scripts, funktionerne kan bruges i .

Derfor er overskrifterne for funktionerne skrevet med funktionens navn og scripttype.

2.2 Brug af programmeringskoderne under programmering

Problemstilling

Hvilke koder bruges til hvilke kommandoer?

Problemer

1. Indekset skal udføres så brugeren hurtigt kan få en fornemmelse af de forskellige

programmeringskoders funktioner og deres parametre.

2. Funktionen XFORM er en form for matrix funktion hvor man kan opsætte 12 parametre,

men der er ikke forklaret hvilken funktion de forskellige parametre har, umiddelbart

virker det som om parametrenes funktioner ikke er definerede.

3. Funktionen CWALL_ indsætter en væg med vindueshuller og snit (fjerner den

separerede del). Der beskrives hvordan materialer kan indsættes og dimensioner på

væggen, samt udformning og placering af vindueshuller. Endvidere er der angivet

parametre for skæring af væggen, men ikke hvordan parametrene, for skæring,

reagerer i forhold til hinanden. Der er heller ikke beskrevet hvordan funktionen skal

sættes op (i parametrene) hvis man ingen huller eller snit vil ha…

Page 20: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

20

4. XWALL_ er en funktion hvor man har mulighed for at designe en væg med bjælker

(som et bjælkehus) og hvor man tillige kan udføre væggen med øgende væg- tykkelse.

Der er vist et eksempel på en væg med en regulær flade, men ikke med bjælker… Og

hvordan det virker bedst ved brug af parametrene… og hvad er t og r i parametrenes

opsætning hvad udfører disse parametre?

Løsning

1. Koderne og deres sammenhæng med deres funktioner er beskrevet i bilaget.

2. Den var ikke nem, men ved at se sammenhængene ved ændringer af et enkelt

parameter ad gangen, blev jeg i stand til at uddrage funktionerne af parametrene i

funktionen XFORM. Den virker på første øjekast meget forvirrende og ulogisk, men

er i regelen forholdsvis nem at forstå (NÅR man først har fundet ud af hvordan den

virker, igen er der manglende forklaring i manualen). De forskellige parametre

relaterer til to koordinatsystemer, henholdsvis ”Global origin” og ”Local origin”.

Vedrørende forklaring se eksempel 2.2.2.1

(For yderligere information, se bilag).

3. Sammenhængen mellem parametrene for skæring af væggen, er lidt speciel, de

første tre parametre definerer retningen af snittet, og den sidste er en

skaleringsfaktor der skalerer snittet i alle tre retninger (x, y, z) på en gang. Hvis der

ikke ønskes snit og eller vindueshuller skal parametrene alligevel udfyldes se

eksempel. Vedrørende forklaring se eksempel 2.2.3.1

(For yderligere information, se bilag).

4. Parameteret r angiver radius for en buet væg, hvor man ellers skulle tro at den

angav radius for bjælkerne i væggen. Parameteret t angiver tykkelsen af væggen

samt radius for bjælkerne i væggen.

Vedrørende forklaring se 2.2.4.1, eksemplet 2.2.4.2 viser hvordan en væg med

bjælker kan udføres.

(For yderligere information, se bilag).

Page 21: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

21

Eksempel 2.2.2.1

Som der kan ses på siden til højre er der

12 parametre der stilles op:

A11 – A14

A21 – A24

A31 – A34

Umiddelbart skulle man tro at numrene

A11, A21 og A31 havde nogenlunde de

samme funktioner, men nej sådan ligger

landet ikke. Som der kan ses i

Programmeringsmanualen har jeg udført en

overskuelig oversigt over de 12 parametres

funktioner. I eksempel 2.2.2.2 har jeg vist

sammenhængen mellem parametrene og

deres funktioner.

Eksempel 2.2.2.2

x y z d x´ A11 A12 A13 A14 y´ A21 A22 A23 A24 z´ A31 A32 A33 A34

Tallene i de følgende eksempler er for enkelthedens skyld sat til 1 (meter) eller 0, tallene

kunne være en hvilken som helst størrelse fra 0 til ∞ (uendeligt) tallene kan også være

negative (f. eks.-1).

De orange markerede parametre definerer yderpunkterne af matrixens størrelse i forhold

til ”Global origin”, det er en teoretisk størrelse som skalerer det efterfølgende element (i de

følgende tilfælde er elementet en BLOCK med sidestørrelserne 1x1x1 meter).

Parametrene A11, A22 og A33 skalerer det efterfølgende objekt:

• A11 skalerer emnet langs med x-aksen på ”Global origin” koordinatkrydset.

Page 22: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

22

• A22 skalerer emnet langs med y-aksen på ”Global origin” koordinatkrydset.

• A33 skalerer emnet langs med z-aksen på ”Global origin” koordinatkrydset.

De creme markerede parametre opgiver placeringen af ”Local origin” i forhold til ”Global

origins” koordinatsystem. (I de efterfølgende eksempler er der vist en forskydning langs z-

aksen på 1 meter.

De blåt markerede parametre ”vrider” x-aksen i ”Local origin”:

Parametrene a21 og a31 vrider x-aksen som følger:

• A21 vrider x-aksen (Local origin) i y´s retning i forhold til ”Global origin”.

• A31 vrider x-aksen (Local origin) i z´s retning i forhold til ”Global origin”.

Eksempel på a21 Eksempel på a31

Page 23: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

23

De gult markerede parametre ”vrider” y-aksen i ”Local origin”:

Parametrene A12 og A32 vrider y-aksen som følger:

• A12 vrider y-aksen (Local origin) i x´s retning i forhold til ”Global origin”.

• A32 vrider y-aksen (Local origin) i z´s retning i forhold til ”Global origin”.

Eksempel på A12 Eksempel på A32

De grønt markerede parametre ”vrider” z-aksen i ”Local origin”:

Parametrene A13 og A23 vrider z-aksen som følger:

• A13 vrider z-aksen (Local origin) i x´s retning i forhold til ”Global origin”.

• A23 vrider z-aksen (Local origin) i y´s retning i forhold til ”Global origin”.

Eksempel på A13 Eksempel på A23

Page 24: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

24

Eksempel 2.2.3.1

Den markerede del er beskrivelsen for

hvordan man skærer i en væg (danner et

snit), der vises blandt andet at x skal ganges

med ai. hvad er denne størrelse x? der er

ingen data på den… men x kan forholdsvis

enkelt udregnes ved følgende formel:

di/ai = x

x er den reelle afstand fra udgangspunktet

som er 0, 0, 0 (Local origin) til styringspunktet

for snittet, styringspunktet ligger langs x-

aksen for snittet.

Det samme princip gælder for bi og ci.

Hvor bi styrer y-aksen og ci styrer z-aksen.

Billedet til højre viser en væg med

et vindue og et snit, snittets

parametre er vist med:

m = 1

ai = 2 x er 8/2 = 4 meter

bi = 2 y er 8/2 = 4 meter

ci = 2 z er 8/2 = 4 meter

di = 8

Page 25: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

25

Eksempel 2.2.4.1

Til højre og må næste side

vises funktionens opsætning

og forklaring fra

brugermanualen.

x - y planet af væggens plane

geometri bør defineres som

følger:

x1 og y1 startes ved 0,0.

x2 og y2 følger x- aksens

retning.

x3 og y3 ligger over x2 og y2.

x4 og y4 ligger over x1 og y1.

Hvis man benytter eksemplet

til højre, kan det give

problemer når man udfører en

væg med bjælker.

Hvis x1,y1 - x2,y2 ikke ligger

parallelt med x3,y3 - x4,y4 kan

væggen ikke udføres med

bjælker.

Som man kan se er der kort vist hvad log_height og log_offset udfører i funktionen.

Parameteret log_height angiver den lodrette afstand af bjælkerne.

Parameteret log_offset angiver hvor stor den lodrette forskydning skal være for den første

bjælke, forskydningen måles fra ”Local origins” udgangspunkt (0,0,0) til underside bjælke.

Page 26: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

26

Hvad t og r definerer, er der ikke vist, men ved at gemme et væg- element, fra en

tegnings- fil, som et biblioteks element, hvorved jeg har kunnet aflæse dennes script og

redefinering af parametrene, har jeg været i stand til at finde ud af deres effekt og virkning.

Parameteret t er tykkelsen på væggen samt radius for bjælkerne, som væggen bliver

opført med.

Man skulle umiddelbart tro at r er radius på bjælkerne som væggen skal konstrueres med,

men nej det er helt forkert, r definerer radius for en buet væg. Dog skal det bemærkes at

en væg udført med bjælker ikke kan vises i buet form.

Parameteret status definerer hvordan bjælkerne

skal vises på væggen:

j1 = materialet/teksturen der normalt vises på højre

side af væggen vises på de horisontale kanter.

(1)

j2 = materialet/teksturen der normalt vises på højre

side af væggen vises på de horisontale kanter.

(2)

j3 = start med en halv bjælke.

(4)

j6 = trim tekstur til væggens kanter.

(32)

j7 = radius på bjælke sættes til det dobbelte, dvs.

2*r.

(64)

j8 = Højre side af bjælken vises som en plan overside.

(128)

j9 = Venstre side af bjælken vises som en plan overside.

(256)

Page 27: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

27

Eksempel 2.2.4.2

I eksemplet til højre er der vist

hvordan en væg med bjælker

kan udføres.

Bjælkernes radius er sat til 250

mm.

Den lodrette afstand er sat til

200 mm.

Den lodrette forskydning er sat

til 100 mm.

Da der ingen huller er sættes n

til 0.

Da der heller ingen snit

foretages er m sat til 0.

Status er sat til at forskyde

bjælkerne en halv bjælkes højde, men da bjælkens lodrette forskydning i forvejen er sat op

til 100 mm er resultatet det samme selv om status er sat til 4, i dette tilfælde kunne status

uden videre være sat op til 0.

Delkonklusion

Under udviklingen af Programmeringsmanualen, og dermed fordybelse i funktionerne der

udgør programmering med GDL script, har der været en del problemer/forhindringer.

De værste problemer har været ved læringen af funktionerne ”XFORM”, ”CWALL_” og

XWALL_. Da disse funktioner er beskrevet i en så ringe grad, at de ikke kunne udføres

direkte efter brugermanualen, var jeg nødt til at granske funktionernes parametre og deres

virkning. Men jeg har fundet ud af hvordan deres parametre virker.

Fordybelsen i brugermanualen, har givet mig en stor indsigt i hvilke kommandoer der

bruges til hvilke funktioner og hvordan deres parametre defineres.

Page 28: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

28

2.3 Logisk opbygning af indeks

Problemstilling

Hvordan kan indekset lettest opbygges så det fremkommer som let og overskueligt?

Løsning

1. Indekset er udført i alfabetisk rækkefølge med beskrivelse af funktion, parametre

og eventuelle eksempler på hvordan det kan se ud når det udføres.

2. Hver funktion, i indekset, er vist med funktionens navn, og scripttypen hvor

funktionen kan benyttes.

Delkonklusion

Det har været et temmelig stort arbejde at udføre indekset, da hvert enkelt punkt i

programmeringen er blevet gået igennem, og de mere komplicerede funktioner som f.eks.

XFORM er blevet testet i tegneprogrammets ”GDL script” programmeringsvindue.

Page 29: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

29

3. Opsætning af programmeringsmanual

Problemstilling

Hvordan kan programmeringsmanualen opsættes/designes så brugeren af programmet

nemt kan komme i gang med omprogrammeringen af objekterne?

Løsning

1. Ved at udføre programmeringsmanualen i alfabetisk rækkefølge, kan brugeren

hurtigt finde den funktion der måtte være brug for, i overskriften for funktionen er

der samtidigt beskrevet hvilke/hvilken scripttype funktionen kan anvendes i.

2. I begyndelsen af programmeringsmanualen er der vist hvorledes man opretter et

GDL script.

3. Der er tillige vist hvorledes GDL scriptet gemmes, så dette fremkommer som et

Biblioteksobjekt.

Delkonklusion

Det er nemt at komme i gang med programmeringen, da der i starten af

Programmeringsmanualen er vist hvordan et GDL Script oprettes og gemmes.

Og at finde de funktioner der skal benyttes, og i hvilke Scripts de kan benyttes er også

overskueligt udformet..

Page 30: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

30

4. Oprettelse af GDL objekt

Problemstilling

Hvordan oprettes et GDL objekt?

Løsning

1. For at oprette et GDL objekt, skal vinduet for programmering åbnes, og objekttypen

skal vælges, hvorefter programmeringen kan begynde. (Se eksempel 4.1.1).

2. GDL objektet skal gemmes som den objekttype scriptet er beregnet som. (Se

eksempel 4.2.1).

Eksempel 4.1.1

• Først skal man i tegneprogrammet ”ArchiCAD” gå ind i

”File” og dernæst ”New Library Part”, derefter skal man

bestemme sig for hvilken type objekt man vil udføre

programmering på.

• Objekt typer:

• Object

• GDL scriptet registreres som et

objekt/inventar/konstruktion.

• Window

• GDL scriptet registreres som et vindue.

• Door

• GDL scriptet registreres som en dør.

• Lamp

• GDL scriptet registreres som en kunstig

lyskilde.

Page 31: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

31

• Zone Stamp

• GDL scriptet registreres som en arealtype, med tekst der beskriver

rumtype, nummer og størrelse.

• Label

• GDL scriptet registreres som en etiket, en etiket der kan indsættes i en

tegning.

• Macro Object

• GDL scriptet registreres som en makro.

• Properties

• GDL scriptet registreres som en Properties opsætning.

• Stair

• GDL scriptet registreres som en trappe.

• Vinduet, der kommer frem efter valg af

objekttype, viser 9

opsætning/programmerings vinduer

som man kan bruge til programmering

af sit objekt, 1 vindue for

kommentarer, samt 4 vinduer for

billede af scriptet.

Page 32: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

32

• Parameters

• Her defineres de parametre, som skal vises ved indsætning af objektet, med

navne der beskriver deres funktion.

• Når objektet skal defineres, ved indsætning i tegningsprojektet, kan objektets

dimensioner ændres ved brug af disse parametre.

• Components

• Her kan scriptets dimensioneringsopsætning sættes op.

Page 33: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

33

• Descriptors

• Her beskrives objektets opbygning og evt. standarddimensioner, materialer,

m.m.

• Master Script

• Kommandoer/funktioner der programmeres i dette script, bliver udført før alle

andre scripts.

• Vinduet vises tomt ved opstart.

• 2D Script

• Her programmeres alle 2D elementer, der skal bruges når objektet skal vises i

plan (plantegninger).

• Vinduet vises tomt ved opstart.

• 3D Script

• Her defineres objekternes tredimensionelle form og materialer m.m.

• Vinduet vises tomt ved opstart.

• Property Script

• Her defineres komponenter og beskrivelser der skal benyttes ved oplistning af

objektet, når der skal laves lister på mængder i projektet.

• Vinduet vises tomt ved opstart.

• Parameter Script

• Her defineres variablernes funktioner, der bruges i ”Parameters”.

• Vinduet vises tomt ved opstart.

Page 34: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

34

• Interface Script

• Her defineres et vindue med funktioner og beskrivelser for objektet.

• Scriptet er en mere avanceret visning af opsætninger end ”Parameters”,

men scriptet fungerer i samarbejde med ”Parameters”.

• Vinduet vises tomt.

• Comment

• Her er der mulighed for at indsætte en kommentar.

• Kommentaren har ingen indflydelse med opsætningen af objektet.

• Vinduet vises tomt, ved opstart.

• 2D Symbol

• Her vises symbolet som det vil blive vist i vinduet for indsætning af

biblioteksobjekter.

• 2D Full View

• Her vises objektet, som det vil blive vist i plan, på tegningen.

• 3D View

• Her vises objektet i 3D, som ”Block”, ”Wireframe”, ”Hidden Line”, ”Shading”

eller ”Photorender Projection”.

• Der kan panoreres/manøvreres rundt i vinduet, som i et normalt 3D vindue i

”ArchiCAD”.

Page 35: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

35

• Preview Picture

• Her vises objektet, som er et billede der er dannet med ”Photorender

Projection”.

Eksempel 4.2.1

• Når scriptet er udført, eller eventuelt under programmeringen af scriptet, skal scriptet

gemmes i det bibliotek man ønsker GDL objektet skal placeres, for fremtidigt brug.

• Gå ind i ”File” og ”Save as”, og vælg biblioteket, og skriv til sidst navnet på objektet,

afslut med save.

Delkonklusion

Det er rimelig enkelt at oprette et GDL objekt, dog skal man fra starten af, gøre sig klar

over, hvilken objekttype man har i sinde at programmere. Hvis man er i tvivl om hvilken

objekttype man vil oprette, kan det som regel blot sættes til ”Object”.

Page 36: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

36

5. Brug af indekset under programmering

Problemstilling

Hvordan bliver indekset brugt under programmeringen?

Løsning

1. Indekset kan bruges til det daglige brug, under programmeringen, ved at kombinere

de funktioner der er beskrevet i indekset.

2. Funktionerne er beskrevet så brugeren forholdsvis let kan forstå funktionernes

virkemåde og opsætning.

3. Indekset kan endvidere bruges som et supplement til brugermanualen ”Graphisoft

GDL Reference Manual, version 6.5”, da funktionerne og begreberne er skrevet på

engelsk, kan det være svært at forstå funktionerne, men så kan Indekset i

programmeringsmanualen benyttes til at forstå disse funktioner.

Delkonklusion

Indekset i programmeringsmanualen, kan bruges separat eller som supplement til

brugermanualen ”Graphisoft GDL Reference Manual, version 6.5”.

Page 37: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

37

6. Styring af materialer/teksturer under programmering

Problemstilling

Hvordan styres materiale/tekstur i programmeringen?

Løsning

1. Ved mange 3D objekter er opsætning af tekstur inkluderet i parametrene f.eks.

”CSLAB_” som indsætter et gulvelement med teksturer.

(For yderligere information, se bilag).

2. Andre objekter som f.eks. ”BLOCK” (funktionen ”BLOCK” generer en simpel blok

ved brug af længde, bredde og højde) har ikke et parameter der styrer teksturerne

på elementets overflader. Materialetypen ved disse objekter kan defineres i

dialogboksen for Biblioteksobjekter ved indsætning i tegningen af disse. Men hvis

teksturen på disse objekter skal defineres i scriptet, er man nødsaget til at bruge

funktionen ”DEFINE MATERIAL”, funktionen definerer materialetypen/teksturtypen i

det pågældende script.

(For yderligere information, se bilag).

Delkonklusion

Det er forholdsvis enkelt at lægge materialer/teksturer på 3D objekter, men hvis

materialerne skal foruddefineres er man nødt til at benytte funktionen ”DEFINE

MATERIAL”.

Page 38: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

38

7. Programmering af glasobjekter

Problemstilling

Hvordan programmeres glasobjekter?

Løsning

1. Glasobjekter er enkle at lave, det eneste man skal gøre er at bruge de funktioner

der danner den ønskede form, og dernæst definere teksturen, teksturen vises som

glas.

Teksturen for glas er som standard opsat i biblioteket for materialer, men kan også

etableres manuelt.

(For yderligere information, se bilag).

Delkonklusion

Glasobjekter defineres ved at benytte en tekstur, med egenskaber som glas.

Page 39: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

39

8. Programmering af lys objekter

Problemstilling

Hvordan programmeres lys objekter som f.eks. lamper?

Problemer

1. Hvilken funktion bruges til programmering af lysobjekter.

2. Lyskildens farve sammensætning, hvordan findes den i forbindelse med

programmeringen af en given lyskilde.

Løsning

1. Med funktionen LIGHT kan man definere lyskildens spredning af lyset, dets

intensitet og lysets farvesammensætning.

(For yderligere information, se bilag).

2. Farvesammensætning må rekvireres hos producent.

Delkonklusion

Det er forholdsvis enkelt at programmere lyset, dog kan det være vanskeligt at finde

lyskildens farvesammensætning, spredning og intensitet, disse data er man nødt til at

rekvirere ved producenten for lyskilden.

Page 40: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

40

9. Modificering af GDL objekter fra tegneflade

Problemstilling

Hvordan designes et GDL objekt, så dette kan modificeres i programmet, under og efter

indsætning af objekt?

Løsning

1. For at være i stand til at modificere et objekt skal der bruges parametre.

Hvert parameter defineres med et eller flere bogstaver, fra det engelske alfabet.

(Se eksempel 9.1.1)

(For yderligere information, se bilag).

2. Parametrene kan sættes op med foruddefinerede værdier, hvor brugeren kan

vælge en af disse værdier, uden at skulle skrive dem i dialogboksen.

(Se eksempel 9.2.1)

(For yderligere information, se bilag).

Eksempel 9.1.1

Opsætning af parametre kan udføres ved at benytte opsætningen af parametre i

”Parameters”.

Her defineres de parametre, som skal vises ved indsætning af objektet, med navne der

beskriver deres funktion. Når objektet skal defineres, ved indsætning i tegningsprojektet,

kan objektets dimensioner ændres ved brug af disse parametre.

Page 41: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

41

Eksempel 9.2.1

For at foruddefinere forskellige værdier i de enkelte parametre skal der benyttes en

funktion der hedder ”VALUES”, funktionen benyttes i ”Parameter Script”.

Ved hjælp af denne funktion defineres de værdier man skal have mulighed for at vælge

inde fra tegnefladen.

Funktionen arbejder sammen med ”Parameters” (Se eksempel 9.1.1).

I billedet til højre kan man se

hvorledes værdierne programmeres,

den første linie har ingen betydning for

denne funktion, kun linierne der starter

med ”VALUES” bruges til denne

funktion.

I billedet til højre kan

resultatet af funktionen

ses brugt, hvor værdien

”912” bliver valgt med

venstre museknap.

Page 42: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

42

Delkonklusion

Ved hjælp af ”Parameters” og ”Parameter Script” kan objekterne meget let blive ændret

inde fra tegnefladen. Ved at foruddefinere et sæt værdier til hvert parameter, gøres den

daglige brug af objekterne meget hurtigere og mere effektiv.

Page 43: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

43

10. Omdefinering af 3-D objekt fra ArchiCAD til GDL script

Problemstilling

Kan man lave et objekt som 3-d model, for derefter at omdanne denne model til GDL

script, for senere at kunne redigere programmeringen af det pågældende element?

Problemer

1. Elementer der er tegnet inde i plan eller 3D vinduet i ArchiCAD, kan ikke gemmes

som GDL script inde fra ”plan” vinduet.

2. Hvordan gemmes elementerne, efter 3D vinduet er sat op til den rigtige visning?

Løsning

1. Elementerne, der skal gemmes som GDL script, kan kun gemmes hvis de er vist

inde i 3D vinduet, og er vist som top, side eller bund.

(Se eksempel 10.1.1)

2. Der er forskellige opsætninger der skal benyttes i dialogboksen for ”Save as”, når

elementerne skal gemmes.

(Se eksempel 10.2.1)

Eksempel 10.1.1

Som der kan ses til højre kan

elementer, der skal gemmes som

GDL objekter, ikke gemmes hvis

disse ikke vises med top, side eller

bottom ”View”.

Det vil sige at der i ”3D Projection

Settings” skal defineres hvordan

elementerne skal vises i 3D vinduet,

og det er enten set fra oven (top), set

fra siden (side) eller set fra neden.

Page 44: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

44

Dette gøres ved at gå ind i ”Image”, ”3D

Projection Settings”.

Når man kommer ind i ”3D

Projection Settings” klikker man på

det icon, hvor der nedenunder står

”Custom axonometry”.

Dernæst bestemmes om det skal være ”Top view”, ”Side view” eller ”Bottom view”,

”Top view”

”Side view”

”Bottom view”

Page 45: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

45

Eksempel 10.2.1

Når elementerne er vist med top, side eller bund, kan

disse gemmes som GDL scripts, for at gemme dem skal

man gå ind i ”File” og vælg ”Save as”.

Der fremkommer en dialogboks,

først skal man vælge hvilket

bibliotek, man vil gemme sine

elementer i.

I dette tilfælde vælges:

”GDL_scripts_til_speciale”.

Dernæst vælges hvilken type objekt

elementerne skal gemmes som.

I dette tilfælde vælges:

”ArchiCAD Objekt File (*.gsm)”.

Page 46: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

46

Når typen er defineret skal man blot

skrive navnet på det element der skal

gemmes.

I dette tilfælde er navnet:

” Tagvindue_TIL_GDL_OBJEKT”

Når man klikker ”Save”, kommer der en

dialogboks frem på skærmen, hvor man kan

vælge om det skal være muligt at redigere

scriptet, eller om det skal være binære data

som ikke kan redigeres.

I dette tilfælde er der valgt:

” Editable GDL Script”

Efter elementerne er gemt som et GDL Objekt og er gemt som et GDL Script, kan alle data

redigeres i scriptet.

I det følgende eksempel er der vist at parametrene ”a” og ”b” er defineret så de har

foruddefinerede størrelser.

Page 47: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

47

Her er der kopieret

opsætninger på de to

parametre ”a” og ”b”,

parametrene er kopieret fra

et andet objekt (”Einfache

Tür_1-Fl”).

Efter tagvinduet er blevet

omdefineret i parameter

opsætningen, er det blevet lettere

at definere størrelserne på

tagvinduet, da standard-

dimensionerne nu er definerede.

Delkonklusion

Umiddelbart kan det virke som en besværlig proces at omdefinere 3D elementer fra

ArchiCAD til GDL Script, men i praksis er det enkelt, hvis man blot følger proceduren som

er beskrevet foroven.

Page 48: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

48

11 Omdefinering af 3-D objekt fra AutoCAD til GDL script

Problemstilling

Kan man indsætte et 3-d objekt fra AutoCAD og omdanne dette objekt til GDL script og

hvis man kan; hvorledes kan det lade sig gøre?

Problemer

1. ArchiCAD kan ikke genkende 3D objekterne, når de hentes ind i tegningen. Den

skriver fejl og at skaleringen er forkert, selv om en enhed er sat til en millimeter,

som den er sat op til i Autocad.

(Se eksempel 11.1.1).

Løsning

1. Efter adskillige forsøg, på forskellige måder og skaleringer, må jeg konstatere at det

ikke kan lade sig gøre at indhente 3D objekter fra Autocad til ArchiCAD. Grunden til

at det ikke kan lade sig gøre, er at de er programmeret med et andet

programmeringssprog, end GDL Script.

Eksempel 11.1.1

Delkonklusion

Det må konstateres at det ikke kan lade sig gøre at lave 3D objekter i Autocad, for derefter

at bruge dem i ArchiCAD.

Problemet er at de to tegneprogrammer bruger hver deres programmeringssprog.

Page 49: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

49

Konklusion

Den engelsk skrevne brugermanual ”Graphisoft GDL Reference Manual, version 6.5”,

beskriver alle funktioner inden for programmering, lige fra de grundlæggende begreber til

de mere avancerede. Dog er der af og til, samtidigt med beskrivelsen af de simple element

funktioner, vist parametre der ikke forklares, før længere inde i manualen. Grundet dette

virker manualen af og til uoverskuelig, og dermed var indlæringen begrænset første gang

jeg læste brugermanualen.

Indekset, der er placeret bagerst i brugermanualen, er kun vist med funktionerne og deres

parametre, men ikke hvad funktionerne udfører/definerer, derfor er der, i indekset i

Programmeringsmanualen, beskrevet hvad funktionerne udfører/definerer.

For at gøre den daglige brug nemmere, er funktionernes overskrifter angivet med

funktionens navn og scripttype.

Indekset kan bruges separat, eller som supplement til brugermanualen ”Graphisoft GDL

Reference Manual, version 6.5”.

Under udviklingen af Programmeringsmanualen, har der været en del

problemer/forhindringer. De værste problemer har været ved læringen af funktionerne

”XFORM”, ”CWALL_” og ”XWALL_”. Da disse funktioner er beskrevet i en så ringe grad, at

de ikke kunne udføres, direkte efter brugermanualen, var jeg nødt til at granske

funktionernes parametre og deres virkning.

Det har været et stort arbejde at udføre indekset i Programmeringsmanualen, da hvert

enkelt punkt i programmeringen er blevet gået igennem, og de mere komplicerede

funktioner som f.eks. ”XFORM” er blevet testet i tegneprogrammets ”GDL Script”

programmeringsvindue.

Page 50: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

50

Det er nemt at komme i gang med programmeringen, da der i starten af

Programmeringsmanualen er vist hvordan et ”GDL Script” oprettes og gemmes.

Det er rimelig enkelt at oprette et ”GDL Script”, dog skal man fra starten af, gøre sig klar

over, hvilken objekttype man har i sinde at programmere.

Det er enkelt at lægge materialer/teksturer på 3D objekter, teksturen kan foruddefineres i

scriptet. Glasobjekter defineres ved at benytte en tekstur, med egenskaber som glas.

Man kan programmere lyskildeobjekters farvesammensætning, spredning og intensitet,

men da disse data ikke kendes på forhånd, er man nødt til at rekvirere dataene på

lyskilden, ved producenten for lyskilden.

Ved hjælp af ”Parameters” og ”Parameter Script” kan objekterne ændres inde fra

tegnefladen i ”ArchiCAD”. Ved at foruddefinere et sæt værdier til hvert parameter, gøres

den daglige brug af objekterne meget hurtigere og mere effektiv.

Man kan omdefinere 3D elementer fra ”ArchiCAD” til ”GDL Scripts”, i nogle tilfælde er det

lettere at tegne dem inden de samles til et script.

Jeg har desværre måttet konstatere, at det ikke kan lade sig gøre at lave 3D objekter i

”Autocad”, for derefter at bruge dem i ”ArchiCAD”, da de to tegneprogrammer bruger hver

deres programmeringssprog.

Dette speciale har virkelig givet mig den viden og det udbytte jeg har ønsket,

Jeg har fået lært programmeringssproget, og har forstået hvordan programmeringen

fungerer.

Jeg har lært mange redskaber som jeg kan bruge når jeg skal programmere objekter, eller

omdefinere og perfektionere, allerede forhåndenværende biblioteks objekter.

Page 51: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

51

Det har, til tider, virket uoverskueligt og meget kompliceret at lære programmeringen, da

brugermanualen var udført på engelsk, og ikke altid var udført pædagogisk korrekt.

Skønt jeg ikke har programmeret med andet end ”macro” i Autocad, har jeg under

udførelsen af programmeringsmanualen lært hvordan programmeringen fungerer.

Jeg syntes stadigvæk at det er spændende og udfordrende at programmere, og glæder

mig til at komme i gang med det for alvor, og gøre den daglige brug, nemmere og bedre af

”ArchiCAD”, både for mig selv og for andre brugere, som jeg kommer til at arbejde

sammen med.

Da der er stor fremtid i brugen af 3-D projektering, er der gode muligheder for at jeg kan

benytte min tilegnede viden ikke kun som værktøj til at forbedre min egen brug af

ArchiCAD, men også at kunne bruge det professionelt, programmere for producerende

virksomheder inden for byggeri eller for tegnestuen.

Page 52: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

52

Kilder

Titel: Graphisoft GDL Reference Manual, version 6.5

Forfatter: Graphisoft

Forlag: Graphisoft

Udgivet: 2000

Sprog: Engelsk

Titel: Claussens tekniske ordbøger, engelsk – dansk 4. udgave

Forfattere: Cand. mag. Ruth Feil

Cand. ling. merc. Torben Dahl Jensen

Forlag: Aschehoug Dansk Forlag A/S, København

Udgivet: 4. udgave, 1. oplag, 2002

Sprog: Engelsk og dansk

Page 53: 7. Semester speciale Rapport for - andersenkon.mono.netandersenkon.mono.net/upl/9338/RapportProgrammeringSpeciale.pdf · 2 Titelblad Titel 7. Semester speciale Rapport for: Programmering

53

Bilag

Titel: Programmeringsmanual, for programmering med GDL Script.

Forfatter: Jørn Gaarde Andersen

Forlag: Jørn Gaarde Andersen

Udgivet: 09. juni 2005

Titel: Eksempel på:

Programmering af bygningsdele i ArchiCAD

ved brug af GDL Script.

Forfatter: Jørn Gaarde Andersen

Forlag: Jørn Gaarde Andersen

Udgivet: 09. juni 2005