PSD-Tutorials.de
Forum für Design, Fotografie & Bildbearbeitung
Tutkit
Agentur
Hilfe
Kontakt
Start
Forum
Aktuelles
Besonderer Inhalt
Foren durchsuchen
Tutorials
News
Anmelden
Kostenlos registrieren
Aktuelles
Suche
Suche
Nur Titel durchsuchen
Von:
Menü
Anmelden
Kostenlos registrieren
App installieren
Installieren
JavaScript ist deaktiviert. Für eine bessere Darstellung aktiviere bitte JavaScript in deinem Browser, bevor du fortfährst.
Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen
alternativen Browser
verwenden.
Antworten auf deine Fragen:
Neues Thema erstellen
Start
Forum
3D: Modeling, Texturen, Licht, Animation, Rendern
Cinema 4D
C4D - Modelling
Befehl: Objekte verbinden + Löschen gleichzeitig auf viele anwenden
Beitrag
<blockquote data-quote="HarryBee64" data-source="post: 2372914" data-attributes="member: 606557"><p>Ich hab mal das Editable Plus Script von Sandi Dolšak angepasst.</p><p>Damit werden alle selektierten Objekte (max 500) in einem Rutsch Vaterobjekt für Vaterobjekt zusammengefasst und auch noch optimiert.</p><p>Es konvertiert auch Nurbs Objekte mit Deckflächen und optimiert sie (was die eigentliche Aufgabe des Scripts war)</p><p></p><p>Wie immer, das Benutzen des Scrips geschieht auf eigene Gefahr.</p><p></p><p>Ciao ;-)</p><p></p><p>DoTheMagic(sel, doc) {</p><p> if(sel->GetType() == OBJECT_EXTRUDE || sel->GetType() == OBJECT_LOFT || sel->GetType() == OBJECT_SWEEP || sel->GetType() == OBJECT_LATHE) { // NURBs</p><p> CallCommand(12236); // Make Editable</p><p> CallCommand(100004768); // Select Children</p><p> CallCommand(16768); // Connect+Delete</p><p> } else if(sel->GetType() == OBJECT_SYMMETRY) { // Symmetry</p><p> CallCommand(12236); // Make Editable</p><p> sel = doc->GetActiveObject();</p><p> var name = sel->GetDown()->GetName();</p><p> CallCommand(100004768); // Select Children</p><p> CallCommand(16768); // Connect+Delete</p><p> sel = doc->GetActiveObject();</p><p> sel->SetName(name); // Sets the name. Remove if you like to keep the name of Symetry object</p><p> } else CallCommand(12236); // Make Editable</p><p> CallCommand(100004768); // Select Children</p><p> CallCommand(16768); // Connect+Delete</p><p> sel = doc->GetActiveObject();</p><p></p><p> var bc = new(BaseContainer);</p><p> if(!bc) return;</p><p></p><p> bc->SetData(MDATA_OPTIMIZE_TOLERANCE, 0.1);</p><p> bc->SetData(MDATA_OPTIMIZE_POINTS, TRUE);</p><p> bc->SetData(MDATA_OPTIMIZE_POLYGONS, TRUE);</p><p> bc->SetData(MDATA_OPTIMIZE_UNUSEDPOINTS, TRUE);</p><p> SendModelingCommand(MCOMMAND_OPTIMIZE, doc, sel, bc, MODIFY_ALL); // Optimize call</p><p></p><p>}</p><p></p><p>DeselectAll() {</p><p> var obj = object();</p><p> while(obj->SearchNext(BIT_AOBJ)) {</p><p> obj->ToggleBit(BIT_AOBJ);</p><p> obj = obj->SearchNext(BIT_AOBJ);</p><p> }</p><p> obj->ToggleBit(BIT_AOBJ);</p><p>}</p><p></p><p>main(doc, op) {</p><p> var i = 0;</p><p> var k = 0;</p><p> var selected = new(array, 500); // Increase this number if you will ever select more then 500 objects at once</p><p> var selSave = new(array, 500); // -||-</p><p> var obj = object();</p><p> if(!obj) return;</p><p> while(obj->SearchNext(BIT_AOBJ)) {</p><p> selected<em> = obj;</em></p><p><em> i++;</em></p><p><em> obj = obj->SearchNext(BIT_AOBJ);</em></p><p><em> }</em></p><p><em> selected[i++] = obj;</em></p><p><em></em></p><p><em> DeselectAll();</em></p><p><em> </em></p><p><em> var j;</em></p><p><em> for(j = 0; j < i; j++) {</em></p><p><em> selected[j]->ToggleBit(BIT_AOBJ);</em></p><p><em> DoTheMagic(selected[j], doc);</em></p><p><em> selSave[k] = doc->GetActiveObject();</em></p><p><em> k++;</em></p><p><em> doc->GetActiveObject()->ToggleBit(BIT_AOBJ);</em></p><p><em> }</em></p><p><em></em></p><p><em> for(j = 0; j <k; j++){</em></p><p><em> selSave[j]->ToggleBit(BIT_AOBJ);</em></p><p><em> }</em></p><p><em>}</em></p></blockquote><p></p>
[QUOTE="HarryBee64, post: 2372914, member: 606557"] Ich hab mal das Editable Plus Script von Sandi Dolšak angepasst. Damit werden alle selektierten Objekte (max 500) in einem Rutsch Vaterobjekt für Vaterobjekt zusammengefasst und auch noch optimiert. Es konvertiert auch Nurbs Objekte mit Deckflächen und optimiert sie (was die eigentliche Aufgabe des Scripts war) Wie immer, das Benutzen des Scrips geschieht auf eigene Gefahr. Ciao ;-) DoTheMagic(sel, doc) { if(sel->GetType() == OBJECT_EXTRUDE || sel->GetType() == OBJECT_LOFT || sel->GetType() == OBJECT_SWEEP || sel->GetType() == OBJECT_LATHE) { // NURBs CallCommand(12236); // Make Editable CallCommand(100004768); // Select Children CallCommand(16768); // Connect+Delete } else if(sel->GetType() == OBJECT_SYMMETRY) { // Symmetry CallCommand(12236); // Make Editable sel = doc->GetActiveObject(); var name = sel->GetDown()->GetName(); CallCommand(100004768); // Select Children CallCommand(16768); // Connect+Delete sel = doc->GetActiveObject(); sel->SetName(name); // Sets the name. Remove if you like to keep the name of Symetry object } else CallCommand(12236); // Make Editable CallCommand(100004768); // Select Children CallCommand(16768); // Connect+Delete sel = doc->GetActiveObject(); var bc = new(BaseContainer); if(!bc) return; bc->SetData(MDATA_OPTIMIZE_TOLERANCE, 0.1); bc->SetData(MDATA_OPTIMIZE_POINTS, TRUE); bc->SetData(MDATA_OPTIMIZE_POLYGONS, TRUE); bc->SetData(MDATA_OPTIMIZE_UNUSEDPOINTS, TRUE); SendModelingCommand(MCOMMAND_OPTIMIZE, doc, sel, bc, MODIFY_ALL); // Optimize call } DeselectAll() { var obj = object(); while(obj->SearchNext(BIT_AOBJ)) { obj->ToggleBit(BIT_AOBJ); obj = obj->SearchNext(BIT_AOBJ); } obj->ToggleBit(BIT_AOBJ); } main(doc, op) { var i = 0; var k = 0; var selected = new(array, 500); // Increase this number if you will ever select more then 500 objects at once var selSave = new(array, 500); // -||- var obj = object(); if(!obj) return; while(obj->SearchNext(BIT_AOBJ)) { selected[I] = obj; i++; obj = obj->SearchNext(BIT_AOBJ); } selected[i++] = obj; DeselectAll(); var j; for(j = 0; j < i; j++) { selected[j]->ToggleBit(BIT_AOBJ); DoTheMagic(selected[j], doc); selSave[k] = doc->GetActiveObject(); k++; doc->GetActiveObject()->ToggleBit(BIT_AOBJ); } for(j = 0; j <k; j++){ selSave[j]->ToggleBit(BIT_AOBJ); } }[/I] [/QUOTE]
Bilder bitte
hier hochladen
und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Zitate einfügen…
Authentifizierung
Wenn ▲ = 7, ▼ = 3, ◇ = 2 und die Summe von ▲ und ▼ durch ◇ geteilt wird, was ist das Ergebnis?
Antworten
Start
Forum
3D: Modeling, Texturen, Licht, Animation, Rendern
Cinema 4D
C4D - Modelling
Befehl: Objekte verbinden + Löschen gleichzeitig auf viele anwenden
Oben