Navigation

    • Register
    • Login
    • Search
    1. Home
    2. indexofrefraction
    3. Best
    • Profile
    • More
      • Following
      • Followers
      • Topics
      • Posts
      • Best
      • Groups

    Best posts made by indexofrefraction

    RE: Check for missing textures

    ok! finally, it is imporant to use the doc to get the irs !
    now it works.

    irs = c4d.modules.render.InitRenderStruct(doc)
    

    but question:
    is this the only / best way to check if textures are missing?

    an alternative would be to actually check if the file is existing somewhere in the given paths

    posted in Cinema 4D SDK •
    RE: The layer material ID is the same as the node material ID.

    I also just ran into this...
    < R24 you dont have BaseList2D.IsNodeBased, but as a small hack you can do:

    def isNodeMaterial(op):
      return True if op.GetType == c4d.Mmaterial and '[Node]' in op.GetBubbleHelp() else False
    
    posted in General Talk •
    RE: Check for missing textures

    hi and thanks Maxime !

    GetAllAssetsNew() is S22 only,
    and I had problems with InitRender() and Vray Bitmaps

    so I decided to manually check for the files...
    I had it already, but GenerateTexturePath() shortens the code quite a bit, because I dont have to check all possible paths.

    It seem GenerateTexturePath() returns the absolute path, if the file is found somewhere in the texture paths, otherwise it returns None.

    needs some testing, but until now it seems to work well.

    best, index

    posted in Cinema 4D SDK •
    Quicktab Radio UserData change results in 2 Messages (Mini-Bug?)

    Hi,

    Just FYI ...
    I just noticed, that a Quicktab Radio UserData change results in two Messages (with the same UserData ID)
    If I change the interface to Cycle, I get only one Message as expected for an UserData change.

    This might be a tiny miny Bug (?) 🙂

    index

    posted in Cinema 4D SDK •
    CommandData Plugin with Submenu

    Hi,

    below is a simple CommandData plugin with a submenu to invoke different actions.

    This works fine if more than one of these plugins (with unique Plugin Ids ofc) are in one plugin folder.
    But there is no menu if there is only one plugin present in the folder.

    Is there a way to create such a menu with one plugin, while not registering each menu point as separate command?

    best index

    # encoding: utf-8
    
    ''' CommandData Plugin with Menu '''
    
    import c4d 
    
    PLUGIN_ID = 12345678  # Unique Plugin Id
    
    MENUID_CMD0 = 1000
    MENUID_CMD1 = 1001
    
    class MenuHandler(c4d.plugins.CommandData):
    
    	def Register(self):
    		return c4d.plugins.RegisterCommandPlugin(
    			id=PLUGIN_ID, str="Test", info=c4d.PLUGINFLAG_COMMAND_HOTKEY, icon=None, help=None, dat=MenuHandler())
    
    	def GetSubContainer(self, doc, submenu):
    		bc = c4d.BaseContainer()
    		bc.SetString(1, "Test")
    		bc.SetString(MENUID_CMD0, "Command 0")
    		bc.SetString(MENUID_CMD1, "Command 1")
    		submenu.InsData(0, bc)
    		return True
    
    	def ExecuteSubID(self, doc, id):
    		if id == MENUID_CMD0:
    			pass
    		if id == MENUID_CMD1:
    			pass
    		return True
    
    	def Execute(self, doc):
    		return True
    
    if __name__ == "__main__":
    	MenuHandler().Register()
    
    posted in Cinema 4D SDK •
    RE: incorrect specular channel property ids

    tx, i just wanted to report it...

    posted in Cinema 4D SDK •