abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 
abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 
Programmierung
Alles über Programmierung in GDL und Python

2D GDL Objekt Schraffur und Stifte frei wählen

Anonymous
Nicht anwendbar
Liebes Forum,

ich versuche mich in das Thema 2D GDL Objekt hineinzuarbeiten. Dabei möchte ich Staffageobjekte, die ich in der Aufsicht und Seitenansichten gezeichnet habe in einem Objekt zusammenführen und einzeln anwählen (wie die 2D Autos in der AC-Bibliothek).
Ich habe auch schon einige Beiträge diesbezüglich gefunden und genutzt. So habe ich die Zeichnungen in das 2D Fenster kopiert und auf die einzelnen Ebenen verteilt. Ich kann die Ansichten auch frei anwählen.
Ich möchte den Konturstift, den Schraffurtyp, sowie die Schraffurstifte für Vorder- und Hintergrund frei im Objekt auswählen können. Und das funktioniert nicht. Der Stift, der im 2D Skript zuletzt genannt wird (Hintergrundstift), scheint die anderen Stifte zu überschreiben. Wenn ich im Objekt andere Stifte definieren möchte, passiert nichts, da der eine Stift für alle Stifte genutzt wird.

2D Skript:

pen gs_cont_pen
fill gs_fill_type
pen gs_fill_pen
pen gs_back_pen

IF abc="Aufsicht" THEN FRAGMENT2 1,1
IF abc="Seitenansicht" THEN FRAGMENT2 2,1
IF abc="Frontansicht" THEN FRAGMENT2 3,1
IF abc="Rückansicht" THEN FRAGMENT2 4,1

Parameter Skript:

pen gs_cont_pen = gs_cont_pen
pen gs_fill_pen = gs_fill_pen
pen gs_back_pen = gs_back_pen

values "abc" "Aufsicht","Seitenansicht","Frontansicht","Rückansicht"


Ich danke euch für eure Hilfe & wünsche ein erholsames Wochenende

PS. Den Unterreiter Signatur konnte ich im persönlichen Bereich unter Optionen nicht finden.

Ich nutze AC24 EDU macOS Catalina 10.15.7
15 ANTWORTEN 15
Die Fragmente lassen sich nur bedingt überschreiben, dafür muss die Zahl hinter dem Layer auf 2 gesetzt werden. Probier mal. Wenn du mehr brauchst musst du alles coden. Geht auch per Drag n Drop aus der Zeichnung in das 2d Script.....
Mac OSX - up to date

GER Archicad Full, Up to date
Anonymous
Nicht anwendbar
Vielen Dank für die schnelle Antwort. Leider hat sich nichts verändert. Der Hintergrundstift der Schraffur wirkt gerade als Hintergrund- und Vordergrundstift der Schraffur sowie als Konturstift des gesamten Objektes.

Was meinst du per Drag n Drop in das 2D Script? Soll ich die Zeichnungen, die ich in das 2D Symbolfenster kopiert habe in das 2D Script ziehen?
Anonymous
Nicht anwendbar
Was meinst du per Drag n Drop in das 2D Script? Soll ich die Zeichnungen, die ich in das 2D Symbolfenster kopiert habe in das 2D Script ziehen?

Ja genau, am besten einzeln. Und dann machst Du eine IF .. THEN Abfarge und machst die Schraffuren und Stifte in diesem Autoscript parametrisch, indem Du die Zahlen und Schraffurtexte durch Parameternamen ersetzt, die du vorher anlegen musst.
Anonymous
Nicht anwendbar
Vielen Dank erstmal für die Antwort. Ich bin mir unsicher, ob ich mich verständlich ausgedrückt habe. Ich möchte für "Aufsicht","Seitenansicht","Frontansicht","Rückansicht" keine unterschiedlichen Konturstifte, Schraffuren mit Hintergrund- und Vordergrundstiften einstellen können. Ich möchte, dass ich in meinem Dropdownmenü "2D Darstellung" den Konturstift sowie den Schraffurtyp mit Hintergrund- und Vordergrundstift nach dem Platzieren des Objektes ändern kann. Es kommt mir vor, als ob das der einfachste Befehl/Code überhaupt sein müsste. Dafür habe ich in den Parametern folgende Einstellungen vorgenommen.



Nun möchte ich einfach, dass der Konturstift, den ich auswähle nur für den Konturstift benutzt wird, dass der Vordergrundstift, den ich auswähle nur für den Vordergrundstift genutzt wird, und der Hintergrundstift, den ich auswähle nur für den Hintergrundstift genutzt wird. Ich möchte das:

als Beispiel für die Einstellungsmöglichkeiten

Aber ich habe leider das:



Ich werde das mit dem 2D Skript natürlich ausprobieren.

Besten Dank für eure Hilfe
das geht leider nicht so wie du willst mit Fragmenten.

drag n drop geht so:
https://www.dropbox.com/s/bdlaot3p0smgi ... t.mov?dl=0
Mac OSX - up to date

GER Archicad Full, Up to date
Anonymous
Nicht anwendbar
Vielen Dank für deine Rückmeldung.

Mein Objekt mit den einzelnen Ansichten sah so aus:



Nun nachdem ich die 2D Zeichnungen in das 2D Skript Fenster gezogen habe:



und das 2D Skript sieht nun so aus:

!---Fragment1---!

pen 1
fill "Nur Hintergrund-Stift"
poly2_b{5} 5, 2, 0, 3, 1, 4,
0, 0, 1, 0, 0, 1, 0,
1, 0, 1,
0, 6.123233995737E-17, 900,
0, 180, 4001,
0, 6.123233995737E-17, 900,
0, 180, 4001
pen 21
hotspot2 0, 1
hotspot2 1, 0
hotspot2 -2.22044604925E-16, -1
hotspot2 -1, 0
set line_type "Volllinie"
line_property 0
circle2 0, 0, 1

!---!

!---Fragment2---!

pen 1
fill "Nur Hintergrund-Stift"
poly2_b{5} 5, 2, 0, 3, 1, 4,
0, 0, 1, 0, 0, 1, 0,
1, 1, 1,
-1, 1, 1,
-1, -1, 1,
1, -1, 1,
1, 1, 1
pen 21
set line_type "Volllinie"
poly2_b{5} 5, 1, 0, 3, 1, 0,
0, 0, 1, 0, 0, 1, 0,
1, 1, 1,
-1, 1, 1,
-1, -1, 1,
1, -1, 1,
1, 1, 1
hotspot2 -1, 1
hotspot2 1, 1
hotspot2 1, -1
hotspot2 -1, -1
line_property 0
line2 -1, -1, 1, 1
line2 1, -1, -1, 1

!---!

!---Fragment3---!

pen 1
fill "Nur Hintergrund-Stift"
poly2_b{5} 5, 2, 0, 3, 1, 4,
0, 0, 1, 0, 0, 1, 0,
1, 1, 1,
-1, 1, 1,
-1, -1, 1,
1, -1, 1,
1, 1, 1
pen 21
set line_type "Volllinie"
poly2_b{5} 5, 1, 0, 3, 1, 0,
0, 0, 1, 0, 0, 1, 0,
1, 1, 1,
-1, 1, 1,
-1, -1, 1,
1, -1, 1,
1, 1, 1
hotspot2 -1, 1
hotspot2 1, 1
hotspot2 1, -1
hotspot2 -1, -1
line_property 0
line2 1, -1, -1, 1

!---!

!---Fragment4---!

pen 1
fill "Nur Hintergrund-Stift"
poly2_b{5} 5, 2, 0, 3, 1, 4,
0, 0, 1, 0, 0, 1, 0,
-1, 1, 1,
-1, -1, 1,
1, -1, 1,
1, 1, 1,
-1, 1, 1
pen 21
set line_type "Volllinie"
poly2_b{5} 5, 1, 0, 3, 1, 0,
0, 0, 1, 0, 0, 1, 0,
-1, 1, 1,
1, 1, 1,
1, -1, 1,
-1, -1, 1,
-1, 1, 1
hotspot2 1, 1
hotspot2 -1, 1
hotspot2 -1, -1
hotspot2 1, -1
line_property 0
line2 -1, -1, 1, 1

!---!


IF abc="Aufsicht" THEN FRAGMENT2 1,2
IF abc="Seitenansicht" THEN FRAGMENT2 2,2
IF abc="Frontansicht" THEN FRAGMENT2 3,2
IF abc="Rückansicht" THEN FRAGMENT2 4,2

Die Zeilen mit den Ausrufezeichen habe ich geschrieben, um zu ordnen welches Skript welches Fragment zeichnet. Ich habe irgendwo gelesen, dass man eine Codezeile so für nichtig erklären kann; ich hoffe das war richtig.

1. Frage: wie geht es jetzt weiter? Wie muss mein if then Befehl aussehen? In den GDL Hilfen finde ich leider fast immer nur Hilfe zu 3D GDLs oder ich verstehe zu 99% einfach überhaupt nicht um was es geht. Ihr könnt mir gerne auch Links zu passenden Tutorials schicken.

2. Frage: könnte ich nun meine Zeichnung im 2D Symbol Fenster löschen oder muss ich das sogar? wird das Objekt nun alleine durch das Skript gebildet?

Beste Grüsse & Danke
Anonymous
Nicht anwendbar
Hallo, ich wollte nur eine kurze Rückmeldung geben. Es hat nun alles wunderbar geklappt.
Ich danke @lukaso & @Jochen Suehlo. Vielen Dank euch beiden, dass ihr euch die Zeit genommen habt mir zu helfen.

Beste Grüsse & eine schöne Woche
Anonymous
Nicht anwendbar
Hallo, ich hätte noch eine Frage. Ich bin nun dabei mir 2D Objekte zu erstellen, nun ist es leider so, dass es recht mühselig ist, jeweils die Nummer des Konturstifts, Nummer des Vorder- und Hintergrundstifts und den Namen der Schraffur auszutauschen. Ist es möglich den Vorgang zu beschleunigen indem man bspw am Anfang des Paramterskripts schreibt "gs_cont_pen=xx" xx wäre dann die Nummer des Kontursstift bevor ich ihn händisch durch die Variable gs_cont_pen ersetze.

Beste Grüsse & danke
Für den Befehl pen geht das. Alles andere über suchen und ersetzen steuern. Das geht recht einfach.
Mac OSX - up to date

GER Archicad Full, Up to date