Beginner:How to assign A-material to B-cube by python?
-
(
Thanks to all the good people who kindly answer questions to a green hand like me in recent days ,i have certainly made a huge pregress due to you zealous guys in such a super forum)
Well,i meet the problem to assign a material to another object in my project,i reviewed history post but not so solvable,let me take an easy example of A material and B cube,how to assign A to B?
Below is example pic
import c4d def main(): A = c4d.BaseObject(c4d.Ocube) #lost on how to make assignment
Thanks !
ilad
-
Hi Ilad, thanks for reaching out us.
With regard to your request, I warmly recommend to have a look at Materials and Shaders Overview where the basic of Cinema 4D materials and shading handling are discussed. Consider that even if the documentation refers to C++ the described concepts can be applied to Python as well.
Briefly the solution to your request is:
def main(): # get first object cubeA = doc.GetActiveObject() if cubeA is None: return # get second object cubeB = op.GetNext() if cubeB is None: cubeB = op.GetPred() #get first material matA = doc.GetActiveMaterial() if matA is None: return # get second material matB = matA.GetNext() if matB is None: matB = matA.GetPred() # create the texture tags for A and B ttagA = c4d.TextureTag() ttagB = c4d.TextureTag() # assign the swapped materials to the texture tags ttagA.SetMaterial(matB) ttagB.SetMaterial(matA) # insert the tags to the corresponding objects cubeA.InsertTag(ttagA) cubeB.InsertTag(ttagB) # queue an event c4d.EventAdd()
Last but not least, it's recommended for future threads to use the appropriate category and mark it as "Ask as a question" upon creation.
Best, Riccardo
-
@r_gigante Thanks!Greate help for me! I got it!