tutorials.de Buch-Aktion 05/2012
Like Tree2Danke
  • 1 Beitrag von Mark
  • 1 Beitrag von Mark
ERLEDIGT
NEIN
ANTWORTEN
7
ZUGRIFFE
484
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    margoyle margoyle ist offline Mitglied Silber
    Registriert seit
    May 2009
    Beiträge
    93
    Hi,

    meine letzten Programmierversuche und C++ sind schon ein paar Tage her, dennoch denke ich, dass mir die Materie Xpresso prinzipiell nicht unzugänglich ist. Als ich jedoch mich an meinen ersten Versuch gesetzt habe, bin ich schnell an meine Grenzen gestoßen

    Folgende Aufgabenstellung:

    Ich möchte ein digitales Ziffernblatt erstellen, das aus den typischen kleinen Elementen besteht die sich, je nach meiner Eingabe, eben zu Ziffern formen.
    Habe also hier meine 7 "Striche" also Objekte, alle schön nummeriert und möchte nun ein Benutzerfeld kreieren, wo ich beispielsweise ne "6" eintrage, und dadurch alle "Striche" die nicht zur Dadrstellung der "6" benötigt werden, ausgeblendet werden.

    Ein Ding der Unmöglichkeit.... im Moment

    Ich fang besser erst gar nicht mit meinen unzähligen gescheiterten Versuchen an und frag lieber gleich nach professionellen Vorschlägen
    Das muss doch in Xpresso irgendwie zu machen sein...

    Thx schonmal,
    margoyle
     

  2. #2
    Avatar von Mark
    Mark Mark ist offline Mod | Cinema4D
    tutorials.de Moderator
    Registriert seit
    Aug 2003
    Ort
    Vienna:Austria
    Beiträge
    8.123
    Blog-Einträge
    10
    Hi!

    Hm, wäre schon gut, wenn Du die Schwierigkeiten zumindest ein wenig eingrenzen könntest: scheitert es bereits am Ein- und Ausblenden? Oder am Algorithmus?

    Grundsätzlich braucht ja nur für jedes Display-Element geschaut werden, ob es bei der gegebenen Zahl gebraucht wird. Das oberste, horizontale Display-Element z.B. wird bei den Zahlen 0,2,3,5,6,7,8 und 9 benötigt. Also könnte man mittels zwei Vergleichs-Nodes und einem Boole-Node prüfen, ob "Zahl" (Benutzerdatum) gleich 1 oder gleich 4 ist und dementsprechend die Sichtbarkeit des Elements setzen.
    Natürlich werden das so einige Vergleiche und somit eine Menge Nodes...

    Per Coffee (-Node) wird's kürzer, da dort die Vergleiche als "if-Abfragen" (oder Switch-case) viel schöner und kürzer zusammengefasst werden können.

    Wenn es aber unbedingt mit XPresso sein soll und die etlichen Vergleiche zu aufwändig sind, gäbe es noch eine Alternative über Splines als "Datenträger"; die Spline-Punkte fungieren als Array. So könnten z.B. die Punkte der Spline auf (0,1,0) (1,0,0) (2,1,0) (3,1,0) (4,0,0) (5,1,0) (6,1,0) (7,1,0) (8,1,0) (9,1,0) liegen und das oberste Display-Element für die "Zahl" definieren. Punkt-Node die Zahl zuweisen und schon erhält man als Position.Y den gewünschten Zustand.
    ... nur mal als möglichen Ansatz

    Liebe Grüße,
    Mark.

    //edit: binäre Vergleiche wären natürlich fein, aber so weit ich weiß, ist das mit XPresso nicht "mal eben so" gemacht

    //edit2: öhm, die Punkte der "Daten"-Spline oben können natürlich auch alle auf X=0 liegen, wir verwenden ja nur den Y-Wert und X entspricht der Punkt-Nummer ... sah halt schöner aus, tut aber nicht not
     
    ... bitte keine C4D-Fragen per PN ...
    +++ OUT NOW for CINEMA4D:
    Al'em - Free Align Plugin + Shaderpack Vol 1 - Free Shaders
    + Roll-It v1.0 - Free Roll Plugin + Egg-Objekt - Free Egg Primitive +++
    eggtion.net

  3. #3
    Avatar von Mark
    Mark Mark ist offline Mod | Cinema4D
    tutorials.de Moderator
    Registriert seit
    Aug 2003
    Ort
    Vienna:Austria
    Beiträge
    8.123
    Blog-Einträge
    10
    Hi!

    Hmpf, konnte es nicht lassen. Anbei die "Spline-Array-Variante" als Möglichkeit.
    Hierarchie-Node: Referenz "display", Start-Pfad D, Iterations-Pfad N
    display-Node: "Zahl" ist ein Benutzerdatum des Null-Objekts "display", Integer Min 0 Max 9
    display_array ist eine Spline, wie oben erwähnt, als "Datenträger": einfach angefügte Text-Datei einer punktlosen Spline über das Struktur-Fenster per Datei / ASCII-Datei hinzuladen... Die Punkte der Spline geben folgend pro "Zahl" (Punkte 0-6 = Zahl 0, Punkte 7-13 = Zahl 1 usw.) per Y-Position (0 = Aus, 1 = An) den Zustand der Display-Elemente an.

    Hoffe, ich habe nichts vergessen zu beschreiben

    Liebe Grüße,
    Mark.
    Miniaturansicht angehängter Grafiken Miniaturansicht angehängter Grafiken Xpresso -display1.jpg   Xpresso -display2.jpg  

    Angehängte Dateien Angehängte Dateien
    margoyle bedankt sich. 
    ... bitte keine C4D-Fragen per PN ...
    +++ OUT NOW for CINEMA4D:
    Al'em - Free Align Plugin + Shaderpack Vol 1 - Free Shaders
    + Roll-It v1.0 - Free Roll Plugin + Egg-Objekt - Free Egg Primitive +++
    eggtion.net

  4. #4
    Avatar von CUBEMAN
    CUBEMAN CUBEMAN ist offline Mitglied Rubin
    tutorials.de Premium-User
    Registriert seit
    Apr 2008
    Ort
    Hamburg
    Beiträge
    1.360
    Hallo Mark,

    wieder einmal ein Problem genial gelöst! Auf die Idee mit dem Spline-Array, wäre ich niemals gekommen.
    Ich verstehe die Schaltung zwar nicht vollständig, aber es funktioniert.

    Vielen Dank,
    CUBE
     

  5. #5
    margoyle margoyle ist offline Mitglied Silber
    Registriert seit
    May 2009
    Beiträge
    93
    WoW,

    danke! Das hat meine Erwartung etwas gesprengt
    Das AN/AUS-Prinzip für die einzelnen Elemente bei spezifischem Bild war mir klar, die Lösung über den Spline muss ich aber erst noch verstehen lernen ...

    Trotzdem vielen Dank, ich meld mich, wenn ich's kapiert hab
     

  6. #6
    margoyle margoyle ist offline Mitglied Silber
    Registriert seit
    May 2009
    Beiträge
    93
    OK, ich hab s soweit verstanden und umsetzten können... nun kommt Phase II

    Das ganze soll beispielsweise Teil einer Uhranzeige werden, bei der ich den gewünschten Wert eingebe (z.B. in Stunden, Minuten, Sekunden) und (natürlich auf der entsprechenden Anzahl von Feldern) die jeweiligen Zeichen erscheinen.

    ich übernehme also für jedes DisplayFeld die bereits ausgeknobelte Spline-Variante,
    will jedoch nicht für jedes Feld ein eigenes Benutzerdatum einrichten, sondern nur ein zentrales Feld haben.

    Frage:
    wie komme ich an bestimmte Positionen einer Zeichenkette von diesem zentralen Feld ?

    grüße,
    margoyle
     

  7. #7
    Avatar von Mark
    Mark Mark ist offline Mod | Cinema4D
    tutorials.de Moderator
    Registriert seit
    Aug 2003
    Ort
    Vienna:Austria
    Beiträge
    8.123
    Blog-Einträge
    10
    Hi!

    Schau mal im XPresso-Fenster unter: X-Pool / System Presets / String / Mid String

    Liebe Grüße,
    Mark.
    margoyle bedankt sich. 
    ... bitte keine C4D-Fragen per PN ...
    +++ OUT NOW for CINEMA4D:
    Al'em - Free Align Plugin + Shaderpack Vol 1 - Free Shaders
    + Roll-It v1.0 - Free Roll Plugin + Egg-Objekt - Free Egg Primitive +++
    eggtion.net

  8. #8
    margoyle margoyle ist offline Mitglied Silber
    Registriert seit
    May 2009
    Beiträge
    93
    Mein Held

    Mit dem mid-string gings dann doch recht schnell ...
    Im Anhang darf das Ergebnis gern bestaunt werden

    Vielen Dank für die Hilfen und Anregungen!

    viele grüße,
    margoyle

    Edit: Leider konnt ich bisher keinerlei Handbuch-Infos zum X-pool finden (bzw. zu den einzelnen presets) , das Ding bleibt im Moment noch ein Buch mit 7 Siegeln. Wo find ich dazu Infos?
    Miniaturansicht angehängter Grafiken Miniaturansicht angehängter Grafiken Xpresso -schaltung.jpg   Xpresso -ergebnis.jpg  

    Geändert von margoyle (16.05.09 um 15:57 Uhr)
     

Ähnliche Themen

  1. XPresso
    Von axn im Forum Cinema 4D
    Antworten: 2
    Letzter Beitrag: 10.03.09, 18:56
  2. XPresso
    Von CUBEMAN im Forum Cinema 4D
    Antworten: 2
    Letzter Beitrag: 24.11.08, 13:36
  3. xPresso
    Von katinka im Forum Cinema 4D
    Antworten: 2
    Letzter Beitrag: 13.07.08, 09:15
  4. TP…xpresso
    Von isnogood im Forum Cinema 4D
    Antworten: 13
    Letzter Beitrag: 23.01.06, 15:13
  5. Xpresso
    Von LiquidoX im Forum Cinema 4D
    Antworten: 4
    Letzter Beitrag: 31.08.04, 22:04

Stichworte