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

Schraffurdefinitionen kopieren und umbenennen

kurb70
Participant
Hallo Zusammen,

ich stehe vor einem Problem und die Überschrift sagt schon einiges. Die Schraffurdefinitionen sollen aber nicht via ArchiCAD und seinen Werkzeugen sondern nur mit GDL "umbenannt" werden.

Ich würde gerne in einem Objekt eine Schraffurdefinition bestimmten Namens anfordern und diese unter einem anderen Namen in meinem GDL Objekt verwenden.

Hat dazu vielleicht jemand eine Idee?

Grüße, Kurt
9 ANTWORTEN 9
Nicht anwendbar
Du kannst die Reihenfolge in der die Objekte abgearbeitet werden nicht genau bestimmen. Also kannst Du nicht wissen, ob Dein Abfrageobjekt vor dem nutzniesenden Objekt abgearbeitet wird. Alle Tricks, die es da gibt, sind in realitas unberechenbar.
Einzige Ausnahme: MASTER_GDL. Dieses reine (Text)-GDL wird zu Beginn jedes Projektes und beim 3D-Modell Aufbau als allererstes abgearbeitet.

Nächster Haken: Du kannst zwar mittels REQUEST und IND eine bestimmte Schraffur lokalisieren, aber nicht umbenennen. Auch kannst Du die Einstellungen der Schraffur nicht 'auslesen' und dann einem neuen Namen mittels DEFINE zuweisen.

Worum geht es? Was willst Du genau?
kurb70
Participant
Auf dieselben Probleme sind wir schon gestossen. Master_GDLs kommen nicht in Frage, da sie mit der GDL Web Componente (ActiveX und Plug-in) nicht funktionieren.

Eigentlich möchten wir eine Schraffurdefinition von aussen (via JS) einschleusen. Bei Materialien ist das kein so grosses Problem, weil es eine endliche Anzahl von Werten gibt, welche das Material definieren. Bei Schraffuren können theoretisch aber unendlich viele Werte die Schraffur definieren.

Da wir das aber im Moment nicht für machbar halten, sind wir der Idee verfallen, dass es für unseren Einsatzzweck reichen würde, wenn wir die bestehenden Schraffuren einfach umbenennen.

Ein spezieller Name ist ein Kriterium um Auswertungen darauf anwenden zu können.

Grüße, Kurt
Nicht anwendbar
Ich habe das zwar nicht getestet, aber hier im Forum kam auf, daß das Master-GDL doch im Web-plugin verwendet werden kann, wenn es vom Objekt aus als Makro aufgerufen wird und in der gdllist.txt steht. Über die Abfrage (REQUEST) des Programmtyps kann ermittelt werden, ob man sich im plugin oder in Archicad befindet und den CALL so steuern.
Wenn Eure Schraffuren nicht dynamisch erzeugt werden, könnt ihr sie doch im MASTER_GDL vorab definieren und somit sicherstellen, daß es die Namen dann im Objekt auch gibt!
Anonymous
Nicht anwendbar
Das Problem ist:
Es muss ein eigenes Macro geben, das die Schraffurdefinitionen enthält. Am besten als *.gdl File. Schraffurdefinitionen, die man dann in ArchiCad verwenden kann, ist leicht zu bewerkstelligen: wie gesagt eigenes Master_GDL.gdl per CALL mitliefern. Müsste funken. Aber die Schraffuren auch im WebControl extern zur Verfügung zu stellen ist nicht so leicht. Denn da wird das eigene Master_GDL.gdl nicht interpretiert, da das WebControl ein eigenes Master.gdl hat.

1) Lösungsansatz: die Zahlenwerte der Schraffuren in *.gdl Files auslagern. Per PUT lassen sie sich in den Zwischenspeicher ablegen.
Im Parentobjekt ruft man dann per CALL die gespeicherten Werte für deine Definition auf:

CALL "schraffur_01"
DEFINE FILLA "meine schraffur" GET (NSP)
-> jede Schraffurdefinition benötigt ein eigenes *.gdl File
-> erhöhter Verwaltungsaufwand, da nicht alle Definitionen in einer einzigen Datei enthalten sind.

2) Lösungsansatz: das Master.gdl des WebControls "irgendwie" umschreiben, bzw. automatisch mit seinen Definitionen ergänzen.
Wie?? Keine Ahnung. Oder der User müsste Handarbeit anlegen und sein Master.gdl ersetzen bzw. ergänzen.

3) Lösungsansatz: das WebControl ermöglicht es wie in ArchiCad, eigene Masters mitzuverwenden, die dann zum bestehenden Master.gdl "dazuaddiert" werden. Vielleicht kann da GDLT was machen.

Minh
Nicht anwendbar
Damit wir nicht an einander vorbeireden: Du meinst die Darstellung im GDL web-plugin für Internetbrowser, oder?
AFAIK erlaubt dieses überhaupt keine CALL-Befehle. Oder etwa doch?
Das einzige, was ich hörte (aber leider auf die schnelle nicht gefunden habe) war, daß man ein Master_GDL doch irgendie zur Abarbeitung zwingen kann.

Was ich aber immer noch nicht weiß ist, was Ihr mit den Schraffuren vorhabt.
kurb70
Participant
CALL-Befehle sind erlaubt, ja sogar notwendig, weil das für die GDL Webkomponente ein Hinweis ist, dass es diese Dateien auch herunterladen muss.

Wir benötigen die Schraffurdefinition außerhalb der eigentlichen GDL Objekte, weil diese Definitionen von einem externen Programm auf einem Webserver dynamisch erzeugt werden.

ArchiCAD ignoriert Schraffurdefinitionen in einem *.GDL File, wenn dieser nicht mit Master_GDL beginnt.

Die GDL Web Komponente ignoriert dann gleich alle Schraffurdefinitionen in *.gdl Makros. Die spezielle Funktionalität des vorangestellten Master_GDL existiert dort gar nicht. Das ist eine Funktion die ArchiCAD immanent ist und nichts mit der GDL Engine, wie sie in der GDL Web Komponente zum Einsatz kommt, zu tun haben dürfte.
Nicht anwendbar
</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">Zitat:</font><hr /><font size="2" face="Verdana, Helvetica, sans-serif"> ArchiCAD ignoriert Schraffurdefinitionen in einem *.GDL File, wenn dieser nicht mit Master_GDL beginnt. Warum nennt ihr dann Euer GDL nicht Master_GDL_Schraffur.GDL und ruft es per CALL z.B. aus dem Master-Skript heraus auf?

Oder, wenn es bei *.GDL nicht klappt:
Kann Euer Erzeugerprogramm Binärdaten schreiben? Wenn ja, erzeugt doch ein *.ISM. Der Quellcode steht im ISM als ASCII-Text. Ein Dummy-ISM, das Leerzeichen enthält, die per Programm mit sen Schraffurdefinitionen überschrieben werden.
kurb70
Participant
</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">Zitat:</font><hr /><font size="2" face="Verdana, Helvetica, sans-serif">Warum nennt ihr dann Euer GDL nicht Master_GDL_Schraffur.GDL und ruft es per CALL z.B. aus dem Master-Skript heraus auf?Weil eben die Web Komponente leider eine solchermaßen definierte Schraffur nicht berücksichtigt.

</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">Zitat:</font><hr /><font size="2" face="Verdana, Helvetica, sans-serif">Kann Euer Erzeugerprogramm Binärdaten schreiben? Wenn ja, erzeugt doch ein *.ISM.Das wollte ich eigentlich umgehen. 😞

</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">Zitat:</font><hr /><font size="2" face="Verdana, Helvetica, sans-serif">Ein Dummy-ISM, das Leerzeichen enthält, die per Programm mit sen Schraffurdefinitionen überschrieben werden.Die Idee ist gewitzt, aber nicht sehr sauber 😉 Da werde ich mich eher auf das binäre Erzeugung verlegen. Dann kann ich auch alle anderen GDL Dateiformate erzeugen.
Nicht anwendbar
Kennst Du denn den internen Aufbau der Objekte? Ist mir neu, daß das GS offengelegt hat.

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