Kann Cinema zählen ?

Woogy

Erfahrenes Mitglied
Hallo,

ich habe gerade einige Modelle ( Steine in verschiedenen Formaten ) erstellt, welche zusammen ein Wand ergeben und letztendlich auch ein Haus ergeben.

Jetzt meine Frage : gibt es eine Möglichkeit am Schluss, wenn das Haus "gemauert" wurde, alle vorhandenen Steine zählen zu lassen ?
Natürlich kann ich über die Sceneeigenschaften mir die Modelle anzeigen lassen welche vorhanden sind, aber das es verschiedene Sorten von Steinen ( Sondersteine, Ecksteine, Laibungssteine ) gibt, würde ich gerne wissen, wie ich detailiert erfahren kann welche Steine in welcher Anzahl in der Scene vorhanden sind.

Hat da jemand eine Idee von Euch.

Ich wäre Euch unendlich dankbar, wenn es da eine Lösung geben würde.

LG
Woogy
 
:suspekt: Naja, wenn du die einzelnen Steintypen jeder in einem Nullobjekt sortiert hast, kannst du ja jeweils die Unterobjekte auswählen (Im OM rechtklick auf Nullobjekt "Alle Unterobjekte auswählen". Im entsprecehnden HUD eintrag kannst du dann dieAnzahl der ausgewählten Objekte ablesen :):):)
 
Danke,

aber es sind in der Regel pro Haus ca. 5.000 bis 9.000 Steine, darunter fallen folgende Steine :

1. Anschlagsteine
2. Ecksteine - Für die Hausecken
3. Laibungsteine - für Fenster und Türen
4. Höhenausgleichssteine - für den Höhenausgleich
5. Deckenrandseine - die Deckenabmauerung
usw.

In der Anlage ein Bild wie nur eine Wand mit den verschiedenen Steinen aussieht.

Von daher wäre es optimal, wenn am Ende des ganzen Hauses eine Funktion oder Script alle in der Scene befindlichen Steine auszählt.

Gibts da eine Möglichkeit ?

LG
Woogy
 

Anhänge

  • screenshoot.jpg
    screenshoot.jpg
    137,8 KB · Aufrufe: 213
Hi Woogy!

Wenn Deine Steine "benannt" wurden, kann ich folgendes Coffee-Script anbieten:
Es arbeitet sich durch alle Objekte der Szene. Der Anfang des Namens jedes Objekts wird mit denen im Script verglichen und ggf. gezählt. D.h. "Kugel" zählt "Kugel", "Kugel.1" und auch "Kugel_undvielmehr"...
Ist kein besonders "hübsches" Script (dafür fehlt mir gerade die Zeit), aber bei mir funktioniert's... ;)
Code:
var cnt;
var name;
// Hierarchie durchsuchen
get_down(obj)
{
 for (obj; obj; obj = obj->GetNext())
 {
  if (obj->GetDown()) {
   get_down(obj->GetDown());
    }
  // Gesamt-Zähler
  cnt[0]++;
  // Objekt-Zähler
  var i;
  for (i=1; i<sizeof(name); i++) {
   if (strmid(obj->GetName(),0,sizeof(name[i]))==name[i]) { cnt[i]++; }
  }
 }
 return;
}
main(doc,op)
{
 // Name beginnt mit...
 name = new(array,4);
 name[1]  = "Würfel";
 name[2]  = "Kugel";
 name[3]  = "Zylinder";
 // Zähl-Array
 cnt = new(array,4);
 var i;
 for (i=0; i<sizeof(cnt); i++) { cnt[i] = 0; }
 // Los geht's mit'm ersten Objekt
 var obj = doc->GetFirstObject();
 get_down(obj);
 // Ergebnis
 println("====================");
 println("Gesamt: ",cnt[0]);
 for (i=1; i<sizeof(name); i++) { println(name[i],": ",cnt[i]); }
}
(Ergebnis ist unter Fenster/Konsole zu finden)
Wie immer gilt: Nutzung des Scripts auf eigene Gefahr! Keinerlei Haftung für garnix!

Liebe Grüße,
Mark.
 
Wow, vielen Dank Mark - wenn Du eine Frau wärst, dann würd ich Dich glatt zum Fischessen ins Restaurant Dalmatia einladen - gibts das eigentlich noch ?

Ich werde mal schauen wie ich das mit Deinem Script hinbekomme.

Nochmals vielen Dank.


EDIT // Funtionier alles Bestens - jetzt werde ich mich auch mit Coffee beschäftigen, ich habe das immer wieder auf die lange Bank geschoben. Scheint an C-Script angelehnt zu sein, habe vor einigen Jahren gut C-Script proggen können. Also nochmals vielen Dank für den Anfang.

LG
Woogy
 
Zuletzt bearbeitet:
Zurück