ARCHICAD: ÅBNING AF GDL: Programmering Af Arkitektens Unikke Udfordringer

ARCHICAD: ÅBNING AF GDL: Programmering Af Arkitektens Unikke Udfordringer
ARCHICAD: ÅBNING AF GDL: Programmering Af Arkitektens Unikke Udfordringer

Video: ARCHICAD: ÅBNING AF GDL: Programmering Af Arkitektens Unikke Udfordringer

Video: ARCHICAD: ÅBNING AF GDL: Programmering Af Arkitektens Unikke Udfordringer
Video: Gemme et GDL -objekt med redigerbare attributter i ARCHICAD 2024, April
Anonim

Dette ekspertmateriale fortsætter artikelserien "ARCHICAD: Rediscovering", som begyndte i december 2016 med en artikel af Vladimir Savitsky "Oprettelse af strukturer og udvinding af arbejdstegninger fra en model", og fortsatte derefter med publikationerne fra Svetlana Kravchenko "ARCHICAD: Genopdagelse. Visualisering - nye muligheder for en arkitekt "og Alexander Anishchenko" TEAMWORK: effektivt teamwork trin for trin ". Cyklussen er designet til at hjælpe brugerne med at frigøre det fulde potentiale i ARCHICAD®… Vi bad arkitekterne om at dele deres personlige oplevelse af at bruge programmet ved hjælp af ikke-standardiserede tilgange, ringe undersøgte funktioner og nye funktioner, som mange brugere måske ikke engang er opmærksomme på. Som udviklere af ARCHICAD-applikationen er vi overbeviste om, at kun en dyb viden om produktet kan afsløre dets fulde værdi og have afgørende indflydelse på resultaterne, hastigheden og kvaliteten af designerens arbejde. Foretrækker du også "ulæste stier"? Har du erfaring med at bruge ikke-standardiserede tilgange til at arbejde med ARCHICAD, bruger du regelmæssigt ikke de mest berømte funktioner i applikationen? Vi vil med glæde invitere nye forfattere til samarbejde: [email protected]. Svetlana Kravchenko, en praktiserende arkitekt, rapporterer:

zoom
zoom

Sikkert mange af jer har hørt om GDL i ARCHICAD, men ikke alle ved stadig, hvordan man bruger det på arbejde. I betragtning af den utrolige anvendelighed af denne funktion såvel som de mange spørgsmål efter mit første webinar om dette emne, besluttede jeg at gå i detaljer om, hvordan selv den mindste viden om det kan hjælpe meget i det daglige arbejde med en arkitekt.

Lad os starte med det grundlæggende GDL (Geometric Description Language) er et BASIC-lignende programmeringssprog designet til at arbejde i ARCHICAD-miljøet. Den beskriver 3D-kroppe (som døre, vinduer, møbler) og 2D-symboler i grundplanvinduet. Disse objekter kaldes biblioteksfunktioner.

For dem, der i det mindste er lidt fortrolige med programmering, er det ikke svært at beherske dette sprog. Men med tilstrækkeligt ønske vil studiet af GDL være helt inden for magten for en person, der er langt fra dette miljø. Enhver arkitekt har studeret geometri og beskrivende geometri i sin tid, har fremragende volumetrisk tænkning, og det er allerede halvdelen af succesen. Du behøver ikke straks at prøve at skrive komplekse objekter, det er værd at starte med de grundlæggende geometriske former og former; en masse information kan hentes ved at undersøge scripts til andre biblioteksgenstande. Nå, den vigtigste informationskilde er GDL-referencehåndbogen, som du kan få adgang til via menuen Hjælp i selve ARCHICAD. Så hvorfor kan en arkitekt drage fordel af kendskab til GDL? For eksempel, i modsætning til Grasshopper, som du kan oprette komplekse strukturer med, er GDL simpelthen uundværlig til at skrive forskellige markører og billedforklaringer samt til at oprette specielle komponenter til andre biblioteksfunktioner eller værktøjer. En af mine første anvendelser af GDL i mit arbejde var oprettelsen af et specielt paneldørblad, der, når det blev ændret, ikke skaleres i alle retninger, men kun ændrede panelets dimensioner. Tykkelsen på den krøllede ramme og selens bredde forblev uændret. Arkitekter vil også ofte tilføje nogle enkle funktioner til eksisterende objekter i standardbibliotekerne - og det er hovedårsagen til, at de begynder at dykke ned i GDL. Selvfølgelig er kendskab til GDL ikke afgørende, og mange af disse opgaver kan udføres med standardværktøjer. For eksempel kan du konstruere udfyldninger med plader og gemme dem som et specielt dørblad. Hvis du kun har et par af disse ikke-standarddøre, bliver dette endnu hurtigere. Men hvis der i dit projekt er mange lignende døre i forskellige størrelser, og deres breddeændringer under arbejdsprocessen, vil det at skrive et specielt panel i GDL i høj grad fremskynde og forenkle arbejdet. Geometrisk beskrivelse indebærer, at en hvilken som helst af de mulige former kan skrives i tekst i henhold til dimensioner eller koordinater. For et 3D-script er der en blok med kommandoer til grundlæggende rumlige former, såsom: - BLOK og MURSTEN - en parallelepiped konstrueret i tre dimensioner med oprindelsen ved punkt 0 i koordinatsystemet BLOKER a, b, c Mursten a, b, c

zoom
zoom

- CYLIND - cylinder langs Z-aksen med højde h og radius r CYLIND h, r

- KUL - kugle centreret ved oprindelsen og radius r SPHERE r

zoom
zoom

En ellipse og en kegle beskrives på en lignende måde. Den næste figurblok er allerede mere kompliceret - det er forskellige prismer. De er beskrevet af et sæt punktkoordinater. Det enkleste prisme bestemmes af antallet af punkter (n), højden (h) og en liste over koordinaterne for alle punkter i rækkefølge. PRISM n, h, x1, y1, … xn, yn

Der er mange sorter af prisme. Den næste visning, PRISM_, giver dig mulighed for at angive statuskoder til koordinaterne for punkter, som bestemmer synligheden af ansigter og kanter, og giver dig også mulighed for at oprette buede prismer og prismer med huller (se afsnittet Statuskoder i referencebogen). En anden slags, BPRISM_, skaber et prisme snoet omkring Y-aksen. FPRISM_ bygger et prisme med en affasning eller filet på oversiden.

zoom
zoom

Der er flere kommandoer, der beskriver mere komplekse polyline-baserede former: EKSTRAUT, PYRAMID, REVOLVE, REGULERET, FEJR, RØR, KONSER, MASSE. Deres beskrivelse med eksempler kan findes i referencen. For et 2D-script beskrives figurer med andre kommandoer: linje, cirkel, rektangel, polyline, spline. Men du kan også registrere en kommando til opbygning af en projektion fra et 3D-script.

Oprettelse af 2D- eller 3D-figurer er kun en del af GDL's funktionalitet. Hvis du bare har brug for et bord, er det lettere at bygge det med værktøjerne i ARCHICAD selv. Et objekt skrives i tilfælde, hvor der kræves en form for parametrisering: evnen til at vælge forskellige typer bordben, antallet af ben, ændre størrelsen på bordet, mens de resterende dimensioner opretholdes, beregne tømmeret til dets fremstilling, vægt og pris. Objektet indeholder muligvis ikke nogen geometri, men udfører kun beregninger. Til dette anvendes også kontrolklausuler (kontroloperatører), såsom sløjfer, betingede udsagn, der henviser til et bestemt sted i koden (subrutine). Det er bedst at gøre sig bekendt med cyklusser og forhold i starten - de bruges ofte. Så alle eksemplerne nedenfor har betingede udsagn. EKSEMPEL # 1 - objektrotation Designere vil ofte gøre et objekt drejeligt. Ved hjælp af dette enkle eksempel vil vi se på strukturen af Library Item såvel som hovedvinduerne i GDL Object Editor. For at åbne et objekt, der er placeret i projektområdet (hvis udvikleren ikke har lagt en adgangskode til det), skal du vælge det og trykke på tastekombinationen Ctrl + Shift + O. En anden måde er at bruge menuen Filer> Biblioteker og objekter> Åbn objekt. Hvis der i øjeblikket ikke er valgt et objekt, åbnes et vindue til valg af et objekt. Lad os tilføje rotationsparametre for eksempel til en lamellgitter (fig. 1).

zoom
zoom

Så vi har åbnet GDL Object Editor-vinduet (fig. 2). Øverst til venstre er der et vindue til visning af forskellige visninger, som i det sædvanlige vindue med objektparametre; selv til venstre er knapper til valg af visning - plan, højde, 3D-vindue og forhåndsvisning. Nedenfor er der knapper til åbning af parametertabeller, datalister og scripts. Scripts kan åbnes på to måder: Klik på knappen med scriptets navn - åbn i samme vindue, klik på knappen til højre med vindueikonet - scriptet åbnes i et separat vindue. Dette kan være nyttigt at se forskellige scripts på samme tid (figur 3).

zoom
zoom

Øverst i vinduet i et hvilket som helst script er der en meget nødvendig Check-knap: når du klikker på det, vil editoren bede dig om der er fejl i scriptet. Meddelelsen vil indeholde årsagen til fejlen og det linjenummer, hvor fejlen blev fundet. I afsnittet "Detaljer" kan du vælge en objekttype: brugerdefineret dørblad, dørhåndtag, gardinvægsstel osv. Så specielle objekter (pen, lærred, ramme) vises i det tilsvarende vindue til valg af disse elementer. Når en 2D-type er valgt, har objektet ingen vinduer til 3D-geometri. Der kan du også vælge typer til forskellige markører - en node, sektioner, ledertekster, zoner; de vises også i deres respektive værktøjer. I dette afsnit kan du udfylde en beskrivelse af objektet og vælge en adgangskode. Yderligere - "Parametre", hvor alle data, der bruges i dette objekt, og som kan ændres under arbejdet med projektet, præsenteres i form af en tabel. Her skal vi tilføje parametre til svingene, som vi vil bruge senere.

zoom
zoom

Tryk på knappen Ny placeret over bordet (fig. 4). En ny række vises, hvor du skal udfylde kolonnerne. Den første af disse kolonner er variabel. Her skriver vi navnet på variablen, som vil blive brugt i scripts, på latin og uden mellemrum. Du skal navngive det, så det er let at huske, og på samme tid er det let at forstå, hvad denne variabel er ansvarlig for. I vores tilfælde er vi nødt til at oprette to variabler for værdien af rotationsvinklerne langs X- og Y-akserne (objektet kan alligevel drejes rundt om Z-aksen lige i planen). Jeg besluttede at navngive dem vinkel_x og vinkel_y. I den næste kolonne skal du vælge datatypen. Valgene er vist i tabel 1.

zoom
zoom

De sidste to typer bruges ikke til konstruktionen af objektet, men er nødvendige for at gøre listen mere klar og ordnet i vinduet med objektparametre. Vi har brug for et hjørne - dette er det andet ikon i tabellen. Den tredje kolonne er Navn. Her kan du skrive uden regler på noget sprog, hvad vi nøjagtigt vil se senere i objektparametervinduet. Og den sidste kolonne er værdi. Nu kan du lade 0 være her: denne værdi ændres når som helst både i scriptet og i parametrene for selve objektet. Figur 2 viser, hvordan de to nye muligheder ser ud i vinduet GDL Object Editor. 5. Brug pilene i begyndelsen af linjen til at flytte linjen til et praktisk sted.

zoom
zoom

Derefter skal du gemme objektet under et nyt navn, da standardbiblioteket er hårdkodet i containeren, og du ikke kan overskrive objekter i det. Objektparametervinduet vil nu se sådan ud (fig. 6).

zoom
zoom

Der er to nye parametre, hvis værdi til enhver tid kan ændres. Men nu vil der ikke ske noget, da der endnu ikke er skrevet nogen kommandoer ved hjælp af dem. Nu skal du åbne 3D-script-vinduet. Her er en komplet beskrivelse af, hvordan man bygger en 3D-model baseret på de givne parametre. Derudover kan forskellige makroer indlejres i objektet. Før alle konstruktioner skal du rotere koordinatsystemet, hvor objektet skal bygges. Her er det vigtigt at forstå følgende logik: alle rotationer, bevægelser og skalering forekommer anderledes end når man arbejder i selve ARCHICAD. Vi tager ikke et element og roterer det, men roterer det globale koordinatsystem (efter ændring bliver det lokalt) foran bygge et objekt. Flyt (ADD Command), Rotate (ROT), Scale (MUL) er koordinatsystemtransformationskommandoer. Yderligere transformationer kan slettes i scriptet en efter en, flere på én gang eller slette alt på én gang. Referencebogen beskriver alt dette i tilstrækkelig detaljering og med eksempler. Et eksempel på at flytte et koordinatsystem i 3D-rummet langs tre akser på én gang er vist i fig. 7. TILFØJ a, b, c

zoom
zoom

Så før alle konstruktionerne roterer vi koordinatsystemet, først langs den ene, derefter langs den anden akse. Rotation langs X-aksen udføres af ROTX alphax-kommandoen, hvor alphax er rotationsvinklen mod uret; i stedet for alphax skal du indtaste en tidligere oprettet variabel. Rotationen langs Y-aksen udføres på samme måde (fig. 8).

zoom
zoom

Nu kan du indstille forskellige vinkler til rotation - og ændringer i 3D-modellen finder sted i visningsfeltet øverst til venstre (fig. 9).

zoom
zoom

Nu kan du indstille forskellige vinkler til rotation - og ændringer i 3D-modellen finder sted i visningsfeltet øverst til venstre (fig. 9). Men der sker intet i 2D endnu. I et 2D-script bygges et objekt med separate linjer og polyliner, så tegningen af et objekt i plan er mange gange hurtigere. På et sted er dette umærkeligt, men hvis der er hundreder af sådanne net i projektet, vil bremsningen være betydelig. Du kan beregne koordinaterne for punkterne på disse linjer og plotte dem, som de ser ud i projektionen af det roterede objekt, men det er ikke meget simpelt og ikke meget hurtigt. I dette gitter foreslår jeg følgende løsning: hvis vinklerne i X eller Y ikke er lig med nul, vil objektet i 2D-scriptet, dvs. planen, blive gengivet som en projektion af 3D-modellen, og ellers på den gamle måde. Projektion af modellen til et 2D-script er bygget af kommandoen PROJECT2 projection_code, angle, method. Du kan læse, hvad projektionskode, vinkel, metode betyder i referencebogen, men vi bliver bekendt med den mere vigtige kommando fra sektionen af IF - THEN - ELSE - ENDIF kontrolerklæringer. Dette er betingede udsagn, der hjælper dig med at opbygge den betingede paragraf fra det foregående afsnit. I fig. 10 Jeg har fremhævet de tilføjede kommandoer i 2D-scriptet og tilføjet "oversættelse" i rødt til højre.

zoom
zoom

Nu skal du bare gemme objektet, og du kan bruge det (fig. 11). Fordelen ved denne metode i forhold til konvertering til morf er, at objektet forbliver parametrisk, det kan læses i specifikationerne, i det kan du ændre dimensionerne på lamellerne, størrelsen på rammen og alt andet, der var i det originale objekt.

zoom
zoom

Så detaljeret undersøgte vi ved hjælp af dette eksempel hovedvinduerne og scriptsne til GDL Object Editor. Hvis det objekt, du har valgt til rotation, ikke har parametre i form af en liste, som i dette gitter, men i form af billeder og diagrammer, betyder det, at udvikleren også har skrevet en grafisk grænseflade. Normalt er standardlisten med parametre skjult, som i fig. 12: Der er ingen sektion "Alle parametre" i rullelisten med parametersider.

zoom
zoom

I dette tilfælde skal du gå ind i parameterskriptet og finde den kommando, der skjuler alle parametrene (fig. 13). Dette script beskriver alle de handlinger, der påvirker parametrene: - betegnelse af indstillinger eller intervaller af mulige værdier (VALUES); - eventuelle beregninger, hvis resultat er tildelt parameteren (PARAMETERS); - skjulning eller låsning af parametre (HIDEPARAMETER, LOCK).

zoom
zoom

Linjen HIDEPARAMETERS ALL kan simpelthen slettes eller ved at sætte et "!" I begyndelsen af linjen, gør det ulæseligt (ifølge GDL-syntaks betragtes en linje, der starter med et udråbstegn, som en kommentar. Yderligere vil jeg skrive beskrivelser oversættelser i skærmbillederne efter "!" - tegnet). Derefter vises linjen "Alle parametre" på listen over parametersider, og ved at vælge den vil du se en standardliste med parametre, blandt hvilke der vil være nye linjer til rotation. EKSEMPEL # 2 - tekst på et symbol Jeg tager det næste eksempel fra det aktuelle projekt. Når man arbejder med planen for en flerfamiliehusbygning, var det nødvendigt at lægge bogstavet "K" på klimaanlæggets udendørs enheder - og således at det altid var placeret lodret. Naturligvis kunne brevet simpelthen være blevet tilføjet ovenpå med tekst eller en ekstern inskriptionstekst, men når klimaanlægget blev vendt, kunne teksten muligvis også have været flyttet. For at starte, tilføjede jeg fire nye parametre (figur 14):

zoom
zoom

1. Vis tekst: parametertypen er en boolsk værdi, som indebærer to mulige værdier: 0 (nej) og 1 (ja). Således kan teksten slås til eller fra.

2. Specialtekst: parametertype - tekst. Giver dig mulighed for at skrive enhver tekst i symbolet (jeg har til hensigt at bruge et bogstav, så det passer inde i rektanglet på klimaanlægget).

3. Skrifttype: skriv - tekst. Bemærk, at nogle typer skrivning af denne variabel giver dig mulighed for at vælge skrifttypeværdier i kolonnen fra listen over dem, der er installeret på computeren. "Fonttype" kalder denne liste automatisk, men hvis jeg skriver "typefont" eller bare "font", er jeg nødt til at skrive navnet på skrifttypen manuelt. Jeg bemærkede dette øjeblik tilfældigt i et af standardobjekterne.

4. Tekstpen: type - pen. Nå, alt er klart her.

Lad os nu se på ikonerne, som jeg klikkede på i begyndelsen af linjerne. Der trykkes på et ikon på den første linje

Image
Image

hvilket betyder fed - fed. Det vil sige, denne linje i objektparametervinduet vil være fed. De andre tre har et piktogram

Image
Image

… Det betyder, at disse linjer vil være indlejret i rullelisten under den første linje. I fig. 15 er et skærmbillede, der illustrerer, hvordan det ser ud i objektparametrene. For at starte, tilføjede jeg fire nye parametre (figur 15):

Рис. 15. Окно Параметров Объекта
Рис. 15. Окно Параметров Объекта
zoom
zoom

Og i fig. 16 - hvad jeg tilføjede i et 2D-script (traditionelt med oversættelse og kommentarer).

zoom
zoom

Fig. 16. Tilføjede linjer i et 2D-script I det næste skærmbillede (fig. 17) har jeg for at få større klarhed tonet forskellige typer ord / kommandoer / variabler.

zoom
zoom

Objektet er klar (fig. 18).

zoom
zoom

Og hvis jeg ikke skrev linjer med rotation og skalering, ville objektet se ud som i fig. 19.

zoom
zoom

EKSEMPEL # 3 - detaljering For at forenkle arbejdet med et projekt, når du skriver et objekt, kan du tilføje en tekstparameter med et valg af flere muligheder for detaljering (enkel, medium, detaljeret). Og i 3D-scriptet, når du bygger forskellige små dele, skal du tilføje en betingelse af typen: Hvis detaljeringsniveauet = "detaljeret", fortjener (beskrivelse af bygningsdele) slutningen af tilstanden Globale variabler særlig opmærksomhed. De er 40 sider lange i referencehåndbogen og er grupperet efter emne for nem søgning. I det forrige eksempel brugte jeg nogle objektorienteringsdata i projektet. Det samme afsnit i referencehåndbogen indeholder globale variabler til koordinaterne for objektplaceringen - de bruges til at oprette objekter såsom en leder med koordinater eller højder i en sektion / højde. Meget ofte bruges GLOB_SCALE - tegningens skala (afhænger af udsigten i henhold til det aktuelle vindue), i en skala fra 1: 100 er den lig med 100, i en skala fra 1:20 er den lig med 20. Den bruges oftest til at konvertere skriftstørrelsen til modelmålere eller omvendt. Denne parameter kan også bruges til at "hænge" skærmindstillinger på planen. For eksempel til en bænk, skriv følgende i et 2D-script:

HVIS GLOB_SCALE <100 DENNE ! hvis skalaen er større end 1: 100, så
PROJECT2 3, 270, 2 ! opbygge en projektion fra en 3D-model
ANDET ! Ellers
AFSLUT HVIS ! slutningen af tilstanden

Så på masterplanen i en skala fra 1: 500 vil bænkene blive vist som rektangler, og på et fragment med en større skala tegnes en detaljeret projektion. En lignende teknik, men til en tredimensionel model, bruges i standardtræer - hvis du aktiverer afkrydsningsfeltet Automatisk krontype. I en vis afstand fra kameraet skifter kronetypen fra detaljeret til simpelt og fra simpelt til ellipse. Det er sandt, at for at genstandens scripts kan læses igen, skal du gøre noget med dem - for eksempel efter at have ændret perspektivet, fremhæve alle træerne, åbne objektets parametervindue og uden at ændre noget skal du bare klikke på OK eller klik og fjern markeringen i afkrydsningsfeltet for udskiftning af omslag.

Lad mig vise det ved hjælp af eksemplet med at tilnærme en kugle. Her er hvad jeg skrev i et 3D-script: discam_x = abs (GLOB_EYEPOS_X-SYMB_POS_X) discam_y = abs (GLOB_EYEPOS_Y-SYMB_POS_Y) discam_h = sqr (discam_x ^ 2 + discam_y ^ 2) discam_z = discam_By ^ 2 + diskam_ = 20 så res = 50 hvis discam20 derefter res = 20 hvis discam30 derefter res = 10 hvis diskam> 40 så res = 5 resol res sfære 1 I scriptet brugte jeg de globale variabler GLOB_EYEPOS_X, GLOB_EYEPOS_Y, GLOB_EYEPOS_Z er koordinaterne for placeringen af kameraet (øjnene) i projektets 3D-vindue og SYMB_POS_X, SYMB_POS_Y, SYMB_POS_Z er koordinaterne for objektets placering i rummet; abs - nummer modul (fjerner "-", hvis nogen); sqr - kvadratrod; ^ 2 - kvadrering af et tal.

I 3D-vinduet, i forskellige afstande fra kameraet, tegnes kuglen med forskellige tilnærmelser. For klarhedens skyld tændte jeg wireframe-tilstanden (fig. 20).

zoom
zoom

Gennem de globale variabler kan objektet modtage: - data om projektets placering (nord, bredde, længdegrad, højde), angivet i den tilsvarende dialogboks; - nuværende etage og egen etage - typen af den aktuelle visning (for eksempel i GOST-jumpere anvendes følgende betingelse: hvis visningstypen er en liste, skal du oprette en visning af jumperen i et afsnit med positionsledere); i eksemplet med et gitter kan du tilføje følgende betingelse: Hvis visningstypen er en liste, skal du ikke rotere koordinatsystemet, så der under alle omstændigheder ville være et frontbillede i gitterlisten; - ufuldstændig visning af konstruktioner (du kan gøre, at objektet ikke viser nogle dele, hvis kun kernen er valgt).

Du kan trække vægdata ind i et vindue eller et dørobjekt. Visningsforklaringer kan få en masse forskellige oplysninger om det element, som de er knyttet til, for eksempel et afkrydsningsfelt med lag af en flerlagsstruktur eller en leder med et volumen af et element. Og så videre, 40 sider med forskellige og meget nyttige globale variabler. EKSEMPEL 4 - zonemarkør Lad os se på, hvordan en brugerdefineret zonemarkør oprettes. Hvis du opretter et nyt objekt og vælger Zone Passport-undertypen for det i sektionen Detaljer, vises i afsnittet Parametre alle de specifikke parametre, som Zone-værktøjet overfører til markøren, med blåt (fig. 21).

Рис. 21. Параметры объекта подтипа Паспорт Зоны
Рис. 21. Параметры объекта подтипа Паспорт Зоны
zoom
zoom

Ved hjælp af TEXT2-kommandoen kan du skrive en hvilken som helst af disse variabler i et 2D-script - sådan får du en markør, der kun består af tekst (fig. 22).

zoom
zoom

Ved hjælp af de generelle parametre for zonemarkøren kan du definere tekststil og liniehøjde afhængigt af skrifttypens højde: DEFINER STIL “ROOM” AC_TextFont_1, ROOM_LSIZE, 5.0 STIL “ROOM” række = ROOM_LSIZE / 1000 * GLOB_SCALE * 1,5 tekst2 0, række, ROOM_NUMBER tekst2 0, 0, ROOM_NAME tekst2 0, -row, ROOM_AREA Du kan oprette en ny parameter for at vælge typen af markør (fig. 23), indstille indstillinger for den i parameter-scriptet (fig. 24) og i 2D-script skriver forskellige typer markørgengivelse for forskellige typer.

zoom
zoom
zoom
zoom

2D script: hvis mt = "markør med nummer" så tekst2 0, 0, ROOM_NUMBER CIRCLE2 0,0, række endif hvis mt = "antal og areal" så tekst2 0, række / 2, ROOM_NUMBER tekst2 0, -row / 2, AREA_TEXT endif hvis mt = "titel og område" derefter tekst2 0, række / 2, ROOM_NAME tekst2 0, -row / 2, AREA_TEXT endif hvis mt = "antal, titel og område" derefter tekst2 0, række, ROOM_NUMBER tekst2 0, 0, ROOM_NAME text2 0, -row, AREA_TEXT endif if mt = "area only" then text2 0, 0, AREA_TEXT endif I dette script brugte jeg ikke den foruddefinerede områdevariabel som et område, men konverterede området til tekst og føjede til it enheder: area = str (ROOM_AREA, 4, 2)! konvertering af et tal til tekst med 2 decimaler AREA_TEXT = areal + "kvm." ! tilføje til strengværdien bogstaverne "kvm." Du kan supplere linjerne i markøren med linjer, der adskiller nogle linjer. Brug STW-kommandoen for at finde længden på en streng. Lad os tilføje i begyndelsen af scriptet: tl1 = stw (ROOM_NUMBER) / 1000 * GLOB_SCALE tl2 = stw (ROOM_NAME) / 1000 * GLOB_SCALE tl3 = stw (AREA_TEXT) / 1000 * GLOB_SCALE hvis mt = "antal og areal" så tl = MAX (tl1, tl3) hvis mt = “antal, titel og område” så tl = MAX (tl1, tl2) hvis mt = “titel og område” så tl = MAX (tl2, tl3) hvis mt = “kun område” så tl = tl3 OG i varianterne af markører tilføj linjerne med kommandoen LINE2 (fig. 25).

Рис. 25. 2D-скрипт
Рис. 25. 2D-скрипт
zoom
zoom

Hvis zonenummeret består af flere cifre, for markøren, kan du oprette en parameter for radius af en cirkel uafhængigt af skrifttypens højde eller i stedet for en cirkel beskrive en ellipseagtig form med en længde svarende til længden af zonetallinjen, som vi fandt tidligere: POLY2_ 5, 1 + 2 + 4, -tl1 / 2, række, 1, tl1 / 2, række, 1, tl1 / 2, -row, 1001, -tl1 / 2, -row, 1, -tl1 / 2, række, 1001 Du kan tilføje en ny parameter til gulvetype (FLOOR_TYPE) og en parameter, der giver dig mulighed for at skjule eller vise den (ShowFloorType), og i et 2D-script tilføje en trekant med en polylinje og tekst med gulvetype: hvis ShowFloorType derefter ADD2 0, række * 3 POLY2_ 4, 1, -row * 1.4, -row * 0.8, 1, row * 2.8,60,201, række * 1,4, -row * 0,8, 1, 0,0,700 tekst2 0,0, FLOOR_TYPE endif For gulvetypen er det ønskeligt at tilføje en separat parameter til pennen samt punkter til grafisk redigering af placeringen af gulvmarkøren. Jeg beskrev detaljeret, hvordan jeg tilføjede grafiske redigeringspunkter i mit webinar, og ved hjælp af linket i slutningen af artiklen kan du downloade objekter og se, hvordan dette implementeres i dette særlige tilfælde.

Og endelig, lad os overveje en anden meget vigtig undertype af et objekt, der åbner store muligheder - Bibliotekets globale parametre (fig. 26).

zoom
zoom

Et objekt med denne undertype bygger eller tegner ikke noget, det definerer parametre i modelvisninger. Således kan du tage de parametre ud, som du gerne vil se fælles for objektet, men samtidig være i stand til at indstille forskellige værdier for forskellige typer.

Jeg viser dette med et eksempel på en zonemarkør. Jeg stødte på projekter, hvor der var flere sæt zoner i forskellige lag til forskellige visninger. Hvis der er behov for forskellige markører, er bibliotekets globale parametre den bedste løsning.

Jeg har en markør, hvor det er muligt at indstille gulvetypen i en trekant og ændre markeringstypen (fig. 27). Og disse to parametre flyttes til en separat fil af subtypen Global Library Parameters (fig. 28).

zoom
zoom
zoom
zoom

For at disse parametre skal vises i dialogboksen Modelvisningsparametre, skal du registrere dem i objektgrænsefladescriptet (fig. 29). Jeg vil ikke dvæle detaljeret med de specielle kommandoer til dette script, de er beskrevet i tilstrækkelig detaljering og med eksempler i referencebogen. Jeg vil kun sige, at her beskriver vi, hvor denne eller den anden etiket eller knap vil blive placeret (et felt med et valg af muligheder, et flueben osv.), Billeder kan også indsættes i brugergrænsefladen. I standardbiblioteket har næsten ethvert objekt en grafisk grænseflade; du kan se alle mulighederne og se, hvordan disse scripts er skrevet. Foruden Check-knappen har scriptet også en View-knap. Ved at klikke på det kan du hurtigt se, hvad der sker.

zoom
zoom

Du kan gemme objektet og se det i dialogboksen Modelvisningsindstillinger (Figur 30). Her kan vi ændre typen af markering på én gang for alle zoner i projektet (med denne markør), men separat for forskellige typer.

zoom
zoom

Nu skal du i zonemarkeringsobjektet forespørge objektet om værdierne for disse to parametre. I hovedskriptet (som først læses af objektet, så alle beregninger og definitioner af værdier, der skal bruges i flere scripts, er det bedre at skrive her) Jeg skriver to linjer som denne: success1 = LIBRARYGLOBAL ("LibraryGlobals20 "," ShowFloorType ", ShowFloorType) success2 = LIBRARYGLOBAL (" LibraryGlobals20 "," mt ", mt)" succes "vil være 1, hvis anmodningen er vellykket; ellers vil det være 0.

Dette kan bruges til at skrive en advarselsmeddelelse i stedet for en zonemarkør om, at LibraryGlobals20-objektet ikke er indlæst i biblioteket.

Derefter fungerer objektet som normalt ved hjælp af to nye værdier: hvis typen af markering er sådan og sådan, så skriv sådan og så videre. I denne artikel har jeg kun dækket en lille del af GDL's muligheder. Med dens hjælp kan du oprette både meget enkle designelementer og meget komplekse objekter.

For eksempel har du at gøre med små og enkle SIP-panelhuse. Du har en specifik liste over muligheder for at ændre projektet: - Husets længde og bredde kan være fra 2,4 til 24 meter med et trin på 1,2 m; - hvis bredden overstiger 6 m, skal der være en anden væg i midten; - to muligheder for gulvhøjder afhængigt af panelstørrelsen; - antal etager - en eller to etager - vinduer kan være på visse steder af paneler af en bestemt størrelse; - efterbehandling af facader i tre versioner; - tagdækning i tre versioner - vægtykkelse i flere standardstørrelser og så videre.

Du kan indstille alle disse parametre for objektet ved at tilføje prisen pr. Kvadratmeter af panelet, taget, dekorationen osv. Og i 2D- og 3D-scripts af objektet skal du helt bygge og tegne dette hus med variabler i stedet for statiske dimensioner. For at brugeren ikke bliver forvirret i en lang liste med parametre, kan du skrive en grafisk grænseflade til flere sider med billeder og diagrammer. I hovedskriptet beregner du alle diskenheder og viser omkostningerne. Det er også muligt at vise en tabel med panelernes layout i et 2D-script ved siden af planen. At skrive et sådant objekt vil tage meget tid, du bliver nødt til at udarbejde en detaljeret teknisk specifikation, sørge for alle nuancer, men så modtager du ikke kun et objekt, men næsten et program, hvor du ved at vælge parametre kan få et sæt udkast til design med en beregning af materialer og omkostninger for kunden. Forhåbentlig har denne oversigt vakt nogens interesse i GDL's muligheder. Min historie begyndte med et stærkt ønske om at ændre nogle små detaljer i en eller anden standardzonemarkør, og jo mere jeg læste guiden, jo mere afsløres potentialet i dette værktøj, efter min mening, meget nyttigt for en arkitekt. Fra nedenstående link kan du downloade alle de objekter, der blev betragtet som eksempler i denne artikel: Download eksempler Bemærk. ARCHICAD 20 blev brugt til at skrive disse objekter, så de åbnes ikke i tidligere versioner. Om GRAPHISOFT GRAPHISOFT Company® revolutionerede BIM i 1984 med ARCHICAD® Er branchens første BIM-løsning til arkitekter i CAD-branchen. GRAPHISOFT fortsætter med at lede det arkitektoniske softwaremarked med innovative produkter som BIMcloud ™, verdens første realtids samarbejdsvillige BIM-designløsning, EcoDesigner ™, verdens første fuldt integrerede energimodellering og energieffektivitetsvurdering af bygninger og BIMx® Er den førende mobilapp til fremvisning og præsentation af BIM-modeller. Siden 2007 har GRAPHISOFT været en del af Nemetschek Group.

Anbefalede: