abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 
abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 
Programmierung
Alles über Programmierung in GDL und Python

GDL-Objekt + Grundriss-Darstellung

Anonymous
Nicht anwendbar
Hallo,
ich hab mir ein GDL-Objekt gebastelt habe nun das Problem, dass es im Grundriss nur als Aufsicht dargestellt wird. Da es über 3 Geschosse geht, wäre es mir aber sehr lieb, es würde jeweils entsprechend der horizontalen Schnittebene korrekt darestellt werden.

Ich hab jetzt schon ein bisschen gestöbert und weiß inzwischen dass es wohl prinzipiell möglich ist. Leider habe ich noch keinerlei Erfahrung mit GDL-Skripts gemacht, bzw. sind jene gerade mal eine halbe Stunde alt.

Ich habs auch schon hinbekommen dass er das Objekt bei einer bestimmten Höhe geschnitten hat.
schnitthoehe=1.0
ADDZ schnitthoehe
CUTPLANE
DEL 1

Aber ich möchte ja nicht immer bei einem Meter schneiden, sondern abhängig vom jeweiligen Geschoss. Jetzt bin ich zwar schon auf den Befehl GLOB_CUTPLANES_INFO gestoßen, habe aber keine Ahnung wie ich ihn anwenden muss.

Weiß jemand Rat?
13 ANTWORTEN 13
Anonymous
Nicht anwendbar
Möglicherweise hilft "HOME_STORY", siehe
selfGDL

je nachdem, was Du vorhast vielleicht auch eine globale Variable.
zzyzx
Newcomer
ich würd's mit GLOB_CH_STORY_DIST machen, ungefähr so:
if glob_context = 2 then
if GLOB_CH_STORY_DIST = 0 then cutplane ... 1m
if GLOB_CH_STORY_DIST = 1 then cutplane ... 3.5m
if GLOB_CH_STORY_DIST = 2 then cutplane ... 6m
endif
... 3d zeugs ...

if glob_context = 2 then cutend

siehe auch hier: selfgdl.de : GLOB_CH_STORY_DIST

das cutplane zeugs entsprechend anpassen.
:winken:
Frank Beister
Moderator
Nachdem hier so munter aus selfgdl zitiert wird, mache ich das auch.

Die Schnittebene soll 1,0m über der aktuellen Geschoß-Nullhöhe liegen. Da hilft uns die Lagevariable weiter:

GLOB_CSTORY_ELEV

Der kryptische Name ist eine Verkürzung von Current_STORY_ELEVation. Im Gegensatz zum Einsetzgeschoß, dem Home STORY: GLOB_HSTORY_ELEV.

Nun liegt das Objekt aber irgendwo im Raum und mißt von dort mit 0. Die Lage des Objektes ist SYMB_POS_Z.

Deine Zeile mit dem ADDz müßte lauten:

ADDz GLOB_CSTORY_ELEV-SYMB_POS_Z+1

Vergiss am Ende des Skriptes den CUTEND nicht, sonst meckert der Debugger wegen schlechten Stils!

Respekt! Für eine halbe Stunde ein guter Start!

[ 22. Februar 2008, 00:43: Beitrag editiert von: Frank Beister ]
bim author since 1994 | bim manager since 2018 | author of selfGDL.de | openGDL | skewed archicad user hall of fame | author of bim-all-doors.gsm
Anonymous
Nicht anwendbar
Zunächst vielen Dank für Eure Antworten.

Ich habe es nochmals versucht, speziell mit dem Befehl ADDz GLOB_CSTORY_ELEV-SYMB_POS_Z+1.

Leider wird aber immer noch nicht pro Geschoss ein eigener Grundriss generiert. Außerdem erscheint das Objekt auch im 3D Fenster geschnitten, was ich eigentlich nicht will.

Soweit ich weiß muss bei GDL klar zwischen 2D-Skript und 3D-Skript unterschieden werden. Jetzt habe ich aber immer nur am Quelltext des 3D-Skripts was geändert und das 2D-Skript bestand allein aus der Zeile PROJECT2 3,270,2 womit er ja vom Modell des 3D-Skripts eine Projektion in 2D erzeugt. Kann ich denn nicht mein Vorhaben allein im 2D-Skript erreichen und das 3D-Skript unberührt lassen?. Habe schon versucht, den Quelltext aus 3D nach 2D zu kopieren, aber dann weiß ich nicht wie ich mit dem PROJECT-Befehl umgehen muss.

Hier mal ein Auszug aus dem 3D-Skript, so wie es im Moment aussieht:

!Wurde aus der Datei erzeugt:"träger 14007.3ds"
!Anzahl Teilobjekte:2
!Anzahl Polygone :23348
!Verwendete Textur:1

ADDz GLOB_CSTORY_ELEV-SYMB_POS_Z+1
CUTPLANE
DEL 1

IF AC3D_SHOW3D THEN

MUL A/174.199997, B/7.632780, zzyzx/41.137501

hotspot -174.20000, -0.60000, 0.00000
hotspot 0.00000, -0.60000, 0.00000
hotspot -174.20000, 7.03278, 0.00000
hotspot 0.00000, 7.03278, 0.00000
hotspot -174.20000, -0.60000, 41.13750
hotspot 0.00000, -0.60000, 41.13750
hotspot -174.20000, 7.03278, 41.13750
hotspot 0.00000, 7.03278, 41.13750

DEFINE MATERIAL "Mat_1" 0,
0.200000, 0.200000, 0.200000,
!Oberfläche RGB [0.0..1.0]x3
min(1,max(0,Mat_1_amb)),
min(1,max(0,Mat_1_dif)),
min(1,max(0,Mat_1_spe)),
0.000000,
!Streulicht, Diffus, Spiegelnd, Transparenz
!Koeffizient [0.0..1.0]x4
0.000000,
!Glanz [0.0..100.0]
1.000000,
!Transparenz Abstrahlung [0.0..4.0]
0.000000, 0.000000, 0.000000,
!Spiegelnd RGB [0.0..1.0]x3
0.000000, 0.000000, 0.000000,
!Emission RGB [0.0..1.0]x3
0.000000
!Emission Abstrahlung [0.0..65.5]

MODEL SURFACE

!Mesh name:"Objek"
TEVE 0, 0, 0, 0, 0 !#1
TEVE 1, 0, 0, 0, 0 !#2
TEVE 0, 1, 0, 0, 0 !#3
TEVE 0, 0, 1, 0, 0 !#4
COOR 1024, -1, -2, -3, -4
BASE
PEN 8
BODY 1

!Mesh name:"Objekt-002"
BASE
DEFINE MATERIAL "CONVERT_DEFAULT" 0,
0.700000, 0.700000, 0.700000,
!Oberfläche RGB [0.0..1.0]x3
min(1,max(0,CONVERT_DEFAULT_amb)),
min(1,max(0,CONVERT_DEFAULT_dif)),
min(1,max(0,CONVERT_DEFAULT_spe)),
0.000000,
!Streulicht, Diffus, Spiegelnd, Transparenz
!Koeffizient [0.0..1.0]x4
20.000000,
!Glanz [0.0..100.0]
1.000000,
!Transparenz Abstrahlung [0.0..4.0]
0.700000, 0.700000, 0.700000,
!Spiegelnd RGB [0.0..1.0]x3
0.000000, 0.000000, 0.000000,
!Emission RGB [0.0..1.0]x3
0.000000
!Emission Abstrahlung [0.0..65.5]
IF use_AC_CONVERT_DEFAULT = 1 THEN
material AC_CONVERT_DEFAULT
ELSE
material "CONVERT_DEFAULT"
ENDIF
VERT -124, 6.73278, 0.75271 !#1
VERT -124.00455, 6.78487, 0.74627 !#2

GANZ VIELE WEITERE ZAHLENWERTE

PGON 3, 0, 2, -21650 , -34877 , 34883 !#22832
PGON 3, 0, 2, -34831 , -34883 , -21665 !#22833
BODY 2


CUTEND

ENDIF
!Aufgelistete Polygone:22833
Frank Beister
Moderator
</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">Zitat:</font><hr /><font size="2" face="Verdana, Helvetica, sans-serif">Leider wird aber immer noch nicht pro Geschoss ein eigener Grundriss generiert.Hmmm. Das könnte was mit den Grundrißdarstellungen zu tun haben. Probiere da mal "Symbol".

</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">Zitat:</font><hr /><font size="2" face="Verdana, Helvetica, sans-serif">Außerdem erscheint das Objekt auch im 3D Fenster geschnitten, was ich eigentlich nicht will.:) Da habe ich eigentlich drauf gewartet: Probiere mal vor dem CUTPLANE und dem CUTEND folgendes:

IF GLOB_CONTEXT=2 THEN CUTPLANE
...
IF GLOB_CONTEXT=2 THEN CUTEND
bim author since 1994 | bim manager since 2018 | author of selfGDL.de | openGDL | skewed archicad user hall of fame | author of bim-all-doors.gsm
Anonymous
Nicht anwendbar
Vielen Dank für die Hilfe Frank,

ich habe jetzt geschafft, dass er in 3D wieder das gesamte Modell anzeigt.

Ich weiß allerdings noch nicht, was mit "Symbol" gemeint ist. Hat das mit den Einstellungen bei den Parametern im GDL-Skript zu tun?

Gruß,
Dominique
Anonymous
Nicht anwendbar
Das kann evt. mit deinem

MODEL SURFACE

zusammenhängen, weil dein Körper nur aus Oberfläche besteht. Vielleicht ist der Körper ja geschlossen. Testen mit:

MODEL SOLID

oder einem Dummy-Körper, der sicher ein Volumen hat. z.B.

ROTX 5 : BLOCK a,b,zzyzx
Nadeng
Participant
Hallo!
Ich habe mir (mit Hilfe einer Decke) ein Objekt gebastelt und habe nun auch das Problem, dass das ganze nur als eine Art transparente Aufsicht, also mit allen vorhandenen Linien, dargestellt wird. Ich hætte gerne eine Schnittdarstellung in 1 m Høhe und hab schon versucht eure Skripte einzubauen, aber irgendwie funktioniert das bei mir nicht. Entweder das ganze Objekt verschwindet in 2D+3D (ist allerdings noch in der Datei vorhanden und mit Find&Select auswæhlbar) oder es passiert gar nichts ...

Kønnt ihr mir weiterhelfen? Ich muss dazu sagen, ich hab so gut wie gar keine Ahnung vom GDL-Scripting 🙂

Hier ist mein 3D Skript, so wie es aus Archicad kommt:

!
! Name : a5b.gsm
! Date : fredag 6. februar 2009
! Version : 12.00
! Written by ArchiCAD
!

mulx A/15.77062988281
muly B/0.210000038147
mulz ZZYZX/12.10437202454
addx 306.4392700195
addy 3.210000038147
addz 26.30409431458
rotx 270
rotz 180
body -1
model solid
resol 36
GLOB_SCRIPT_TYPE = 3
GLOB_CONTEXT = 3
GLOB_SCALE = 100
GLOB_NORTH_DIR = 90
GLOB_DRAWING_BGD_PEN = 19
GLOB_FRAME_NR = -1
GLOB_EYEPOS_X = -1.716498534531
GLOB_EYEPOS_Y = 12.09434982485
GLOB_EYEPOS_Z = 2.966952756999
GLOB_TARGPOS_X = 23.60051579704
GLOB_TARGPOS_Y = 3.455443271612
GLOB_TARGPOS_Z = -2.332303906062
GLOB_SUN_AZIMUTH = 299.2709959086
GLOB_SUN_ALTITUDE = 51.07175113068
GLOB_HSTORY_ELEV = -9
GLOB_HSTORY_HEIGHT = 3
!!Dekke-01
pen 243
GLOB_LAYER = "00_trees 3D"
GLOB_ID = "Dekke-01"
GLOB_INTGUID = "D4D3BE15-7BD3-4D46-87BD-3B17114571BB"
body -1
addz -3.21
cprism_ "Maling-11", "Maling-11", "Maling-11",
21, 0.21,
301.6716867627, -26.20409460273, 15,
301.6716867627, -26.15409460291, 15,
299.2039524449, -24.17990714684, 15,
299.053952445, -23.92009952664, 15,
299.0539521391, -21.12496978976, 15,
299.3039521391, -20.69195708726, 15,
306.4392560512, -19.31014708523, 15,
306.4392560512, -19.00971701369, 15,
298.6589512169, -19.42449701019, 15,
298.4489512169, -19.42449701019, 15,
291.0451972877, -14.19972210377, 15,
290.6686513396, -14.19972210377, 15,
290.6686513396, -14.29972210433, 15,
297.803952445, -20.55995023157, 15,
298.053952445, -20.99296293315, 15,
298.053952445, -23.80409460235, 15,
297.9039524449, -23.80409460235, 15,
297.9039524449, -26.30409460235, 15,
298.6589524449, -26.30409460235, 15,
298.6589524449, -26.20409460273, 15,
301.6716867627, -26.20409460273, -1
del 1
body -1
Anonymous
Nicht anwendbar
Probiers mal so:
ADDz 1
CUTPLANE
DEL 1

mulx A/15.77062988281
muly B/0.210000038147
mulz ZZYZX/12.10437202454

.......

body -1

CUTEND
Und dann im 2D-Script nur:


PROJECT2 3,270,2 


[ 09. Februar 2009, 17:54: Beitrag editiert von: Jochen Suehlo ]