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

runde Kanten mit dem POLY2_B Befehl

Rainer123
Contributor

Ich möchte eine geschlossene Schraffur wie etwa auf dem Bild erstellen.
Ich bekomme die runden Kanten einfach nicht hin. (und verzweifle auch mit der Erklärung im GDL-Handbuch)

 

Operating system used: Windows


2024-09-18 22_48_22-Window.png
3 ANTWORTEN 3
Xandros
Advisor

Hi

zugegebenermaßen tue ich mich auch immer wieder schwer mit den Statuscodes für Rundungen. Aber für dein Beispiel:

 

_x = 0.5
_y = 1

poly2_b 8, 1+2,
    1, 95,
    -_x,    -_y, 1,
    -_x,     _y, 1,
    0,       _y, 900,   ! Angabe des Mittelpunkts
     _x,     _y, 1000,  ! Tangentialer Bogen zum Endpunkt
     _x,     _y, 1,     ! auf dem Endpunkt der letzten Zeile nochmal einen Punkt zum weiterzeichnen definieren (kann mir noch nicht ganz einen Reim darauf machen, warum genau) s. Edit unten
     _x,    -_y, 1,
     0,     -_y, 900,   ! Angabe des Mittelpunkts
    -_x,    -_y, 1000   ! Tangentialer Bogen zum Endpunkt

Xandros_4-1726730602282.png

 

  1. ich fange an der linken Gerade unten an
  2. die erste Linie nach oben ist selbsterklärend
  3. von dem Punkt oben aus definiere ich den Mittelpunkt für die kommende runde Kante (Statuscode 900)
    Xandros_0-1726730238743.png
  4. mit dem nun definierten Mittelpunkt zeichne ich einen tangentialen Bogen zum Endpunkt (Statuscode 1000)
    Xandros_1-1726730311139.pngXandros_2-1726730326218.png
  5. von dort aus platziere ich einen weiteren Punkt auf dem Endpunkt. Kann ich nicht ganz nachvollziehen, aber wenn ich das nicht tue, fehlt die rechte Gerade: siehe Edit unten
    Xandros_3-1726730494240.png
  6. für den Rest wiederhole ich die ersten Schritte

                                                                                                  

 

Edit: Punkt 5 verstehe ich jetzt...

Statuscodes lassen sich ja kombinieren und wenn ich statt 1000 dann 1001 verwende, kann ich mir die nächste Zeile sparen...

 

_x = 0.5
_y = 1

poly2_b 7, 1+2,
    1, 95,
    -_x,    -_y, 1,
    -_x,     _y, 1,
    0,       _y, 900,   ! Angabe des Mittelpunkts
     _x,     _y, 1001,  ! hier die 1 zum Statuscode 1000 addieren, damit die nächste Kante sichtbar ist
     _x,    -_y, 1,
     0,     -_y, 900,   ! Angabe des Mittelpunkts
    -_x,    -_y, 1000   ! 1001 wäre hier auch möglich, macht aber als Endpunkt keinen Unterschied

 

siehe auch https://www.selfgdl.de/2d-elemente-2/polygone/poly2_b/

 

Xandros_0-1726738816972.png

 

ArchiCAD 27 GER / Win10
Intel i9-9900K / 64GB RAM / nVidia GeForce RTX 2080 Ti
Jochen Suehlo
Moderator

Bei runden Kanten, die vom Standard (Kreis 🙂 ) abweichen, lasse ich Archicad die Arbeit machen.
Ich erstelle eine Schraffur in 2D und ziehe diese bei Archicad kleiner 27 ins 2D-Scriptfenster, bei Archiccad > 26 aktiviere ich die Schraffur in 2D und klicke dann im 2D-Scriptfenster auf den Button "Autoscript" (Symbol: Quadrat, Pfeil, </>).

Wichtig dabei ist, dass die Schraffur möglichst einen optimalen Punkt auf dem Ursprung hat.

Danach ersetze ich die numerischen Werte durch die Variablennamen von Parametern.

Jochen Suehlo . AC12-27 . MAC OSX 14.4 . WIN11
GDL object creation: b-prisma.de

Weitere Korrektur:

die Angabe des Mittelpunkts machte in meinem Beispiel mit dem Statuscode 1000 für die Rundungen keinen Sinn. Der Mittelpunkt wird bei den Statuscodes 3000 und 4000 benötigt.

So ließe sich der Code um zwei Zeilen weniger und sauberer schreiben:

 

_x = 0.5
_y = 1

poly2_b 5, 1+2,
    1, 95,
    -_x,    -_y, 1,
    -_x,     _y, 1,
     _x,     _y, 1001,  ! Statuscode 1000 braucht keinen vorher definierten Mittelpunkt
     _x,    -_y, 1,
    -_x,    -_y, 1000   ! 1001 wäre hier auch möglich, macht aber als Endpunkt keinen Unterschied
ArchiCAD 27 GER / Win10
Intel i9-9900K / 64GB RAM / nVidia GeForce RTX 2080 Ti

Setup info provided by author