abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 
abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 
Bibliotheken und Objekte
Archicad- und BIMcloud-Bibliotheken, deren Verwaltung und Migration, Objekte und andere Bibliotheksteile, etc.
GELÖST!

Bib-Objekt mit Text maßstabsunabhängig selbst erstellen

BenjaminSchober
Advocate

Hallo,

 

ich pflege gerade einmal wieder unsere Vorlagedatei und bin dabei unsere Vorlageobjekte für den Brandschutz zu integrieren, da die in der ArchiCAD-Bibliothek nicht zu unserer Vorlage passen. Das Objekt ist denkbar einfach gestrickt. Ein Text wird mit einem farbigen Fillingrahmen umschlossen. Das Ganze bekommt ein paar Fixpunkte als Griffe und wird dann als Objekt gespeichert. Soweit so gut.

 

Das System hat allerdings einen Haken: Egal ob ich den Text modellgrößen- oder papiergrößenabhängig einstelle, verändert sich die Proportion Text zu Rahmen beim Verändern des Maßstabs. Ich finde keine Einstellung, die das verhindert. Muss ich etwas im 2D-Script ändern?

 

Vielen Dank für eure Hilfe.

Gruß,
Benjamin Schober | Eidenhardt + Schober Architektur PartGmbB

ArchiCAD 21-29 (Voll, D), Windows 11 Pro (64-bit), Intel Core Ultra 9 285, 64 GB RAM, nVidia RTX 2000 Ada, 16 GB DDR6
1 AKZEPTIERTE LÖSUNG

Akzeptierte Lösungen
Lösung
Hmooslechner
Moderator

Du musst zuerst einen Textstil festlegen und dann den Zeichnuhgsmaßstab als Größenparameter gegenrechnen - beispielsweise so:

 

"DEFINE STYLE "TextGross" Arial, Textgroesse/glob_scale*100, 8, 0"
 
Erklärung:
DEFINE STYLE   = Befehl
"TextGross" = name des Stiles zum späteren Verwenden im GDL
Arial = Schriftname 
Textgroesse muss in der Parameterliste definiert sein.
/glob_scale*100 = Verhindern späterer Textgrößenänderungen
8 = Einfügepunkt des Textes (1-9)
0 = nicht fett oder so
 
Später musst Du mit:   
Style TextGross
 
diesen für nachfolgende Texte festlegen.
 
Dann sollte es klappen.
 
 
 
 
AC5.5-AC27EduAut, PC-Win10, MacbookAirM1, MacbookM1Max, Win-I7+Nvidia

Lösung in ursprünglichem Beitrag anzeigen

3 ANTWORTEN 3
Lösung
Hmooslechner
Moderator

Du musst zuerst einen Textstil festlegen und dann den Zeichnuhgsmaßstab als Größenparameter gegenrechnen - beispielsweise so:

 

"DEFINE STYLE "TextGross" Arial, Textgroesse/glob_scale*100, 8, 0"
 
Erklärung:
DEFINE STYLE   = Befehl
"TextGross" = name des Stiles zum späteren Verwenden im GDL
Arial = Schriftname 
Textgroesse muss in der Parameterliste definiert sein.
/glob_scale*100 = Verhindern späterer Textgrößenänderungen
8 = Einfügepunkt des Textes (1-9)
0 = nicht fett oder so
 
Später musst Du mit:   
Style TextGross
 
diesen für nachfolgende Texte festlegen.
 
Dann sollte es klappen.
 
 
 
 
AC5.5-AC27EduAut, PC-Win10, MacbookAirM1, MacbookM1Max, Win-I7+Nvidia
Hmooslechner
Moderator

Was sagt die KI dazu: (Google AI-Studie Gemini3 Pro testen)

User

Wie kann man in Archicad-GDL 2D-Script die Textgröße so formatieren, dass sich diese Textrgröße im Verhältnis zur Dargestellten Geometrie bei Maßstabsänderungen im Grundriss NICHT mit verändert?

 
 
 
 

Um in GDL zu erreichen, dass sich die Textgröße wie ein physisches Objekt verhält (also "Modellgröße" statt "Papiergröße" hat und mit dem Gebäude mitwächst/schrumpft), müssen Sie die Textgröße im DEFINE STYLE-Befehl dynamisch auf Basis des aktuellen Maßstabs (GLOB_SCALE) berechnen.

Normalerweise erwartet GDL die Textgröße in mm (Papiergröße). Das Ziel ist es, diese Millimeter-Angabe so umzurechnen, dass sie immer z.B. "50 cm in der Realität" entspricht.

Hier ist die Vorgehensweise und der Code dazu:

Die Logik

Die Formel zur Umrechnung lautet:

Textgro¨ße in mm=Gewu¨nschte Gro¨ße in Meter×1000Aktueller Maßstab

 

  • Gewünschte Größe in Meter: Die reale Höhe, die der Text im Modell haben soll (z.B. 0.5 m).

  • GLOB_SCALE: Die globale Variable von Archicad für den aktuellen Maßstab (bei 1:100 ist der Wert 100).

Das GDL-Skript (2D-Script)

Kopieren Sie diesen Block in Ihr 2D-Skript:

Gdl
 
! ----------------------------------------------------------------------
! DEFINITIONEN
! ----------------------------------------------------------------------
! Angenommen, Sie haben einen Parameter "myTextSizeM" für die Größe in Metern.
! Wenn nicht, definieren wir hier eine lokale Variable:
_reqSizeInMeter = 0.5   ! Der Text soll in der Realität 50cm hoch sein

! ----------------------------------------------------------------------
! BERECHNUNG
! ----------------------------------------------------------------------
! Umrechnung von Modellgröße (Meter) in Papiergröße (mm)
! basierend auf dem aktuellen Maßstab (GLOB_SCALE)
_calcSizeInMM = (_reqSizeInMeter * 1000) / GLOB_SCALE

! ----------------------------------------------------------------------
! STIL DEFINIEREN UND SETZEN
! ----------------------------------------------------------------------
! Stil definieren mit der berechneten mm-Größe
! Syntax: DEFINE STYLE "Name" Schriftart, Größe_in_mm, Anker, Stilflags
DEFINE STYLE "ModellGrStyle" "Arial", _calcSizeInMM, 5, 0

! Stil aktivieren
SET STYLE "ModellGrStyle"

! ----------------------------------------------------------------------
! TEXT AUSGEBEN
! ----------------------------------------------------------------------
TEXT2 0, 0, "Dieser Text ist 50cm hoch"

Erklärung des Verhaltens

  1. Maßstab 1:100 (GLOB_SCALE = 100):

    • Rechnung: (0.5 * 1000) / 100 = 5 mm.

    • Der Text wird auf dem Plan 5 mm hoch gedruckt. Das entspricht im Planvergleich 50 cm.

  2. Maßstab 1:50 (GLOB_SCALE = 50):

    • Rechnung: (0.5 * 1000) / 50 = 10 mm.

    • Der Text wird auf dem Plan 10 mm hoch gedruckt (doppelt so groß wie vorher).

    • Da auch die Wände bei 1:50 doppelt so groß gezeichnet werden wie bei 1:100, bleibt das Verhältnis zwischen Text und Wand gleich.

Wichtiger Hinweis für die Praxis

Wenn Sie diese Methode verwenden, sollten Sie sich bewusst sein, dass der Text bei großen Maßstabsänderungen (z.B. Wechsel von 1:50 auf 1:500) unleserlich groß oder winzig klein werden kann. Es ist oft ratsam, im GDL eine Mindestgröße (in mm Papiergröße) einzubauen, damit der Text nie kleiner als z.B. 1.5mm wird, auch wenn er rein rechnerisch kleiner sein müsste.

Beispiel mit Mindestgröße:

Gdl
 
_reqSizeInMeter = 0.5
_minSizeMM      = 2.0  ! Text darf auf dem Papier nie kleiner als 2mm sein

_calcSizeInMM = (_reqSizeInMeter * 1000) / GLOB_SCALE

! Sicherheitsabfrage: Nimm das Größere von beiden
IF _calcSizeInMM < _minSizeMM THEN _calcSizeInMM = _minSizeMM

DEFINE STYLE "SmartStyle" "Arial", _calcSizeInMM, 5, 0
SET STYLE "SmartStyle"
TEXT2 0, 0, "Modellgröße mit Mindestschutz"
AC5.5-AC27EduAut, PC-Win10, MacbookAirM1, MacbookM1Max, Win-I7+Nvidia

Hallo Heimo,

vielen Dank für deine Antwort. Es ist das erste Mal, dass ich in einem 2D-Script unterwegs bin. Daher hat mir deine Erläuterung den Weg sehr komfortabel vorgezeichnet. TOP!

 

Jetzt habe ich noch eine Frage zur Struktur der Scripte, die durch ArchiCAD erstellt werden, wenn ich einen Zeichnungsinhalt als ein Objekt speichere:

Warum unterscheidet sich die Struktur des 2D-Scripts, obwohl die Objekte jeweils Ableitungen aus einer Vorlage waren? Hat das etwas mit der Anordnung der Elemente zu tun? Je nach dem welches Element im Vordergrund liegt?

Gruß,
Benjamin Schober | Eidenhardt + Schober Architektur PartGmbB

ArchiCAD 21-29 (Voll, D), Windows 11 Pro (64-bit), Intel Core Ultra 9 285, 64 GB RAM, nVidia RTX 2000 Ada, 16 GB DDR6