Probleme bei Benutzung berechneter Phase

  • Hallo zusammen,


    ich habe aktuell folgendes Problem: ich möchte auf eine Gerätegruppe einen Sinus (Dimmer) legen und den gleichmäßig auf alle Geräte verteilen. Bei einer Phase 0 < 360 machen logischerweise der erste und der letzte Strahler das Gleiche, das sieht aber doof aus. Ich kann natürlich ausrechnen welche Phase ich da eintragen muss: 360 / AnzahlAnGeräten * (AnzahlAnGeräten - 1). Um nicht jedes Mal die Programmierung anpassen zu müssen wenn sich die Anzahl an Geräten ändert würde ich diese Berechnung gerne in der Szene mit abspeichern. Da habe ich mir ein etwas "abenteuerliches" Konstrukt überlegt: Ich habe einen ParameterMaster genommen und diesen auf 1 gesetzt. Danach habe ich folgendes als Phase eingetragen: {ParameterMaster 1:*360/COUNT*(COUNT-1)} Das funktioniert auch wie erwartet.


    Wenn ich das Projekt nun aber schließe & neu öffne kommt die Fehlermeldung dass die Phase ungültig wäre. Scheint so als ob DMXC mit meinem Konstrukt beim Speichern oder Aufrufen schwer tut.


    Gibt es vielleicht eine elegantere Lösung (als mein Bastelkonstrukt) für mein Problem?


    Viele Grüße
    devit

  • Hallo,

    um erst einmal auf deine direkt gestellte Frage zu antworten: Nein, es gibt aktuell leider noch keine elegantere Lösung. Ich hätte das auch schon abundzu gebraucht und war auch schon einmal auf dem Weg, so eine zusätzliche Konstante einzubauen (DEVICEANGLE, welche dem Winkel zwischen zwei Geräten entspricht). Allerdings ist das etwas komplizierter, als ich das dachte. Man muss dazu a) generell Rechnungen im Devicecontrol ermöglichen und b) solche Konstrukte vom Kernel auswertbar machen. Daher kann ich das an der Stelle leider nicht, weil ich einige Zusammenhänge nicht kenne und Arne muss ran. Hab mit ihm auch mal darüber geredet, aber das ganze noch nicht als Ticket im Bugtracker hinterlegt. Ist also etwas untergegangen.


    Dann aber noch zu deinem anderen Problem, dass es die Fehlermeldung gibt: An sich ist diese Rechnung vollkommen legitim. Daher ist das ein Bug, der behoben werden muss. Könntest du dies bitte im Bugtracker als neues Ticket mit einem kleinen Beispielprojekt hinterlegen? Dann kann sich das Arne mal anschauen. Wenn du eh ein Ticket schreibst, könntest du dann vielleicht auch ein weiteres mit dem DEVICEANGLE und dem Rechnen im Device Control schreiben? Wäre super gut (auch wenn ich damit dann die Arbeit des Ticketschreibens an dich auslagere :saint:).

    Viele Grüße

    JP

  • In der Tat ist das eine flexible Lösung, mit einem Dummy-Gerät zu arbeiten. So elemenierst du auf alle Fälle den Punkt, dass bei einer Phase von 360° das erste und das letzte Gerät in der Gruppe das Gleiche machen.


    Mathematisch betrachtet hast du aber einen kleinen Unterschied. Denn mit acht realen plus einem Dummy-Gerät hast du eine andere Schrittweite zwischen den Geräten, also eigentlich bei den realen acht Geräten von nöten wäre.

  • Joa, im Prinzip ist das eine Lösung. Allerdings musst du dann eben immer dieses Gerät in der Gruppe mitschleifen. Daher ist die langfristige Variante dann doch die mit der Variable. Aber bis dahin ist das eine gute Alternative :)

    Mathematisch betrachtet hast du aber einen kleinen Unterschied. Denn mit acht realen plus einem Dummy-Gerät hast du eine andere Schrittweite zwischen den Geräten, also eigentlich bei den realen acht Geräten von nöten wäre.

    Öhm ich glaube, da ist jemand schon etwas müde und muss das morgen noch einmal frisch und munter nachrechnen :D Denn tatsächlich ist die Schrittweite beides Mal gleich 8) Man sollte nur das Dummy-Gerät als letztes in die Gruppe packen, sonst hat man einen Offset.

  • Öhm ich glaube, da ist jemand schon etwas müde und muss das morgen noch einmal frisch und munter nachrechnen :D Denn tatsächlich ist die Schrittweite beides Mal gleich 8) Man sollte nur das Dummy-Gerät als letztes in die Gruppe packen, sonst hat man einen Offset.

    Hätte jetzt ehrlich gesagt auch gedacht das ändert sich. Also als bsp. wenn ich mir jetzt eine Gruppe aus sagen wie 10 Geräte erstelle, da einen Effekt drauf ziehe und dem eine Phase gebe läuft der ja in einer anderen Geschwindigkeit wie wenn ich den gleichen Effekt mit den gleichen Parametern auf eine Gruppe mit 1000 Geräte ziehe. Natürlich macht jetzt ein Gerät da nicjt den Unterschied aber es müsste doch eigentlich schon einen geben, oder wo ist mein Denkfehler?

  • Zuerst einmal: Es geht hier um die Schrittweite und damit den Abstand zwischen den Geräten. Der Denkfehler dabei ist, wie der tatsächliche Abstand zwischen den Geräten verteilt ist. Sagen wir, wir wollen 4 Geräte auf einen Effekt so verteilen, dass alle Geräte etwas anderes machen, sprich wir verteilen sie gleichmäßig über die Phase. Damit der Abstand zwischen den Geräten gleich ist, teilen wir die 360° der Phase durch 4 (da 4 gleichgroße Bereiche zwischen den Scheinwerfern). Das ergibt also 360°/ 4 = 90°. Wenn wir also dem ersten Gerät eine Phase von 0° geben, bekommt das zweite eine Phase von 0° + 90° = 90°, das dritte eine Phase von 180° und das vierte eine Phase von 270°. Alle Abstände sind nun gleich verteilt.


    Der durchaus pfiffige Ansatz von ch700 ist ja jetzt zu sagen, statt hier nun 360° durch die Anzahl der Scheinwerfer zu teilen und das einmal abzuziehen, um die Phasenposition des 4. Scheinwerfers zu bekommen, sagt er einfach, dass man einen Scheinwerfer mehr nimmt und ihm dann die Phase von 360° gibt. Nun kommt zum Tragen, dass in einem Kreis (den wir hier praktisch beschreiten) 0° = 360° ist. So haben also der erste und der letzte (virtuelle) Scheinwerfer die gleiche Phase bzw. einen Abstand von 0° auf dem Kreis. Somit müssen die verbleibenden 360° gleichmäßig auf die Abstände der folgenden Scheinwerfer aufgeteilt werden 1->2, 2->3, 3->4 und 4->5 (da wie gesagt 5->1 einen Abstand von 0 auf dem Kreis haben). Wir haben also 4 Abstände, auf die wir 360° aufteilen müssen und das kennen wir schon von oben mit den 90°.

    q.e.d (lang "quod erat demonstrandum" oder auf deutsch "was zu beweisen war") ;)


    P.S.: Nein, ich habe mich nicht getriggert gefühlt :D

    im Falle eines Falles klebt Gaffa einfach alles, denn Gaffa ist dein Freund und Helfer :thumbup:

    Edited once, last by JPK ().