am 2026-03-11 05:40 PM
Hallo zusammen,
Habe ein Objekt erstellt mit 2D Schraffuren und Linien unter 2D-Symbol, wenn ich die Stiftfarbe einsetze, macht er die Farbe für alles, Schraffur und Linien.
Kann leider die Vorder- und Hintergrundschraffur Farbe nicht separat einstellen, wie kann ich das machen? Es kommt immer auch ein Fehler wenn ich den Code Befehl FILL_PEN verwenden möchte.....
> Wenn ich
Code 2D Script:
am 2026-03-11 08:58 PM
"FILL_PEN" ist nur für Etiketten gedacht – der Stift von Schraffuren wird im Befehl selbst festgelegt. Daher wirst du mit FRAGMENT2 hier nicht zum Ziel kommen.
Füge es dir lieber als echten Code ein (seit AC 27 gibts dafür im Editor einen schönen Button oben beim 2D script).
Dort wird dir dann ein POLY2_B{5} Befehl reingeworfen. Dort ist es dann der 5. bzw. 6. Wert. Den kannst du gegen einen echten Parameter austauschen. Somit hast du dann immer die volle Kontrolle.
2026-03-12 08:32 AM - bearbeitet 2026-03-12 08:41 AM
Guten Tag runxel,
Danke für den Hinweis.
D.h. dass ich die ganzen Fragmente, die ich erstellt habe, als reinen 2D Script reinkopieren muss, so dass diese eben für den POLY2_B{5} und Parameter funktioniert? Dann wäre es evtl. auch einfacher mehrere Schraffuren pro "Objekt" separat zu steuern über die Parameter und 2D-Script oder?
PS:
Wäre es dann in dem Fall sinnvoll ganz auf 2D-Symbol mit Fragment2 zu verzichten?
Finde es eben noch nett, da man das was man "programmiert" direkt sieht und anpassen kann.
Aber wohl für "komplexere" Programmierung zu wenig handbar ist....
Wozu wäre es dann sinnvoll Fragment2 Elemente zu benutzen?
2026-03-12 08:44 AM - bearbeitet 2026-03-12 08:44 AM
Was runxel sagt.
Du könntest aber auch die Linien und die Schraffuren auf verschiedene Fragmente legen und getrennt steuern - je nach Komplexifikation Deiner Inhalte.
am 2026-03-12 09:01 AM
Ich finde den Fragment2 Befehl eigentlich eine gute Einstiegsübung in GDL. Habe es anfänglich auch oft benutzt.
Habe darüber als Objekt abgespeicherten Geometrien, eine schönere 2D Repräsentanz gegeben. Für Parametrik ist dieser Befehl aber schnell ausgeschöpft.
Zum Thema:
https://www.selfgdl.de/2d-elemente-2/diverse/fragment2/#
am 2026-03-12 09:06 AM
Hallo Stefan,
D.h. die Umrisslinien im 2D-Symbol zu zeichnen, inkl. Fixpunkte als "Fragment2" 1-16 Ebenen und die Schraffur separat im 2D-Script?
EDIT;
Das mit separaten Fragmenten habe ich bei einem anderen Objekt benutzt, nur wenn man "nur" 1-16 Ebenen erstellen kann, ist es halt evtl. zu wenig und man muss mehrere einzelne Objekte erstellen, da man für ein Objekt bis zu 4 Ebenen verbraucht (16/4 = max. 4 Objekte möglich).
Mein Ziel ist es, div. Grössenvarianten in einem einzigen Objekt zu programmieren.
2026-03-12 09:13 AM - bearbeitet 2026-03-12 09:13 AM
Idee:
lass eine Schleife über das Fragment laufen und ändere im zweiten Durchgang die Farbe und ggf die Darstellungsreihenfolge
for i=1 to 2
Fragment2 1,1
!!! Hier zweite Attribut Regelung
next i
https://www.selfgdl.de/attribute/allgemein/drawindex/
virtuos 🙂
Vielleicht hilft es dir für dein Symbol.
am 2026-03-12 09:15 AM
@Andreas81ch schrieb:
... "nur" 1-16 Ebenen...
Mein Ziel ist es, div. Grössenvarianten in einem einzigen Objekt zu programmieren.
Ja, nee - dann was runxel und Lukas sagen.
Größenvarianten? Vielleicht wäre mul2 ja was für Dich...
am 2026-03-12 09:56 AM
Hallo Stefan,
Als einfaches Beispiel gedacht;
D. h. konkret das unterste Element fix bei Ebene 1 zu zeichnen, und das obere Element das variabel ist mit mul2 Befehl? Das Problem ist, wenn das Profil diverse Ecken drin hat (wie bei mir grün), verzieht er ja das ganze Profil mit und verfälscht dann die Masse !?
am 2026-03-12 10:55 AM
PS: Mit dem KI-Modus bei Google oder Gronk hat mir noch einiges gebracht, bzw. sehr geholfen und besser geklärt.
Habe mal für mein Beispiel diese Frage gestellt;
Wie kann ich dieses objekt mit dem befehl mul2 in archicad programmieren im gdl script in archicad? Es sollte die Funktion mit dem Fragment2 beinhalten. Der untere Teil sollte fix bleiben, die oberen grünen variabel
Hier die Antwort vom KI-Modus von Google:
ADD2, MUL2) und den Symbol-Ebenen (FRAGMENT2).B) gestreckt wird.
! --- Parameter Definition ---
! A = Breite des Objekts
! B = Gesamthöhe des Objekts (variabel)
h_fix = 0.80 ! Die fixierte Höhe des unteren Teils
! 1. Fixen Teil zeichnen (Fragment 1)
! Er wird direkt am Ursprung gezeichnet
FRAGMENT2 1, 1
! 2. Ursprung für den variablen Teil verschieben
! Wir springen um die 0.80 nach oben
ADD2 0, h_fix
! 3. Den variablen Teil skalieren (MUL2)
! Wir berechnen die restliche Höhe: B - 0.80
! Da das grüne Fragment in Ebene 2 mit Höhe 1.00 gezeichnet wurde,
! entspricht der Skalierungsfaktor genau der Resthöhe.
h_var = B - h_fix
if h_var > 0 then
MUL2 1, h_var / 1.0 ! Skaliert Y auf die gewünschte Resthöhe
! 4. Variablen Teil zeichnen (Fragment 2)
FRAGMENT2 2, 1
! Transformationen aufräumen
DEL 1
endif
! Den ersten ADD2-Befehl aufräumen
DEL 1
FRAGMENT2 n, 1: Dieser Befehl ruft alles auf, was du im 2D-Symbol-Fenster auf der Ebene n gezeichnet hast. Die 1 am Ende bedeutet, dass die Linienfarben und Stifte aus dem Symbol verwendet werden.ADD2 x, y: Verschiebt den "Stift" für die nächsten Zeichenbefehle. Wir schieben ihn um
MUL2 x, y: Das ist der Skalierungsbefehl. Da dein oberer Teil variabel sein soll, berechnen wir das Verhältnis von der Wunschhöhe (B - 0.80) zur Originalhöhe im Symbol (
2.15
,
2.95
,
…
! Im Parameterskript:
values "B" 2.15, 2.95, 3.70, 4.94, 5.80
MUL2 eine FOR-NEXT Schleife verwenden. Wäre das für dein Projekt relevant?