Antworten auf deine Fragen:
Neues Thema erstellen

Texturtag zuweisen [COFFEE]

nux95

Developer, C4D Betatester

Hallo leute.

Hab hier folgenden Code.
Undzwar gibts ja leider keine Buttons in den Benutzerdaten, oder find ich die ned ? :uhm:
Nuja und so wollte ich dass man ein Boolschen Wert True setzen muss, und dass den Skript zum laufen bringt. Ich will ein Textur Tag dem selektierten Objekt zufügen. Am besten noch mit einem bestimmten Material !

1. Der setzt bei jeder Aktion ein neues Tag, obwohl der boolwert auf false gestellt wurde. :'(
2. Und wie bekomm ich ein bestimmtes Material in den Textur tag ? :hmpf:
(3. Kann ich dialogboxen mit COFFEE erstellen ? ^^)

Hoffe jmd kann mir helfen.:)

Code:
main(doc,op)
{


if ( op#ID_USERDATA:3 = true )
{
    var op = doc->GetActiveObject(); //Aktives Objekt
  var sel_tag = AllocTag(Ttexture); //Hole Textur Tag
    op->InsertTag(sel_tag,null); //Setze Textur Tag

    op#ID_USERDATA:3 = false;
}
else
{
    return false;
}
    
}
lg nux
 
Zuletzt bearbeitet:

NT2005

Von dannen.

AW: Texturtag zuweisen [COFFEE]

Hallo nux,

Ich wollte dir schon vor zwei Stunden schreiben, aber meine derzeitige Wohnlage (in einer Stundenverbindung [Corps]) verhindert so einiges, aber das ist zum Glück ab dem 1. November vorbei. ;)

Zu deinem Problemchen:
1. MSG_UPDATE() damit der C.O.F.F.E.E.-Tag auch prüft, das etwas passieren könnte oder etwas geändert wurde.
2. GetFirstTag(), SetMaterial(), GetMaterial()

Zusammengefasst: Es ist sehr schwierig. ;) Da musst du dir am besten einzelne Codeschnipsel zusammen suchen (z.B. plugincafe.com). Jedoch ist sogar die Cinema 4D SDK für C.O.F.F.E.E. mehr C++ als benutzerfreundlich.

Empfehlen kann ich dir diese zwei (habe nur das Erste):

The C.O.F.F.E.E. Book

Morgen habe ich mehr Zeit für bessere antworten. Tut mir Leid. :p
 
Zuletzt bearbeitet:

errare

Ich? Nein! Niemals! 0.o

AW: Texturtag zuweisen [COFFEE]

Hi,
wie man jetzt ein bereits bestehendes Material zuweist weiß ich nicht.
Ein neues Material + dem aktivem Objekt zuweisen:
PHP:
var doc = GetActiveDocument();
var op = doc->GetActiveObject();  


if (op != false)
{
	var texture = new(Material);
	doc->InsertMaterial( texture, NULL );
	var texture_tag = AllocTag( Ttexture );
	texture_tag#TEXTURETAG_MATERIAL = texture;
	op->InsertTag(texture_tag , NULL);
} else 
TextDialog( "Kein Objekt gewählt ",DLG_OK );

Das allerdings im Script Editor; Hat den Vorteil das es nur "Per Klick" ausgeführt wird (nicht so wie im COFFEE- Tag)
Und Dialogboxen sind auch moglich:

PHP:
TextDialog( "Hier Text Eingeben! ", DLG_OK );
 
Zuletzt bearbeitet:

nux95

Developer, C4D Betatester

AW: Texturtag zuweisen [COFFEE]

@NT: Besser als nichts :p

1. wie benutze ich MSG_UPDATE() ? Wenn ich es einfach am Anfang des Skript schreibe, ändert sich nichts. :/
2. Muss ich noch probieren.

ist beides nicht in meinem Besitz ^^

Danke :)

@errare:
Ja so ungefähr das habe ich schon in der Skriptsammlung von dir gesehen nur für einen COFFEETag und nicht TexturTag.
Ich möchte es allerdings gerne in den COFFETag einbauen. Es soll ja, wie oben zu lesen ist, bei aktivieren des Boolschen Parameters der Skript ausgeführt werden. Als Ersatz für Buttons ;)


Die Texturtags werden zwar gesetzt, aber es wird immer weiter gesetzt :D
und weiter und weiter und weiter ! Auch obwohl der Parameter auf false ist :hmpf:

Habs mal mit einem anderen Beispiel probiert. Das Objekt wird die ganze Zeit verschoben wenn ich USERDATA:2 verändere... auch wenn USERDATA:1 auf false ist.

Code:
main(doc,op)
{

if ( op#ID_USERDATA:1 = true )
{

    op->SetPosition(op#ID_USERDATA:2);
    op#ID_USERDATA:1 = false;

}

else

{

    return false;

}

}

lg nux

PS: Wenn ich am Anfang noch op->MSG_UPDATE(); hinschreibe passiert garnix :D
 
Zuletzt bearbeitet:

NT2005

Von dannen.

AW: Texturtag zuweisen [COFFEE]

Hallo Nux,

Es funktioniert so wie du es willst, wenn du zwei Gleichheitszeichen verwendest.

Code:
 if(a==b)
{
/code..
}

MSG_UPDATE() kommt am Ende hin (ohne irgendetwas).
 
Zuletzt bearbeitet:

nux95

Developer, C4D Betatester

AW: Texturtag zuweisen [COFFEE]

Werd ich morgen gleich probieren ;)
Aber warum jetz 2 ?
In errare's Tutorial hat er nur eines benutzt, glaube ich.
Obwohl wir lernen grad Java in der Schule da braucht mach auch 2. ^^

Ok danke werd mich morgen nochmal
melden. ;)

lg nux
 

nux95

Developer, C4D Betatester

AW: Texturtag zuweisen [COFFEE]

So also jetz is mir grad was aufgefallen, und zwar wenn ich auf den Parameter klicke soll ja der Skript ausgeführt werden. Und wenn der jetz das selektierte Objekt verwendet, ist es ja immer das mit den Benutzerdaten :lol:
Also mach ich es jetzt über einen Coffe Node, und das eingetragene Objekt soll den Texturtag erhalten.

Das funktioniert auch Prima, Get/SetMaterial(); hat irgendwie nicht funktioniert. ich habe wie errare #TEXTURETAG_MATERIAL verwendent, aber wieder das Problem, dass die ganze Zeit weitere Tags kommen.

Ich chegg das iwie ned ._.

Code:
main()
{

    var var_ismaterial = false;

if ( var_ismaterial == false )
{
    var var_tag = AllocTag(Ttexture);
    var_object->InsertTag(var_tag);
    var_tag#TEXTURETAG_MATERIAL = var_shader;
    var_ismaterial = true;

}


println(var_ismaterial);

}

PS: Die Konsole sagt das var_ismaterial true ist .. aber trotzdem wirds ausgeführt .. :/
 

NT2005

Von dannen.

AW: Texturtag zuweisen [COFFEE]

Hallo Nux,

Es ist doch offensichtlich wie so es immer wieder ausgeführt wird. Du definierst var_ismaterial in deiner Funktion main() immer wieder auf false. :p

Code:
var var_ismaterial = 0;
main()
{
  println(var_ismaterial);
  if ( var_ismaterial == false )
   {
    var_ismaterial = true;
   }
}
 
Zuletzt bearbeitet:

nux95

Developer, C4D Betatester

AW: Texturtag zuweisen [COFFEE]

Ok das ist logisch, da hast du recht :p
Also einfach var var_ismaterial = 0; [wieso benutzt du 0 und nicht false ? ist doch das gleiche oder macht das einen Unterschied ?] nach oben verschieben.

Wieso sagt er mir dann Syntax Error nach [....] = false; ? :-(
Ich bin zu blöd für COFFEE :p

Code:
var var_ismaterial = false;

main()
{



if ( var_ismaterial == false )
{
    var var_tag = AllocTag(Ttexture);
    var_object->InsertTag(var_tag);
    var_tag#TEXTURETAG_MATERIAL = var_shader;
    var_ismaterial = true;

}


println(var_ismaterial);

}
lg nux

PS: Wie erstelle ich eine eigene Klasse/Methode ? :D
 
Zuletzt bearbeitet:

NT2005

Von dannen.

AW: Texturtag zuweisen [COFFEE]

Hallo Nux,

Das weiß ich auch nicht wieso da ein Syntax Error kommt, deshalb ja die 0. :lol:

Eine eigene Klasse/Methode? Ich denke du meinst damit ein Unterprogramm wie main().

PHP:
start(n)
{
 println(n);
}

main(doc,op)
{
 var k = 1;
 start(k);
}

Wie ich sehe, wurde dir auf plugincafe.com geholfen. ;)
 
Zuletzt bearbeitet:

nux95

Developer, C4D Betatester

AW: Texturtag zuweisen [COFFEE]

Hm .. Ich probiers morgen nochmal. Danke ;)

Ja genau ! Super danke :daumenhoch:


auf plugincafe.com ? :uhm:


lg nux
 

NT2005

Von dannen.

Hallo Nux,

Verrückt, da muss ja jemand die gleiche Frage haben wie du. :D

evanbbb schrieb:
Hello, bit of a newbie question but I'm trying to take a material and apply it to a texture tag. I can only seem to get it to apply and empty texture. Here is how I'm going about it:

PHP:
var op = doc->GetFirstObject();
var mat = doc->GetFirstMaterial();
var marker = mat->GetMarker();
var ttag = AllocTag(Ttexture);

op->InsertTag(ttag,NULL);
op->Message(MSG_UPDATE);

ttag->SetMaterial(marker);
ttag->Message(MSG_UPDATE);

EventAdd();
 
Zuletzt bearbeitet:
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.611
Beiträge
1.538.341
Mitglieder
67.524
Neuestes Mitglied
BSKGA
Oben