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

zufallsparameter beim neusetzen eines objektes

zzyzx
Newcomer
ich hab' einen parameter, dessen wert ich per 'knopfdruck' als zufallszahl neu definieren lasse.

jetzt hätte ich gerne, dass zusätzlich auch beim neuplatzieren (bzw. kopie verschieben) der parameter neu berechnet und wieder gespeichert wird (aber nicht bei jedem neuen 3d fensteraufbau)

irgendwie vielleicht mit der internen id???
5 ANTWORTEN 5
Anonymous
Nicht anwendbar
oder unter Verwendung der Zeitfunktion?

Ich würde versuchen es über eine heftig schwingende Funktion und vielleicht der glob. ID zu probieren:

SIN(180*COS(x^2)*cos((x/2)^2))

Ich habe mich mit solchen Graphen mal beschäftigt. Je nach Wertebereich und Funktionsverschachtelung ergibt sich da eine recht wilde unvorhersehbare Schwingung. Der Vorteil ggü. RND() ist, daß sie nicht bei jedem Neuaufbau zufällig neue Werte bekommt, sondern unter Verwendung der glob. ID eindeutig bleibt. Die ID wird übriges konstant hochgezählt, kann also im Laufe eine Projektes recht groß werden. AFAIK werden frei werdende Nummern (gelöschte Objekte) nicht aufgefüllt.
zzyzx
Newcomer
die anregung mit der verschachtelten funktion ist natürlich auch 'ne möglichkeit!

in meinem fall tut's aber auch einfach die rnd(1)
beim setzen des objektes würde dann immer schön eine zufallszahl definert werden, wenns nicht passt: objekteinstellung öffnen und ein-zwei-mal auf den änden knopf klicken, bis es akzeptabel ist.

aber es will einfach nicht 100%ig klappen:
- drei objekte nacheinander setzen: alle drei haben dieselben werte
- wenn man jetzt in die objekteinstellungen der einzelnen objekte geht, 'merkt' es archicad, dass die id hochgezählt wurde und verändert den wert. das hätte ich aber gern schon sofort beim platzieren gehabt
vielleicht gibts ja einen trick?
oder liegts nur an der 7.0?

</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">Code:</font><hr /><pre style="font-size:x-small; font-family: monospace;"> ! random by zzyzx

! parameter btn (checkbox) anlegen
! parameter random (länge) anlegen
! parameter id (ganzzahl) anlegen


! parameter skript

if glob_modpar_name = "btn" then
random = rnd(1)
parameters random = random, btn = 0
endif

if id <> glob_intid then
random = rnd(1)
id = glob_intid
parameters random = random, id = id
endif

! 2d skript

text2 0,0,random
Anonymous
Nicht anwendbar
Um nicht ständig das 3D-Modell neu aufzubauen macht der GDL-Compiler an einigen Anhaltspunkten fest, wann ein Neuaufbau nötig ist. Ich habe das mal bei geschoßabhängigen Objekten bemerkt, die nicht funktioniert haben, wenn man im 3D-Skript nicht einen Parameter zu den Geschoßhöhen verwendet hat. Genau weiß ich das nicht mehr. Probiere das mal in einem anderen Skript (2D/3D/Master) Vielleicht hilfts. Denn das Parameterscript wird nicht wirklich abgearbeitet, wenn du ein Objekt platzierst, denn die möglichen Einstellungen und Werte sollten ja schon in den Objekteinstellungen getätigt worden sein.
zzyzx
Newcomer
ja, das wars!
alles ins masterskript und es tut wie's soll!
danke :winken: :winken: :winken:
Anonymous
Nicht anwendbar
The deep secrets of GDL. 🙂