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

numerische variable

graber
Advocate
Hallo,

Möchte die Belichtungsfläche in einem Raumstempel angeben.
Zudiesem Zweck stelle cih dei rechnung auf: belprozent= (ROOM-WINDS_SURF / ROOM_AREA
Jedoch läßt er dies nicht zu mit der Meldung:
Operator kann nur numerische Variablen verarbeiten...

Was mache ich falsch?
13 ANTWORTEN 13
Frank Beister
Mentor
Schreibfehler? "-" darf in Variablen AFAIK nicht vorkommen.

Aber nebenbei: Vorsicht mit den Öffnungsflächen. Da werden A) alle Öffnungen zusammenaddiert. Also auch sich überlappende. und B) Öffnungen unter dem Schwellenwert, der im Berechnungsmenü eingestellt ist, ignoriert.

Bei B) bin ich mir nicht 100% sicher. -> Prüfen.

[ 14. März 2006, 13:20: 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
graber
Advocate
danke, aber der schreibfehler war nur in dem
beitrag.

tatsächlich lautet es: ROOM_WINDS_SURF/ROOM_AREA was mich aber zu obigem Fehler führt.
(übrigens sind beide variablen natürliche zahlen)
graber
Advocate
daher bitte nochmals um lösung des problems
Frank Beister
Mentor
Die Fehlermeldungen (und manchmal auch nur Hinweise) des Debuggers/Parsers sind manchmal sehr merkwürdig. Ich schlage vor, daß du mal die komplette Zeile postest, denn deinem Beispiel fehlt oben auch eine Klammer. So stochern wir etwas rum.

ROOM_WINDS_SURF ist der korrekte Name und numerisch.
ROOM_AREA ebenso.

ROOM_AREA ist aber im Editierfenster (und evt. auch im Einstellungsfenster) =0. Dann bekommst du einen "division by zero". Kann sein, daß aus den besagten Ungereimtheiten bei den Meldungen sich AC da nur verspricht. 😉
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
Frank Beister
Mentor
Falls das der Fehler war:
</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">Code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">IF GLOB_CONTEXT=1 or GLOB_CONTEXT=5 THEN
belprozent=0
ELSE
belprozent=ROOM_WINDS_SURF / ROOM_AREA
ENDIF
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
graber
Advocate
Also die Zeile lautet:

belprozent = (ROOM_WINDS_SURF / room_area)

wie bereits geschrieben: ROOM_WINDS_SURF und ROOM_AREA sind "Natürliche Zahlen" (sie sind in dem Raumstempel_02 (der AUT-Edition) schon enthalten.) Ob ich belprozent definiere - und als was (als Länge oder natürliche Zahl) - ist "wurscht".
Im übrigen ist ROOM_AREA <> 0
Um sicherzugehen habe ich die Zeile wie folgt geändert:
If Room_area <> 0 then belprozent = (ROOM_WINDS_SURF / room_area)
was mich interessanterweise zur Fehlermedlung:
Inkompatible Variable in Ausdruck bei Zeile...
führt
graber
Advocate
habe die Lösung:
weiter oben wurde ROOM_AREA in einen String verwandelt. Wußte gar nicht daß man vordefinierte Variable auch (vom Typ her) ändern kann.

Zudem: Leider stimmt es, daß er kleine Fenster (ich nehme an unter 1m²) nicht berücksichtigt. Wie und wo kann ich das umstellen?
Frank Beister
Mentor
Die Zeile ist korrekt. Fehlermöglichkeiten:

Fehler ist nicht in der Zeile, sondern in "benachbarter". Masterskript - Zeilenanzahl berücksichtigt? Mal Zwischenstops mit END einfügen.

belprozent wurde zuvor als String definiert? Vor der krit. Zeile mal belprozent=123 eintragen.

Sonst schicke mir mal das Skript.
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
graber
Advocate
wie du vermutet hast (siehe beitrag oben...)