am 2025-12-10 02:45 PM
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.
Gelöst! Gehe zu Lösung.
am 2025-12-10 07:23 PM
Du musst zuerst einen Textstil festlegen und dann den Zeichnuhgsmaßstab als Größenparameter gegenrechnen - beispielsweise so:
am 2025-12-10 07:23 PM
Du musst zuerst einen Textstil festlegen und dann den Zeichnuhgsmaßstab als Größenparameter gegenrechnen - beispielsweise so:
am 2025-12-11 07:42 AM
Was sagt die KI dazu: (Google AI-Studie Gemini3 Pro testen)
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 Formel zur Umrechnung lautet:
Textgro¨ße in mm=Gewu¨nschte Gro¨ße in Meter×1000Aktueller MaßstabTextgro¨ße in mm=Aktueller MaßstabGewu¨nschte Gro¨ße in Meter×1000
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).
Kopieren Sie diesen Block in Ihr 2D-Skript:
! ----------------------------------------------------------------------
! 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"
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.
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.
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:
_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"
2025-12-11 08:45 AM - bearbeitet 2025-12-11 08:54 AM
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?