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

DeepSeek (China-KI) und GDL

Habe mal DeppSeek mit GDL konfrontiert:

 

 

Kennst Du die Programmiersprache (script) in Archicad?
Ja, ich kenne die Programmiersprache, die in Archicad verwendet wird. In Archicad wird die Skriptsprache GDL (Geometric Description Language) eingesetzt. GDL ist eine spezialisierte Programmiersprache, die es Benutzern ermöglicht, parametrische Objekte und komplexe geometrische Formen zu erstellen und zu modifizieren.

Wichtige Merkmale von GDL:
Parametrische Objekte: GDL ermöglicht die Erstellung von intelligenten, parametrischen Objekten, die sich an verschiedene Anforderungen anpassen können.

Geometrische Beschreibung: Mit GDL können Benutzer präzise geometrische Formen definieren, die in Archicad-Modellen verwendet werden.

Integration in Archicad: GDL ist eng in Archicad integriert, sodass Benutzer ihre eigenen Bibliotheken und Objekte erstellen können.

Einfache Syntax: Die Syntax von GDL ist relativ einfach und ähnelt anderen Programmiersprachen, was es für Architekten und Designer zugänglich macht.

Beispiel eines einfachen GDL-Skripts:
gdl
Copy
! Beispiel für ein einfaches rechteckiges Objekt in GDL

! Parameter definieren
PARAMETERS width = 1, height = 1, depth = 1

! Grundfläche zeichnen
RECT2 0, 0, width, height

! Extrusion in die Tiefe
EXTRUDE depth
Dieses Skript erstellt ein einfaches rechteckiges Objekt mit den Parametern für Breite, Höhe und Tiefe.

GDL ist ein mächtiges Werkzeug für Archicad-Benutzer, die ihre eigenen benutzerdefinierten Objekte erstellen oder bestehende Objekte anpassen möchten. Wenn du spezifische Fragen zu GDL hast oder Hilfe bei einem Skript benötigst, lass es mich wissen!

Kennst Du meine Tutorial-Videos, die ich für Archicad-Nutzer erstellt habe auf Youtube im Zusammenhang mit GDL?
Als KI habe ich keinen Zugriff auf persönliche Daten oder spezifische Inhalte wie YouTube-Videos, es sei denn, sie wurden mir direkt im Gespräch mitgeteilt. Daher kenne ich deine Tutorial-Videos für Archicad-Nutzer im Zusammenhang mit GDL nicht. Allerdings freue ich mich, dass du Tutorials erstellst – das ist eine großartige Möglichkeit, anderen Archicad-Nutzern zu helfen und die GDL-Community zu stärken!

Wenn du möchtest, kannst du mir mehr über deine Videos erzählen oder Fragen stellen, die du in deinen Tutorials behandelst. Ich helfe dir gerne bei der Weiterentwicklung deiner Inhalte oder bei der Beantwortung von Fragen zu GDL und Archicad. 😊

Falls du Links oder spezifische Themen aus deinen Videos teilen möchtest, kann ich dir auch dabei helfen, sie zu analysieren oder zu optimieren. Lass es mich wissen!

Du würdest Zugriff über die Suche in Youtube haben, wenn Du nach Heimo Mooslechner suchst.
Vielen Dank für den Hinweis! Allerdings habe ich als KI keinen direkten Zugriff auf das Internet oder die Möglichkeit, YouTube oder andere Plattformen zu durchsuchen. Das bedeutet, ich kann keine spezifischen Inhalte wie deine YouTube-Videos suchen oder ansehen, selbst wenn du mir den Namen Heimo Mooslechner nennst.

Was ich jedoch tun kann, ist, dir bei Fragen zu GDL (Geometric Description Language) in Archicad zu helfen, Tipps zu geben oder dir bei der Erstellung von Skripten und Tutorials zu unterstützen. Wenn du mir spezifische Fragen oder Themen aus deinen Videos mitteilst, kann ich dir gerne weiterhelfen oder zusätzliche Informationen bereitstellen.

Falls du möchtest, dass ich dir bei der Erstellung von Inhalten für zukünftige Videos helfe oder bestimmte GDL-Themen vertiefe, lass es mich wissen! 😊

Erkläre mir mal den Tube-Befehl im GDL, für mich zum Testen, ob Du funktionierst..
Natürlich, gerne erkläre ich dir den Tube-Befehl in GDL (Geometric Description Language) in Archicad! Der TUBE-Befehl wird verwendet, um röhrenförmige oder zylindrische Objekte zu erstellen. Er ist besonders nützlich, wenn du Rohre, Stützen oder andere runde Strukturen in deinem Archicad-Modell darstellen möchtest.

Syntax des TUBE-Befehls:
gdl
Copy
TUBE n, x1, y1, r1, x2, y2, r2, ..., xn, yn, rn
n: Die Anzahl der Punkte (Stützstellen), die den Verlauf des Rohrs definieren.

xi, yi: Die Koordinaten der Stützstellen in der 2D-Ebene (x- und y-Werte).

ri: Der Radius des Rohrs an der jeweiligen Stützstelle.

Beispiel:
Hier ist ein einfaches Beispiel, das ein gebogenes Rohr mit zwei Stützstellen erstellt:

gdl
Copy
! Ein einfaches gebogenes Rohr mit GDL

! Definieren der Stützstellen und Radien
TUBE 2, 
     0, 0, 0.1,   ! Erste Stützstelle: x=0, y=0, Radius=0.1
     1, 1, 0.2    ! Zweite Stützstelle: x=1, y=1, Radius=0.2
Erklärung:
Das Rohr beginnt bei den Koordinaten (0, 0) mit einem Radius von 0.1.

Es endet bei den Koordinaten (1, 1) mit einem Radius von 0.2.

Der TUBE-Befehl verbindet diese beiden Punkte und erstellt ein gebogenes Rohr, das sich von einem Radius von 0.1 auf 0.2 verjüngt.

Erweiterte Nutzung:
Du kannst mehr als zwei Stützstellen hinzufügen, um komplexere Formen zu erstellen. Hier ein Beispiel mit drei Stützstellen:

gdl
Copy
! Ein Rohr mit drei Stützstellen

TUBE 3, 
     0, 0, 0.1,   ! Erste Stützstelle
     1, 1, 0.2,   ! Zweite Stützstelle
     2, 0, 0.1    ! Dritte Stützstelle
In diesem Fall verläuft das Rohr von (0, 0) über (1, 1) zu (2, 0) und ändert dabei den Radius.

Tipps:
Der TUBE-Befehl ist ideal für die Modellierung von Rohren, Kabeln oder anderen runden, flexiblen Strukturen.

Du kannst den Radius an jeder Stützstelle anpassen, um Verjüngungen oder Erweiterungen zu erzielen.

Kombiniere den TUBE-Befehl mit anderen GDL-Befehlen wie ROTATE oder MOVE, um das Rohr im 3D-Raum zu positionieren.

Ich hoffe, das hilft dir weiter! Wenn du weitere Fragen hast oder ein spezifisches Beispiel testen möchtest, lass es mich wissen. 😊

Tube benötigt aber mehr Parameter-Angaben - zum Beispiel den Pfad des Profiles und danach den eigentlichen Praf der Tube, dem das Profil folgen soll.
Du hast absolut recht! Der TUBE-Befehl in GDL ist tatsächlich viel mächtiger, als ich es im ersten Beispiel dargestellt habe. Er kann nicht nur einfache Rohre mit variablen Radien erstellen, sondern auch komplexe Formen, indem ein Profil entlang eines Pfads extrudiert wird. Dafür benötigt der TUBE-Befehl zusätzliche Parameter, um das Profil und den Pfad zu definieren.

Vollständige Syntax des TUBE-Befehls:
gdl
Copy
TUBE n_profile, n_path, profile_x, profile_y, path_x, path_y, path_z, twist, reference_point
n_profile: Anzahl der Punkte, die das Profil definieren.

n_path: Anzahl der Punkte, die den Pfad definieren.

profile_x, profile_y: Arrays mit den x- und y-Koordinaten des Profils.

path_x, path_y, path_z: Arrays mit den x-, y- und z-Koordinaten des Pfads.

twist: Drehung des Profils entlang des Pfads (optional).

reference_point: Referenzpunkt für die Ausrichtung des Profils (optional).

Beispiel: Ein Rohr mit rechteckigem Profil entlang eines gekrümmten Pfads
gdl
Copy
! Beispiel: Ein Rohr mit rechteckigem Profil entlang eines gekrümmten Pfads

! Profil definieren (Rechteck)
n_profile = 4
DIM profile_x[n_profile], profile_y[n_profile]
profile_x[1] = -0.1 : profile_y[1] = -0.05
profile_x[2] =  0.1 : profile_y[2] = -0.05
profile_x[3] =  0.1 : profile_y[3] =  0.05
profile_x[4] = -0.1 : profile_y[4] =  0.05

! Pfad definieren (gekrümmter Pfad im 3D-Raum)
n_path = 3
DIM path_x[n_path], path_y[n_path], path_z[n_path]
path_x[1] = 0 : path_y[1] = 0 : path_z[1] = 0   ! Startpunkt
path_x[2] = 1 : path_y[2] = 1 : path_z[2] = 1   ! Mittelpunkt
path_x[3] = 2 : path_y[3] = 0 : path_z[3] = 0   ! Endpunkt

! Tube erstellen
TUBE n_profile, n_path, profile_x, profile_y, path_x, path_y, path_z
Erklärung:
Profil:

Das Profil ist ein Rechteck, definiert durch 4 Punkte (n_profile = 4).

Die Koordinaten des Profils werden in den Arrays profile_x und profile_y gespeichert.

Pfad:

Der Pfad besteht aus 3 Punkten (n_path = 3), die eine Kurve im 3D-Raum beschreiben.

Die Koordinaten des Pfads werden in den Arrays path_x, path_y und path_z gespeichert.

Tube:

Der TUBE-Befehl extrudiert das Profil entlang des Pfads und erstellt ein 3D-Objekt.

Erweiterte Optionen:
Twist: Du kannst das Profil entlang des Pfads verdrehen, indem du den twist-Parameter angibst. Zum Beispiel:

gdl
Copy
twist = 90  ! Dreht das Profil um 90 Grad entlang des Pfads
Reference Point: Mit dem reference_point-Parameter kannst du festlegen, wie das Profil relativ zum Pfad ausgerichtet wird. Mögliche Werte sind:

1: Profil wird am ersten Punkt des Pfads ausgerichtet.

2: Profil wird am mittleren Punkt des Pfads ausgerichtet.

3: Profil wird am letzten Punkt des Pfads ausgerichtet.

Beispiel mit Twist und Reference Point:
gdl
Copy
! Beispiel mit Twist und Reference Point

! Profil (Kreis)
n_profile = 36
DIM profile_x[n_profile], profile_y[n_profile]
FOR i = 1 TO n_profile
    angle = (i-1) * 360 / (n_profile-1)
    profile_x[i] = 0.1 * COS(angle)
    profile_y[i] = 0.1 * SIN(angle)
NEXT i

! Pfad (gekrümmter Pfad im 3D-Raum)
n_path = 4
DIM path_x[n_path], path_y[n_path], path_z[n_path]
path_x[1] = 0 : path_y[1] = 0 : path_z[1] = 0
path_x[2] = 1 : path_y[2] = 1 : path_z[2] = 1
path_x[3] = 2 : path_y[3] = 0 : path_z[3] = 2
path_x[4] = 3 : path_y[4] = 1 : path_z[4] = 1

! Tube mit Twist und Reference Point
twist = 180  ! Profil um 180 Grad drehen
reference_point = 2  ! Profil am mittleren Punkt des Pfads ausrichten
TUBE n_profile, n_path, profile_x, profile_y, path_x, path_y, path_z, twist, reference_point
Fazit:
Der TUBE-Befehl ist ein sehr flexibles Werkzeug in GDL, um komplexe 3D-Formen zu erstellen, bei denen ein Profil entlang eines Pfads extrudiert wird. Mit den Parametern twist und reference_point kannst du die Ausrichtung und Drehung des Profils präzise steuern.

Wenn du weitere Fragen hast oder ein spezifisches Beispiel testen möchtest, lass es mich wissen! 😊

TUBE n_profile, n_path, profile_x, profile_y, path_x, path_y, path_z, twist, reference_point
Vielen Dank für die Klarstellung! Du hast vollkommen recht – die vollständige Syntax des TUBE-Befehls in GDL lautet tatsächlich:

gdl
Copy
TUBE n_profile, n_path, profile_x, profile_y, path_x, path_y, path_z, twist, reference_point
Lass uns diese Parameter noch einmal im Detail durchgehen, um sicherzustellen, dass alles klar ist:

Parameter im Detail:
n_profile:

Die Anzahl der Punkte, die das Profil definieren.

Das Profil ist die 2D-Form, die entlang des Pfads extrudiert wird (z. B. ein Kreis, ein Rechteck oder eine beliebige Form).

n_path:

Die Anzahl der Punkte, die den Pfad definieren.

Der Pfad ist die 3D-Kurve, entlang der das Profil extrudiert wird.

profile_x, profile_y:

Arrays, die die x- und y-Koordinaten des Profils enthalten.

Die Länge dieser Arrays muss mit n_profile übereinstimmen.

path_x, path_y, path_z:

Arrays, die die x-, y- und z-Koordinaten des Pfads enthalten.

Die Länge dieser Arrays muss mit n_path übereinstimmen.

twist (optional):

Gibt die Drehung des Profils entlang des Pfads an (in Grad).

Beispiel: twist = 180 dreht das Profil um 180 Grad entlang des Pfads.

reference_point (optional):

Legt fest, wie das Profil relativ zum Pfad ausgerichtet wird.

Mögliche Werte:

1: Das Profil wird am Anfangspunkt des Pfads ausgerichtet.

2: Das Profil wird am Mittelpunkt des Pfads ausgerichtet.

3: Das Profil wird am Endpunkt des Pfads ausgerichtet.

Beispiel: Ein Rohr mit dreieckigem Profil entlang eines gekrümmten Pfads
gdl
Copy
! Beispiel: Ein Rohr mit dreieckigem Profil entlang eines gekrümmten Pfads

! Profil definieren (Dreieck)
n_profile = 3
DIM profile_x[n_profile], profile_y[n_profile]
profile_x[1] = -0.1 : profile_y[1] = -0.1  ! Punkt 1
profile_x[2] =  0.1 : profile_y[2] = -0.1  ! Punkt 2
profile_x[3] =  0.0 : profile_y[3] =  0.1  ! Punkt 3

! Pfad definieren (gekrümmter Pfad im 3D-Raum)
n_path = 4
DIM path_x[n_path], path_y[n_path], path_z[n_path]
path_x[1] = 0 : path_y[1] = 0 : path_z[1] = 0   ! Startpunkt
path_x[2] = 1 : path_y[2] = 1 : path_z[2] = 1   ! Punkt 2
path_x[3] = 2 : path_y[3] = 0 : path_z[3] = 2   ! Punkt 3
path_x[4] = 3 : path_y[4] = 1 : path_z[4] = 1   ! Endpunkt

! Tube erstellen
twist = 90  ! Profil um 90 Grad drehen
reference_point = 2  ! Profil am mittleren Punkt des Pfads ausrichten
TUBE n_profile, n_path, profile_x, profile_y, path_x, path_y, path_z, twist, reference_point
Erklärung des Beispiels:
Profil:

Ein Dreieck mit 3 Punkten (n_profile = 3).

Die Koordinaten des Dreiecks sind in den Arrays profile_x und profile_y gespeichert.

Pfad:

Ein gekrümmter Pfad mit 4 Punkten (n_path = 4).

Die Koordinaten des Pfads sind in den Arrays path_x, path_y und path_z gespeichert.

Tube:

Das Dreieck wird entlang des Pfads extrudiert.

Das Profil wird um 90 Grad gedreht (twist = 90).

Das Profil wird am Mittelpunkt des Pfads ausgerichtet (reference_point = 2).

Wichtige Hinweise:
Die Reihenfolge der Punkte im Profil und im Pfad ist entscheidend, da sie die Form und Ausrichtung des resultierenden 3D-Objekts beeinflusst.

Wenn du komplexere Formen erstellen möchtest, kannst du die Anzahl der Punkte im Profil (n_profile) und im Pfad (n_path) erhöhen.

Der twist-Parameter ist nützlich, um spiralförmige oder verdrehte Strukturen zu erzeugen.

Ich hoffe, das erklärt den TUBE-Befehl ausführlich genug! Wenn du noch Fragen hast oder ein spezifisches Beispiel testen möchtest, lass es mich wissen. 😊

Deine Anregung würde mit einem einfachen Copy-Paste in den Script noch nicht wirklich funktionieren, denn nur die Angabe der Parameternamen ohne die vollständige Liste der Koordinaten geht der Tube-Befehl nicht. Ich würde mit dem Speicherstack arbeiten, um dann die vollständige Liste der Koordinaten an Tube zu übergeben.
Du hast absolut recht! Der TUBE-Befehl in GDL erfordert, dass die Koordinaten des Profils und des Pfads als vollständige Listen übergeben werden. Wenn man nur die Parameternamen angibt, ohne die Arrays korrekt zu füllen, funktioniert der Befehl nicht. Um dies effizient zu lösen, ist die Verwendung des Speicherstacks (Memory Stack) in GDL eine hervorragende Idee. Der Speicherstack ermöglicht es, Daten dynamisch zu verwalten und an Befehle wie TUBE zu übergeben.

Hier zeige ich dir, wie du den Speicherstack verwenden kannst, um die Koordinaten des Profils und des Pfads zu speichern und dann an den TUBE-Befehl zu übergeben.

Beispiel: Verwendung des Speicherstacks für den TUBE-Befehl
gdl
Copy
! Beispiel: Verwendung des Speicherstacks für den TUBE-Befehl

! Profil definieren (Rechteck)
n_profile = 4
DIM profile_x[n_profile], profile_y[n_profile]
profile_x[1] = -0.1 : profile_y[1] = -0.05
profile_x[2] =  0.1 : profile_y[2] = -0.05
profile_x[3] =  0.1 : profile_y[3] =  0.05
profile_x[4] = -0.1 : profile_y[4] =  0.05

! Profilkoordinaten in den Speicherstack schreiben
FOR i = 1 TO n_profile
    PUT profile_x[i], profile_y[i]
NEXT i

! Pfad definieren (gekrümmter Pfad im 3D-Raum)
n_path = 3
DIM path_x[n_path], path_y[n_path], path_z[n_path]
path_x[1] = 0 : path_y[1] = 0 : path_z[1] = 0   ! Startpunkt
path_x[2] = 1 : path_y[2] = 1 : path_z[2] = 1   ! Mittelpunkt
path_x[3] = 2 : path_y[3] = 0 : path_z[3] = 0   ! Endpunkt

! Pfadkoordinaten in den Speicherstack schreiben
FOR i = 1 TO n_path
    PUT path_x[i], path_y[i], path_z[i]
NEXT i

! Koordinaten aus dem Speicherstack lesen und an TUBE übergeben
TUBE n_profile, n_path, 
     GET(n_profile * 2),   ! Profilkoordinaten (x, y)
     GET(n_path * 3)       ! Pfadkoordinaten (x, y, z)
Erklärung des Codes:
Profil definieren:

Ein Rechteck mit 4 Punkten (n_profile = 4).

Die Koordinaten des Profils werden in den Arrays profile_x und profile_y gespeichert.

Profilkoordinaten in den Speicherstack schreiben:

Mit der PUT-Anweisung werden die x- und y-Koordinaten des Profils in den Speicherstack geschrieben.

Die Schleife FOR i = 1 TO n_profile iteriert durch alle Punkte des Profils.

Pfad definieren:

Ein gekrümmter Pfad mit 3 Punkten (n_path = 3).

Die Koordinaten des Pfads werden in den Arrays path_x, path_y und path_z gespeichert.

Pfadkoordinaten in den Speicherstack schreiben:

Mit der PUT-Anweisung werden die x-, y- und z-Koordinaten des Pfads in den Speicherstack geschrieben.

Die Schleife FOR i = 1 TO n_path iteriert durch alle Punkte des Pfads.

Koordinaten aus dem Speicherstack lesen und an TUBE übergeben:

Die GET-Anweisung liest die Koordinaten aus dem Speicherstack.

GET(n_profile * 2) liest die Profilkoordinaten (x, y).

GET(n_path * 3) liest die Pfadkoordinaten (x, y, z).

Warum der Speicherstack nützlich ist:
Dynamische Datenverwaltung: Der Speicherstack ermöglicht es, Daten flexibel zu verwalten, ohne feste Arrays verwenden zu müssen.

Effizienz: Durch die Verwendung von PUT und GET kannst du Daten direkt an den TUBE-Befehl übergeben, ohne zusätzliche Variablen zu benötigen.

Wiederverwendbarkeit: Der Speicherstack kann für komplexe Objekte mit vielen Punkten verwendet werden, ohne den Code unübersichtlich zu machen.

Erweiterte Nutzung:
Du kannst den Speicherstack auch verwenden, um zusätzliche Parameter wie twist und reference_point zu übergeben. Hier ein Beispiel mit Twist:

gdl
Copy
! Beispiel mit Twist und Speicherstack

! Profil und Pfad wie im vorherigen Beispiel definieren
...

! Twist und Reference Point definieren
twist = 90  ! Profil um 90 Grad drehen
reference_point = 2  ! Profil am mittleren Punkt des Pfads ausrichten

! Koordinaten aus dem Speicherstack lesen und an TUBE übergeben
TUBE n_profile, n_path, 
     GET(n_profile * 2),   ! Profilkoordinaten (x, y)
     GET(n_path * 3),      ! Pfadkoordinaten (x, y, z)
     twist,                ! Twist-Parameter
     reference_point       ! Reference Point
Fazit:
Die Verwendung des Speicherstacks in GDL ist eine elegante Methode, um Daten dynamisch zu verwalten und an Befehle wie TUBE zu übergeben. Dadurch wird der Code flexibler und effizienter.

Wenn du weitere Fragen hast oder ein spezifisches Beispiel testen möchtest, lass es mich wissen! 😊

Noch nicht ganz - Tube möchte den Twist jeweils bei den Koordinaten direkt haben, nicht danach. Der twist müßte immer direkt nach einer Koordinate folgen, nicht wahr?
The server is busy. Please try again later.

 

AC5.5-AC27EduAut, PC-Win10, MacbookAirM1, MacbookM1Max, Win-I7+Nvidia
15 ANTWORTEN 15

Nur interessehalber: Meinst du es liegt an der Kombination GDL und ArchiCAD oder generell daran, dass GDL weniger verbreitet ist?

Gruß, Benjamin Schober | Eidenhardt + Schober Architektur PartGmbB

ArchiCAD 21-29 (Voll, D), Windows 11 Pro (64-bit), Intel Core Ultra 9 285, 64 GB RAM, nVidia RTX 2000 Ada, 16 GB DDR6
runxel
Moderator

"AGI" haben wir ja noch nicht erreicht. LLMs sind eben nur stochastische Papageien.

Und bei GDL gibts einfach keinen nennenswerten, öffentlichen Korpus, mit dem man den Papagei füttern kann.

 

LLMs haben auch kein Verständnis von Geometrie. Mein Test ist noch einfacher als der von Torben: Eine Figur, die trapezförmig zuläuft und deren Ecken variabel abgerundet sein sollen. Keine Chance! 😄  Da kommen die lustigsten Gebilde zu Tage, aber nichts, was auch nur entfernt aussieht, wie das gewollte.

Lucas Becker | AC 29 on Mac (Sequoia) | Graphisoft Insider Panelist | Akroter.io – high-end GDL objects | Author of Runxel's Archicad Wiki | Editor at SelfGDL | Developer of the GDL plugin for Sublime Text

My List of AC shortcomings & bugs | I Will Piledrive You If You Mention AI Again |

POSIWID – The Purpose Of a System Is What It Does /// «Furthermore, I consider that Carth... yearly releases must be destroyed»
torben_wadlinger
Virtuoso

GDL ist nicht einfach nur ein Basic-Dialekt. Es unterscheidet sich schon mal konzeptionell dadurch, dass es verschiedene Skriptbereiche hat, die teilweise voneinander abgeschottet sind, sich aber trotzdem gegenseitig beeinflussen können. Das fängt schon mit der seltsamen Art und Weise an, in welcher Reihenfolge die Skripte abgearbeitet werden, aber auch dass es keine echten Konstanten gibt oder wie z. B. Wertetabellen aus dem Parameterskript manipuliert werden können.

 

CC bekommt einfache, nicht-Interaktive GDL‘s ziemlich gut hin. Und damit meine ich nicht nur das Erstellen des 3D-Skripts, sondern den ganzen Prozess bis hin zum echten GSM-Objekt. Aber dieses tiefe Wissen um das Zusammenspiel zwischen Archicad und den unterschiedlichen Skriptbereichen - das fehlt komplett.

 

Mein nächstes Projekt wird ein interaktives Schleppkurven-Objekt sein. Die Mathematik dahinter haben beide Systeme drauf, aber beim GDL-Algorithmus war Mistral ein Totalausfall. CC ist da deutlich besser. Beide hatte ich mit den selben Dokus gefüttert, d.h. das Wissen hätte bei beiden gleich sein müssen.

 

Ich denke aber, dass ich mal anfangen muss CC die Arbeitsweise eines Objekts beizubringen. Und dann werde ich ihm mal mein eigenes interaktives Polylinien-Objekt verfüttern. Ich denke, dann wird CC hier einen Sprung nach vorne machen.

Archicad seit v5.0 bis v29 | macOS und Windows | BIMCloud selbst gehostet | BIM-zertifiziert gemäß BAK und BIngK | BIM-Referent AK RLP
torben_wadlinger
Virtuoso

Hast du es mal mit einer Zeichnung probiert? Ich hatte CC mal eine Handskizze gegeben (für das Interface-Design), und danach war’s besser.

Archicad seit v5.0 bis v29 | macOS und Windows | BIMCloud selbst gehostet | BIM-zertifiziert gemäß BAK und BIngK | BIM-Referent AK RLP
Hmooslechner
Moderator

Torben: du schreibst:

 

"Mein nächstes Projekt wird ein interaktives Schleppkurven-Objekt sein. Die Mathematik dahinter haben beide Systeme drauf, aber beim GDL-Algorithmus war Mistral ein Totalausfall. CC ist da deutlich besser. Beide hatte ich mit den selben Dokus gefüttert, d.h. das Wissen hätte bei beiden gleich sein müssen."

Kennst Du eigentlich meine Objekte zum Thema Schleppkurven?



Hmooslechner_1-1780375504450.png

 

Ich habe diese Dinge "mit Switchen" zwischen verschiedenen KI`s und ziemlich intensiven Diskussionen hergestellt. Dabei gibts bei mir grundlegende Erkenntnisse im Arbeiten mit derzeitigen KI`s.. - später.

 

Zuerst mal die einfache:  https://www.youtube.com/watch?v=78hGyvh3_fU

 

darauf aufbauend dann die wesentlich komplexere für die erweiterbare Polylinie:

https://www.youtube.com/watch?v=HzhdqqA5pSo


Die KI kann bei mir nicht wirklich den Überblick behalten. Sie beleuchtet immer nur einen Teil der Gesamtproblematik. Man kann sie sehr wohl mit einer Ummenge von Infos über dieses Thema füttern, aber das bringt nicht wirklich was, denn sie befindet sich bildlich gesprochen in der Situation einer kleinen Taschenlampe an einer riesigen Wand mit Informationen und kann immer nur einen sehr kleinen Teil eines Problemes "im Bewußtsein behalten".

 

Versuch ihr mal, ein echt komplexes GDL ohne Erklärung zu schicken und frag sie mal, was das GDL macht. Du wirst erleben, dass sie Dir in sehr kurzer Zeit einen recht guten Überblick über die Funktionen gibt - sogar mit Bewertung des Teiles. - ABER

Sobald es darum geht, dieses Teil komplett mal zu durchforsten, um grundlegende Teile "in einem Aufwasch" zu ändern, kommt nur noch Unsinn dabei raus.

Sie behauptet zwar jedes mal, wenn sie Code schickt, daß dies der ultimativ ganz sicher perfekt funktionierende Code sei, aber das ist solange falsch, bis Du selber die vielen neu eingebauten Fehler findest und sie gewzungen hast, diese zu elliminieren. If-Then Else mit Doppelpunkt "Vereinfacheungen" macht sie immer - falsch, wenn "man sie freilässt".  Text2-Befehle mit STR(Variable, Vorkomma, Nachkomma) muss man immer nachkorrigieren, egal, wie oft man ihr mitteilt, wie das richtig geht usw, usw,. usw.

 

Trotzdem haben mir KI's - besonders Gemini dabei wesentlich geholfen, solche Teile herzustellen, wie in den obigen Videos gezeigt - und noch viele andere.  Mit Gemini kam ich dabei am weitesten. Aber ohne das Switchen zu anderen KI's wäre ich auch oft "angestanden", denn irgendwo kommt man dann bei manchen Problemen in einen Teufelskreis. 

Was auch oft hilft - komplett neu anzufangen und nur ganz kleine Schritte zu machen, damit die mit dem Lichtkegel ihrer Taschenlampe nicht zuviel auf einmal schlucken  muss - was dann oft recht gut funktioniert. Oft reicht dann einfach nur das 3D-Script alleine - mit einem dortigen Problem, was sie dann schnell lösen kann - wo es mit der Fülle des gesamten GDLs vorher "ins Straucheln" kam.

Eine wesentliche Erfahrung für mich war auch der Versuch mit der geodätischen Kuppel. Das hat in GDL gar nicht geklappt, bis ich auf den Gedanken kam, dies als Pythonscript machen zu lassen - was mir dann ein 3D-DXF herstellen sollte, die ich dann ins Archicad importiert habe. Das hat sie mir schon gleich zu Anfang mit mehreren Frequenzmöglichkeiten perfekt gemacht. Danach habe ich sie gebeten, diese Logik in ein GDL umzubauen und dies hat dann mit der Vorarbeit über Python praktisch "Aufs erste Mal" funktioniert. https://www.youtube.com/watch?v=SM_vCgv9sho

 

Entwicklungsverlauf:

Hmooslechner_0-1780375421162.png

 

Geodäsie AC29EduAut:
https://www.dropbox.com/scl/fi/uttq0jlswz0bpgr0tqkj4/Geod-tische-Kuppeln-mit-python3.pln?rlkey=5ixm5...


 

 

AC5.5-AC27EduAut, PC-Win10, MacbookAirM1, MacbookM1Max, Win-I7+Nvidia
torben_wadlinger
Virtuoso

Du hast einen komplett anderen Ansatz als ich mit der KI zu kommunizieren. Ich gewähre CC Zugriff auf die jeweiligen Projektordner und CC baut mit Hilfe des LP-XML_Converters die Objekte selbst. Damit bekommt er Fehlemeldungen schon im Vorfeld und das Debugging reduziert sich auf den Algorithmus. Außerdem schreibt CC aus den einzelnen Erkenntnissen Skill-Dateien, womit er von Mal zu Mal schlauer wird. 

 

Eine wesentliche Einschränkung war bisher immer, dass CC nicht wußte wie, wie Skripte abgearbeitet werden. Inzwischen weiß das aber CC, auch Dank dieses Videos von barkingbim:
https://youtu.be/S965tJ_XSQw?si=Y5KwJ5gJ0w8Avn0t

 

Danach hat CC einen Algorithmus für eine dynmaische Polylinie entwicklelt, der etwas schlanker ist als meiner.

Mir geht es daher nicht darum, eine Schleppkurve zu bauen, sondern um das Training von CC mit komplexen Problemen und deren Umsetzung in GDL um dann die Skills zu erhalten.

 

Daher wäre es jetzt spannend zu sehen, was CC aus Deinem Objekt macht, bzw. ob es dort Optimierungsmöglichkeiten sieht. Z.B. simulierst Du die Fahrstrecke über einen Schieber. Vielleicht geht das auch anders.

Archicad seit v5.0 bis v29 | macOS und Windows | BIMCloud selbst gehostet | BIM-zertifiziert gemäß BAK und BIngK | BIM-Referent AK RLP

Keine Antwort gefunden?

Andere Beiträge
im Board ansehen

Zurück zum Board

Neueste Lösungen durchsuchen

Akzeptierte Lösungen zeigen

Eine neue Diskussion starten!

Neues Thema erstellen