Zurück   3dmaxforum.de > 3ds Max > 3ds Max - Plugins und Skripte
Zurzeit aktive Benutzer im Chat: 0
Mit 10 Benutzern waren die meisten Benutzer an einem Tag im Chat (14.03.2008).
Zurzeit ist kein Benutzer im Chat.

Bücher
Digital Lighting and Rendering 3ds max 2009 Workshops Poly-Modeling with 3ds Max: Thinking Outside of the Box Deconstructing the Elements with 3ds max How to Cheat in 3ds Max 2009: Get Spectacular Results Fast

über 3dmaxforum.de bestellen

über 3dmaxforum.de bestellen

über 3dmaxforum.de bestellen

über 3dmaxforum.de bestellen

über 3dmaxforum.de bestellen

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 22.03.2008, 15:25   #1
Benutzer
 
Benutzerbild von Hirk
 
Registriert seit: 16.06.2006
Ort: Geminesien
Beiträge: 286

Galerie von Hirk ansehen

Hirk hat noch keine Resonanz auf seine Beiträge erhalten, um sein Renomee anzuzeigen
Standard Material-ID

Hi,
Ich habe in meiner Szene 105 Objekte die einen Material Modifier besitzen.
Auf der Oberfläche lautet der einzig verfügbare Parameter dieses Modifiers Material-ID.

In der maxscript.chm wird diese Eigenschaft als materialid beschrieben, die den alias Material_ID besitzt.

Ich vermute, dass bei Autodesk gerade alle Programmierer an einer vierten Schreibweise arbeiten.

Ich habe folgende Scripte probiert:

Code:
for i in selection where hasProperty i "Material-ID" do i.Material-ID = 2

for i in selection where hasProperty i "materialid" do i.materialid = 2

for i in selection where hasProperty i "Material_ID" do i.Material_ID = 2
Bringt alles nix! Ich verstehe nicht warum.
Hirk ist offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Mit Zitat antworten
Sponsored links
Alt 22.03.2008, 15:37   #2
Moderator
 
Benutzerbild von scrimski
 
Registriert seit: 27.04.2005
Ort: Berlin
Alter: 33
Beiträge: 9.671

Software: Wings 3D
Release: en

Blog-Einträge: 29

Galerie von scrimski ansehen

scrimski wird als engagiert angesehen
Standard AW: Material-ID

Sicher, dass es am "materialID" ängt und nicht an der doppelten Verwendung von i als Zähler und i als objekct?
Müsste das zweite i nicht selection[i] sein?

Was für eien fehlermelduung bekommst du?
__________________
Link gesperrt
scrimski ist offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Mit Zitat antworten
Alt 22.03.2008, 15:49   #3
erfahrener Benutzer
 
Benutzerbild von visualp
 
Registriert seit: 11.11.2006
Ort: Berlin
Beiträge: 731

Software: 3ds Max 2008
Release: en

Blog-Einträge: 2

Galerie von visualp ansehen

visualp hat noch zu wenig Resonanz auf seine Beiträge erhalten, um sein Renomee anzuzeigen
Standard AW: Material-ID

Ein ähnliches Problem hatte ich schon einmal mit

Code:
for i in selection where hasProperty i "Material" do print i
OK
Ging ebenfalls nicht.
Und ich weiß bis heute noch nicht, warum das so ist.

edit: @scrimski: selection ohne [i] ist korrekt.
__________________
Jeder Hirte hat zwei Gründe, gut für seine Schäfchen zu sorgen:
1. er will sie scheren, 2. er will sie fressen.
visualp ist offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Mit Zitat antworten
Alt 22.03.2008, 22:19   #4
Benutzer
 
Benutzerbild von Hirk
 
Registriert seit: 16.06.2006
Ort: Geminesien
Beiträge: 286

Galerie von Hirk ansehen

Hirk hat noch keine Resonanz auf seine Beiträge erhalten, um sein Renomee anzuzeigen
Standard AW: Material-ID

Ich bekomme die Fehlermeldung "OK".
Beim Kontrollieren der Szene zeigt sich aber das er mich belogen hat.

Und eigentlich müsste es heissen:

for i:=0 to seclection.count-1 do begin...end;

oder auch

for (i = 0, i >= selection.count; i++) {...}

maxscript erscheint mir da immer noch etwas seltsam.
Dass i im Zweiten Teil nicht mehr Zeiger, sondern gezeigtes Objekt ist soll wohl eine Vereinfachung darstellen.

Ähnlich wie i++ eigentlich i=i+1 ist, wobei ich die Pascal Variante mit inc(i) besser finde.

i=i+1 will man vermeiden, weil es aus mathematischer Sicht Schwachsinn ist.
Hirk ist offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Mit Zitat antworten
Alt 22.03.2008, 22:25   #5
Benutzer
 
Benutzerbild von Hirk
 
Registriert seit: 16.06.2006
Ort: Geminesien
Beiträge: 286

Galerie von Hirk ansehen

Hirk hat noch keine Resonanz auf seine Beiträge erhalten, um sein Renomee anzuzeigen
Standard AW: Material-ID

Ich bekomme die Fehlermeldung "OK".
Beim Kontrollieren der Szene zeigt sich aber das er mich belogen hat.

Und eigentlich müsste es heissen:

for i:=0 to seclection.count-1 do begin...end;

oder auch

for (i = 0, i >= selection.count; i++) {...}

maxscript erscheint mir da immer noch etwas seltsam.
Dass i im Zweiten Teil nicht mehr Zeiger, sondern gezeigtes Objekt ist soll wohl eine Vereinfachung darstellen.

Ähnlich wie i++ eigentlich i=i+1 ist, wobei ich die Pascal Variante mit inc(i) besser finde.

i=i+1 will man vermeiden, weil es aus mathematischer Sicht Schwachsinn ist.
Hirk ist offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Mit Zitat antworten
Alt 22.03.2008, 22:27   #6
erfahrener Benutzer
 
Benutzerbild von visualp
 
Registriert seit: 11.11.2006
Ort: Berlin
Beiträge: 731

Software: 3ds Max 2008
Release: en

Blog-Einträge: 2

Galerie von visualp ansehen

visualp hat noch zu wenig Resonanz auf seine Beiträge erhalten, um sein Renomee anzuzeigen
Standard AW: Material-ID

Richtig. Ok erhalte ich auch immer.
Wahrscheinlich hat das Objekt nicht die Eigenschaft Material_ID, sondern ein Subobjekt oder eine Klasse darüber.

Bei ShowProperties $Sphere01 erhält man z.B. keine Materialbezogene Eigenschaft.

Und ob es nun for i in 1 to selection.count oder for i in selection ist, relativ egal. Beide Male wird ein Loop durch das Selectionarray gemacht.
__________________
Jeder Hirte hat zwei Gründe, gut für seine Schäfchen zu sorgen:
1. er will sie scheren, 2. er will sie fressen.
visualp ist offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Mit Zitat antworten
Alt 22.03.2008, 22:41   #7
Benutzer
 
Benutzerbild von Hirk
 
Registriert seit: 16.06.2006
Ort: Geminesien
Beiträge: 286

Galerie von Hirk ansehen

Hirk hat noch keine Resonanz auf seine Beiträge erhalten, um sein Renomee anzuzeigen
Standard AW: Material-ID

Code:
Beide Male wird ein Loop durch das Selectionarray gemacht.
Na, das will ich doch hoffen. Ich wollte mich nur über die, meiner Meinung nach etwas seltsam gestalteten, sprachlichen Eigenschaften von maxscript beschweren. Mir gehts halt nicht gut, wenn ich nix zu meckern habe.

Trotzdem komme ich im Momemt nicht weiter. Ich werde auf gar keinen Fall 105 mal ein Objekt mit der Maus auswählen und den im Material Modifier den ID ändern.

Letzten Endes suche ich einen automatisierten Zugriff, um eine Animation aufzubauen, ich müsste das Ganze also zu jedem Keyframe wiederholen.
Die Objekte werden, nebenbei erwähnt unterschiedlich animiert.
Hirk ist offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Mit Zitat antworten
Alt 22.03.2008, 22:46   #8
Moderator
 
Benutzerbild von scrimski
 
Registriert seit: 27.04.2005
Ort: Berlin
Alter: 33
Beiträge: 9.671

Software: Wings 3D
Release: en

Blog-Einträge: 29

Galerie von scrimski ansehen

scrimski wird als engagiert angesehen
Standard AW: Material-ID

Zitat:
Wahrscheinlich hat das Objekt nicht die Eigenschaft Material_ID, sondern ein Subobjekt oder eine Klasse darüber.
material_ID ist keine Eigenschaft, sondern ein Modifier.
Man muss die Modifier extra in einem Array sammeln und da über den Modifier-Namen zugreifen, in etwa so
Code:
$.modifiers[i].materialid
$ ist die Auswahl, modifiers der Array der zugewiesenen Modfier, gezählt wird dabei von oben nach unten, materialid das Property.
probier mal
Code:
selection[i].modifiers==(matMod:Material())
anstelle von hasProperty.
__________________
Link gesperrt
scrimski ist offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Mit Zitat antworten
Sponsored links
Alt 22.03.2008, 22:49   #9
erfahrener Benutzer
 
Benutzerbild von visualp
 
Registriert seit: 11.11.2006
Ort: Berlin
Beiträge: 731

Software: 3ds Max 2008
Release: en

Blog-Einträge: 2

Galerie von visualp ansehen

visualp hat noch zu wenig Resonanz auf seine Beiträge erhalten, um sein Renomee anzuzeigen
Standard AW: Material-ID

Achso, es geht um den Material ID Modifier. Dann bist do falsch herangegangen.

Code:
for i in selection where hasProperty i "Material-ID" do i.Material-ID = 2
Ist falsch, der das Objekt i (bsw. Sphere die Eigenschaft nicht hat), allerdings hat i.materialModifier die Eigenschaft materialid.

Das heißt alles in allem müsste es so heißen:

Code:
for i in selection do i.Materialmodifier.materialid = 2
oder über Constructer:
Code:
for i in selection do (addModifier i (materialModifier materialID:2 name:"IchBinEinMaterialModifier"))
Kann es grad nicht testen, aber sollte in etwa hinhauen.
__________________
Jeder Hirte hat zwei Gründe, gut für seine Schäfchen zu sorgen:
1. er will sie scheren, 2. er will sie fressen.
visualp ist offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Mit Zitat antworten
Alt 22.03.2008, 23:34   #10
Benutzer
 
Benutzerbild von Hirk
 
Registriert seit: 16.06.2006
Ort: Geminesien
Beiträge: 286

Galerie von Hirk ansehen

Hirk hat noch keine Resonanz auf seine Beiträge erhalten, um sein Renomee anzuzeigen
Standard AW: Material-ID

Nein. Aber!

Jetzt habe ich es dank eurer Antworten verstanden.

Richtig ist:

Code:
for i in selection do i.MaterialHirkseinMatMod.materialid = 2
Voraussetzung ist, dass man den Material Modifier, der den bekackten Default Namen "Material" besitzt zuvor manuel, oder eben im Konstruktor umbenennt.

Hernach kann man dann eben diesen Bezeichner verwenden, der KEINE Namenskollision auslöst.

Frohe Ostern und einen guten Rutsch und überhaupt!
Hirk ist offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Mit Zitat antworten
Sponsored links
Antwort


Themen-Optionen
Ansicht

Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB-Code ist An.
Smileys sind An.
[IMG] Code ist Aus.
HTML-Code ist Aus.
Trackbacks are An
Pingbacks are An
Refbacks are An

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Material-ID Bug? scrimski 3ds Max - Allgemeines 9 15.02.2008 19:00
PSD to Material olli96 3ds Max - Allgemeines 3 06.04.2007 22:39
Eis Material VUSschneider 3ds Max - Materialien 6 17.11.2006 13:33
Durcheinander mit Material-ID,Material-ID Kanal und Mapping Kanal Ishildur 3ds Max - Einsteiger 10 06.10.2006 10:29
Material ID`s ?? lunaticmagic 3ds Max - Einsteiger 2 29.04.2006 12:15


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:06 Uhr.


Powered by vBulletin Version 3.7.0 (Deutsch)
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 RC5
Template-Modifikationen durch TMS
Copyright ©2002 - 2008, 3dmaxforum.de
Ad Management by RedTyger