abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 
abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 

Wir schätzen Ihren Input!
Bitte nehmen Sie an der Umfrage zu Archicad 28 Startbildschirm und Lerninhalte/Schnell-Tutorials teil

Programmierung
Alles über Programmierung in GDL und Python

Textgröße in selbst gemachtem Objekt anpassen

mac_martin
Newcomer
Hallo zusammen,

ich habe ein ganz einfaches selbstgemachtes Objekt.
Dieses enthält einen Text, dessen Schriftgröße ich mit einem Paramteter anpassen möchte. (Den Inhalt konnte ich schon parametrisieren, Name der Variablen "bezeichnung")

Für die Schriftgröße habe ich einen Parameter "Textgröße" angelegt und mit einer Variablen vom Typ "Natürliche Zahl" mit dem Namen text_gr belegt.
Der Parameter wird mir in den Einstellungen des Objekts auch angezeigt.

Der entsprechende Abschnitt des 2D Skriptes sieht so aus:

!!!!!
define style{2} "AC_STYLE_1" "Arial", text_gr, 0

paragraph "AC_PRG_9" 1, 0, 0, 0, 1
pen 2
set style "AC_STYLE_1"
bezeichung
endparagraph

textblock "AC_TEXTBLOCK_9" 0, 7, 0, 1, 1, 0, "AC_PRG_9"

richtext2 -11977.22529977, -18368.73898903, "AC_TEXTBLOCK_9"
!!!!!

Was muss ich machen, damit ich die Schriftgröße über den Parameter "Textgröße" einstellen kann.

Danke und Gruß
mac.martin
iMac 27'' - 3,4 GHz - RAM 16/32 GB - VRAM 2 GB
AC 10-aktuell
6 ANTWORTEN 6
Frank Beister
Moderator
Das Teil sollte korrekt skalieren. Versuche mal folgendes:

richtext2 0,0, "AC_TEXTBLOCK_9"


Dann steht das Teil auch am Ursprung des Objektes.

Wenn es nicht maßstäblich sein soll, musst du im Textblock die letzte Zahl von 0 auf 1 ändern (größenbezug).
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
mac_martin
Newcomer
Das funktioniert leider auch nicht.
Das Objekt wird dann um die 200 km groß - allerdings nur die Aktivierungspunkte.
An der Schriftgröße änder sich rein gar nichts.

Ich habe das Ganze nun in einer neue Datei ausprobiert.
Am Besten poste ich mal das Ganze Skript - ist nicht besonders lang
Jedenfalls habe ich festgestellt, dass Änderungen des Definition des Stils "AC_STYLE_1" keinerlei Auswirkungen auf die Textdarstellung haben - weder was die Größe angeht, noch die Schriftart, noch der face_code.

!
! Name : Haus.gsm
! Datum : Freitag, 17. Februar 2012
! Version : 15.00
! Geschrieben von ArchiCAD - bearbeitet von mac.martin
!

mul2 A/11.500000, B/9.000000
add2 -0, -0
pen 1
set fill "Nur Vordergrund-Stift"
poly2_b{5} 5, 3, 0, 3, 201, 0,
0, 0, 1, 0, 0, 1, 0,
0, 0, 1,
11.5, 0, 1,
11.5, 4.5, 1,
-0, 4.5, 1,
0, 0, 1
set fill "Nur Vordergrund-Stift"
poly2_b{5} 5, 3, 0, 3, 161, 0,
0, 0, 1, 0, 0, 1, 0,
0, 4.5, 1,
11.5, 4.5, 1,
11.5, 9, 1,
-0, 9, 1,
0, 4.5, 1
! define style{2} "AC_STYLE_1" "Arial", text_gr, 0
define style{2} "AC_STYLE_1" "Bauhaus 93", text_gr, 4

paragraph "AC_PRG_4" 1, 0, 0, 0, 1
pen 20
set style "AC_STYLE_1"
bezeichnung
endparagraph
textblock "AC_TEXTBLOCK_4" 0, 7, 0, 1, 1, 1,
"AC_PRG_4"

richtext2 0.5, 0.5, "AC_TEXTBLOCK_4"
iMac 27'' - 3,4 GHz - RAM 16/32 GB - VRAM 2 GB
AC 10-aktuell
mac_martin
Newcomer
Ich habe jetzt herausgefunden, dass der Text dann formatiert wird wie mit "define style{2}" angegeben, wenn in paragraph ein Textstring in ".." steht und nicht eine Variable, die einen Text enthält, wie hier z. B. Bezeichnung.

Was muss ich machen, dass ich eine parametrisierte Variable benutzen kann und diese dennoch mit den Stildefinitionen formatiert wird?


Edit:
Nach langem Suchen, habe ich eine Lösung gefunden.
Anstelle des Variablen Namens allein (hier: bezeichung)
muss man schreiben
"" + bezeichnung

Ist das irgendwo offiziell dokumentiert ?!
iMac 27'' - 3,4 GHz - RAM 16/32 GB - VRAM 2 GB
AC 10-aktuell
Frank Beister
Moderator
Nein. Offiziell ist das wohl nicht dokumentiert, wobei ich das offizielle ArchiCAD-wiki wenig lese. Du findest den Hinweis aber auf selfGDL. Das ist uns beim Schreiben dieser inoffiziellen Dokumentation auch aufgefallen. Und haben wir damals auch als bug gemeldet.

Sorry, das habe ich nicht gemerkt, weil ich beim Testen deines Skriptes der Einfachheit halber nur "bezeichnung" verendet habe.

Richtext ist zwar ganz nett, ist aber nicht ohne Stolpersteine bzw. kleine Fehler. Also den Fehler nicht immer bei sich selbst suchen.
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
mac_martin
Newcomer
Ich hab zwar in selfGDL auch gelesen, da ist mir aber kein entsprechender Hinweis aufgefallen.

Die erste Idee auf die Fehlerursache habe ich bekommen, als ich in einer ganz neuen ArchiCAD 14 Datei testen wollte, ob es den Fahler auch in AC 14 gibt.
Da habe ich der Einfachheit halber auch ein String anstatt einer Variablen verwendet.
Als es da funktioniert hatte, hab ich das selbe in AC 15 probiert .... usw.

Gefunden habe ich den Workaround dann in einem Beitrag in einem englischsprachigen Forum.
Der Beitrag war aus 2005 oder so.
Insofern schon schwach, dass der Fehler im aktuellen AC immer noch drin ist.
Scheint mir ein Typisierungsfehler zu sein.

Danke jedenfalls für Deine Mühe

Gruß
mac.martin
iMac 27'' - 3,4 GHz - RAM 16/32 GB - VRAM 2 GB
AC 10-aktuell
Frank Beister
Moderator
Ich hab zwar in selfGDL auch gelesen, da ist mir aber kein entsprechender Hinweis aufgefallen.

Siehe: Besonderheiten
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