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

3D-Objekt mit verschiedenen Ebenen

Anonymous
Nicht anwendbar
Gerne würde ich ein 3D-Bibliothekselement eines relativ komplizierteren Elements (Das 3D skript wird sehr lange nach dem Laden des Moprhs als Bib-Element) erstellen und dort Paramter wie zum Besipiel das ein und ausblenden eines Sockels oder das wählen von einem von 2 verschiedenen Logos. Nun ist meine Frage ob es eine Möglichkeit gibt, dass man die verschiedenen 3D- Element wie im 2D auf verschiedene Ebenen (1-16) legt und dann im Parameter-Skript sowie im 3D-Skript die Änderungen eingibt..

z.B. Etwa so:

If logo = "ref nr 0900" then
fragment2 1,0
fragment2 2,0
endif

If logo = "ref nr 0910" then
fragment2 1,0
fragment2 3,0
endif
16 ANTWORTEN 16
Anonymous
Nicht anwendbar
Nein, so geht das nicht. Aber mit Unterprogrammen.
GOSUB ... RETURN

Oder mit Makroaufrufen, was ich bei Dir schon fast bevorzugen würde, wenn Du es schaffst die Einzelteile als einzelne Objekte zu erzeugen. Dann kannst Du die Makroobjekte auch binär speichern, was einen deutlichen Geschwindigkeitsvorteil bringen sollte.
bjoern1
Newcomer
Hallo, wenn ich das richtig verstehe geht diese Frage auch in die Richtung, die ich gerade suche. Ich habe eine Steckdose erstellt mit 5 verschiedenen Varianten, diese sollen nun im UI in einem Klappmenu ausgewählt werden können. Das Menu funktioniert, aber ich kann es nicht zuweisen. Ich habe bisher keine Gosub Funktion eingebaut, aber ist das der Schlüssel für mich um mehreren Elementen eine Zuweisung zu erteilen?

lg Björn
Hmooslechner
Moderator
ja.
AC5.5-AC27EduAut, PC-Win10, MacbookAirM1, MacbookM1Max, Win-I7+Nvidia
bjoern1
Newcomer
sehr gut, dann bin ich auf der richtigen Spur, habe nun im Masterscript das stehen:

IF objtyp="Rahmen einfach"  THEN 
100:
ENDIF


und im 3D Skript das:

GOSUB 100 !Rahmen einfach
GOSUB 200 !Rahmen zweifach
GOSUB 300 !Rahmen dreifach
GOSUB 400 !Rahmen vierfach
GOSUB 500 !Rahmen fünffach
!!--------> einfacher Schalter 1
END
100:
group "Rahmen einfach"


aber er sagt mir dann doppelte Benutzung von 100:. Ich dachte es so zuweisen zu können...
Hmooslechner
Moderator
Nimm keine Zahlen sondern sprechende Namen in Anführungszeichen als Sprungmarken.



if Bedingung then gosub "Fall1"



end:!!!!!!!!!!!!!!!!!! Ende des Programms!!!!!!!!!!!!!!!!!!!!!!!!

"Fall1":

!!!Anweisungen..

return







aber er sagt mir dann doppelte Benutzung von 100:.


So eine Doppelbelegung heißt normalerweise, dass Du im Mastersript schon mal 100: verwendet hast.. und es somit doppelt verwendet wurde.
AC5.5-AC27EduAut, PC-Win10, MacbookAirM1, MacbookM1Max, Win-I7+Nvidia
bjoern1
Newcomer
Hallo Heimo,

wie eben besprochen im Masterscript habe ich es so:

IF objtyp="Rahmen fünffach"  THEN  gosub "Rahmen 5"


und im 3D Script so:

"Rahmen 5"


dann habe ich immer eine Fehlermeldung:

"Fehlender Call Befehl in Zeile xy" Die Zeile ist die mit "Rahmen 5".

Hatte ich das falsch verstanden?
Anonymous
Nicht anwendbar
Schau dir das sonst mal auf selfGDL oder im Kochbuch an. Das Prinzip ist:

IF bedingung THEN GOSUB sprungmarke

END

sprungmarke:

! Anweisungen

RETURN


sprungmarke kann eine Zahl oder "Text" sein.

Und darf nur einmal vorkommen.

Der Punkt nach der Sprungmarke ist kein Spass, sondern Pflicht. GDL ist eine Programmiersprache. Da darf man nicht nuscheln.
bjoern1
Newcomer
Hallo Lars,

ok, im Masterscript habe ich nun alles rausgeschmissen und es ins 3D Skript gesteckt


!IF objtyp="Rahmen einfach" THEN gosub "Rahmen1"

"Rahmen1":


Konfiguration

vor dem nächsten Ebenenabschnitt "Rahmen2"

END
RETURN



danach kommt dann:
!IF objtyp="Rahmen einfach"  THEN gosub "Rahmen2"

"Rahmen2":

die IF Bedingung ist allerdings mit "!" vorne dran, also nicht aktiv, mache diese aktiv geht es nicht, Fehlermeldung
Ich bekomme dennoch immer Fehlercodes, da scheint etwas noch bucht korrekt zu kaufen.
bjoern1
Newcomer
So, nun gehts, ich musste nur das IF THEN weiter nach unten schieben...

Danke euch dennoch, nun gehts ins UI... 😉