coord-transf.2d elements3d elementsnon geo scriptsfunctionscontrol statem.attributesvariousaddons
placeholdersexpressionsoperatorsstatus codesbuffer storageglobal param.environ. values
REQUEST REQUEST{2} REQ
Name
REQUEST

   
Syntax:
REQUEST ("HEIGHT_OF_STYLE", name, font_height [, descendr, line_spacing])
Aufklappen Wertebereich
name = Name des Schriftstils, Typ Text
font_height = Schrifthöhe, Typ Real
descender = Höhe Unterlängenlinie, Typ Real (since ArchiCAD 8.0)
line_spacing = Gesamthöhe Schrift, Typ Real (since ArchiCAD 8.0)
Aufklappen ArchiCAD
since 5.0
Aufklappen Erläuterung
Gibt die Höhe eines mit DEFINE STYLE definierten Schriftstils in Millimetern an die Variable font_height zurück.
Ab ArchiCAD 8.0 kann mit dieser Funktion optional die Höhe der Unterlänge (Abstand in Millimetern von der Text-Grundlinie bis zur Unterlängenlinie) und der Zeilenabstand (Abstand in Millimetern von der Unterlängenlinie bis zur Einsetzhöhe des Textes) abgefragt werden. Die Oberlängenhöhe kann aus diesen Werten errechnet werden. Siehe Abbildung.

Der Rückgabewert der Funktion ist wieder die Anzahl der übergebenen Werte. Ist der Schriftstil nicht definiert, ist das Funktionsergebnis 0.

Die Höhen in Abhängigkeit des eingestellten Maßstabes in Meter errechnen sich aus
RealeHöhe = Höhe / 1000 * GLOB_SCALE
Aufklappen Besonderheiten:
Gute Schriften halten sich nicht exakt an die im Schriftschnitt des Zeichensatz angegebenen Höhenlinien, da Buchstaben sonst leicht zu klein oder zu groß wirken. Daher kann die exakte Abmessung eines Buchstabens nicht bestimmt werden. Aber mit diesen Informationen kommt man dem eigentlichen Textblock doch sehr nahe.
Aufklappen Tipps:
Verschiebungen in Y-Richtung um den Text direkt an der aktuellen Position, ohne Zeilenabstände unten/oben und Unterlängen einzusetzen:

! Textposition
anker=5
! Zeichenhöhe in mm und Name
zh=2.5 : name="zentrierterText"

! Schrift definieren
DEFINE STYLE name "Arial",zh,anker,0
STYLE name

! Schriftschnitt abfragen
query=REQUEST ("HEIGHT_OF_STYLE", name, sh, ul, za)

IF anker>6 THEN
 ! Verschiebung für Ankerpunkte 7-8-9
 ty=-(ul+za)/10
 else
 IF anker<4 THEN
  ! Verschiebung für Ankerpunkte 1-2-3
  ty=(sh-zh-ul-za)/10
  else
  ! Verschiebung für Ankerpunkte 4-5-6
  ty=(sh/2-ul-za-zh/2)/10
  endif
 endif

! Maßstsince ignorieren:
ty=ty*GLOB_SCALE/100

! Ausgabe
TEXT2 0,ty,"TEXTMITTE"

Aufklappen Referenzen:
GDL-Handbuch 5.0 (DE) p. 128
GDL-Handbuch 6.0 (DE) p. 223
GDL-Handbuch 6.5 (DE) p. 223
GDL-Handbuch 7.0 (DE) p. 224
GDL-Handbuch 8.0 (DE) p. 150
GDL-Handbuch 8.1 (DE) p. 151
GDL-Handbuch 9.0 (DE) p. 246
GDL-Handbuch 10.0 (DE) p. 247
GDL-Handbuch 11.0 (DE) p. 253
GDL Reference Guide 9.0 (INT) p. 236
GDL Reference Guide 10.0 (INT) p. 244
GDL Reference Guide 11.0 (INT) p. 245

 






A: zeilenabstand
B: unterlänge
C: Definitionshöhe=zeichenhöhe
D: schrifthöhe