Objekt in den Koordinatennullpunkt schieben

Woogy

Erfahrenes Mitglied
Hi !
habe folgendes Problem : wenn ich ein Objekt ( 3ds, dxf, vrml ) lade, dann kommt es oftmals vor, dass sich zwar auf dem Nullpunkt ( x,y und z=0 ) das Koordinatenkreuz zum schieben und drehen befindet, das eigentliche Objekt aber ganz wo anderst sitzt.
Habe bis jetzt immer das Objekt im Polygonmodus selektiert und dann in diesem Modus die x,y,z Werte auf 0 gesetzt und danach wieder in den Modell bearbeiten Modus.
Ich weiß, dass ich nicht unbedingt nur mit dem K-Kreuz das Objekt schieben und bearbeiten kann, aber dies ist in einigen Situationen einfach schneller.
Das kann aber doch nicht die einzige Möglichkeit sein. Bei einem größeren Modell mit mehreren Objekten und Polygonen werd ich ja nie mehr fertig. Ich hoffe die Frage war verständlich, freue mich auf Eure Lösung.

LG
Woogy
 
Hi!

Ja, das ist ein Problem. Das liegt daran, dass Cinema die Position des Koordinatenkreuzes bei Objektegruppen immer auf den Nullpunkt setzt und nicht in die Mitte des Objektes.

Abhilfe schafft wohl am Besten einfaches Kopieren und verschieben des Koordinatenkreuzes. Aber eine Funktion gibt es nicht und kann es auch nicht geben.

Gruß,
Jens
 
Bin mir jetzt nicht ganz sicher, aber dein Problem is die Objektachse bei importierten Objekten richtig zu verschieben, oder?

Dafür gibt es doch einen "Achsenmodus", mit dem du die Achse einzelner Objekte verschieben kannst.
 
Hi Doc,

klar wie Du schon sagst "Dafür gibt es doch einen "Achsenmodus", mit dem du die Achse einzelner Objekte verschieben kannst."

Nicht mehr und auch nicht weniger geht damit.

Es geht aber eben darum, dass dieses Objekt leider 761 Objekte und 230.869 Polygone hat. Hab keinen Bock bei allen 761 Objekten den Achsenmodus einzeln zu verwenden um den Koordinatenpunkt zu treffen. Habe vorher auch schon alle Objekte selektiert (inklusive der Unterobjekte ) und per Achsenmodus die Achse verschoben, sobald ich aber ein Objekt aus einer dieser Objektgruppen markiere, ist der Koordinatenpunkt wieder wo dort wo er am Anfang war - das ist das Problem.

LG
Woogy
 
Hi!

Verzeih, wenn ich die Situation unterschätze/mißverstehe, aber reicht es nicht, einfach alles einem Null-Objekt hierarchisch unterzuordnen und darin im Ursprung zu positionieren?
...ganz naiv ;)

Liebe Grüße,
Mark.

//edit: *g* verzeih, habe das "einzelne Objekt" der Objektgruppe mißachtet :rolleyes:
//edit2: eine Möglichkeit per Coffee-Script:
Code:
main(doc,op)
{
  //Coffee-Expression auf Null-Object.
  var obj = op->GetDown();
  //Unterobjekt-Achsen werden auf 0,0,0 gesetzt.
  while(obj) {
	//funktioniert nur mit Punkt-Objekten
	if (!instanceof(obj,PointObject)) return FALSE;
	//Punkte-Anzahl
	var i,cnt = obj->GetPointCount(); if (!cnt) return TRUE;
	//Alle Punkte in Array holen
	var arr = obj->GetPoints(); if (!arr) return FALSE;
	//Position der Objekt-Achse holen
	var p = obj->GetPosition();
	//Alle Punkte abarbeiten
	for (i=0; i<cnt; i++) {
	  //Punkt entgegen der Achsen-Poition verschieben
	  arr[i].x = arr[i].x - p.x;
	  arr[i].y = arr[i].y - p.y;
	  arr[i].z = arr[i].z - p.z;
	}
	//Verschoben Punkte dem Objekt zuweisen
	obj->SetPoints(arr);
	//Positions-Vektor (0/0/0)
	p.x = 0; p.y = 0; p.z = 0;
	//Objekt-Achse auf (0/0/0)
	obj->SetPosition(p);
	//Punktänderungen mitteilen
	obj->Message(MSG_UPDATE);
	//Nächstes Unterobjekt holen
	obj = obj->GetNext();
  }
}
 
Hi Mark !

ich dreh noch durch :confused:, jetzt auch noch Coffee-Script :eek:...Es muss auch anderst gehen :rolleyes: und wenn ich die ganze Nacht brauche.
Ich habe nach dem Import alle Nullobejekte ( 210 Stück ) selektiert und den Befehl "Gruppe auflösen" gegeben. Jetzt sehe in der Objektliste alle Objekte und alle Nullojekte...gibt es keinen Befehl wie "löschen aller....Nullobjekte" oder "selektieren aller Nullobjekte" ?
Dann wären die Nullis weg und ich könnte den Rest neu Gruppieren und selektieren und und und.

LG
Woogy
 
Direkt fällt mir nun nix ein, um alle Null-Objekte zu löschen...
ABER
Markiere alle Objekte die in eine Gruppe soll (mit Shift-Taste)
Dann G (Alt + G bei R9) drücken und schon hast du alle in einer Gruppe inklusive der Mitte für das Null-Objekt.
So gehst du bei allen Objekten vor, die du in eine Bestimmte Gruppe integrieren willst.
Am Schluss dann einfach alle Nullobjkekte markieren und löschen, die dann weg sollen....
Is zwar auch ne heiden Arbeit... aber ich denk mal ein wenig... Simpler, als das scripten (wovon in auch null ahnung hab... noch)
Achja.. das Markieren der Nullobjekte im Manager weisst du hoffentlich wie das geht ;)
Simples "Windows-Explorer-Prinzip" vom markieren von Daten ;)

//edit
Was ich noch vergas...
Du kannst auch Objekte markieren, die in anderen Gruppen enthalten sind und die dann in eine andere Gruppe "reinschieben"
Das Objekt bleibt mit allen Werten erhalten... es ändert sich dann eben nur der Strukturbaum deiner Objekt-Gruppierungen :)
 
Zurück