Maxon Developers Maxon Developers
    • Documentation
      • Cinema 4D Python API
      • Cinema 4D C++ API
      • Cineware API
      • ZBrush Python API
      • ZBrush GoZ API
      • Code Examples on Github
    • Forum
    • Downloads
    • Support
      • Support Procedures
      • Registered Developer Program
      • Plugin IDs
      • Contact Us
    • Categories
      • Overview
      • News & Information
      • Cinema 4D SDK Support
      • Cineware SDK Support
      • ZBrush 4D SDK Support
      • Bugs
      • General Talk
    • Unread
    • Recent
    • Tags
    • Users
    • Login

    Python Tag and Area Lights

    Scheduled Pinned Locked Moved PYTHON Development
    5 Posts 0 Posters 543 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • H Offline
      Helper
      last edited by

      THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

      On 18/09/2012 at 23:31, xxxxxxxx wrote:

      Hi guys!
      I have an area light that I'd like to be set to Object mode and I would like the child to be defined as that object. And, if possible, have a shortcut for this sort of light in the top panel with my other lights.

      I understand this can be done using a Python tag but I know nothing about it.

      If you could help or at least point me in the right direction where I can learn, I would really appreciate it 😄

      Thanks in advance!

      1 Reply Last reply Reply Quote 0
      • H Offline
        Helper
        last edited by

        THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

        On 19/09/2012 at 11:34, xxxxxxxx wrote:

        Hello.  I think this script will be the button you want, select the objects you want and then when you run it they'll be inserted under a newly created light and put into the objects list.

          
        import c4d  
        from c4d import gui  
          
          
        def main() :  
          objs = doc.GetActiveObjects(True)  
          light = c4d.BaseObject(c4d.Olight)  
          light[c4d.LIGHT_TYPE] = 8  #set type to area  
          inexclude = c4d.InExcludeData()  #Create and inexclude data to set the light's one too.  
           
          doc.InsertObject(light)#insert the object into the scene  
            
          for obj in objs:#if mutliple objects are selected it will insert all of them into the include data  
              inexclude.InsertObject(obj,15)  
              obj.InsertUnder(light) #move the objects under the newly created light  
          light[c4d.LIGHT_EXCLUSION_LIST] = inexclude  
            
          c4d.EventAdd()  
            
        if __name__=='__main__':  
          main()  
         
        

        And I think this is the code for a python tag you want:

          
        import c4d  
        #Welcome to the world of Python  
          
          
        def main() :  
          obj = op.GetObject()#Get the object that owns the tag  
          children = obj.GetChildren() #Get the children of that object  
          inexclude = c4d.InExcludeData()  #Create and inexclude data to set the light's one too.  
            
          for child in children:#if mutliple objects are selected it will insert all of them into the include data  
              inexclude.InsertObject(child,15)  
                
          obj[c4d.LIGHT_EXCLUSION_LIST] = inexclude  
          c4d.EventAdd()  
        

        Dan

        1 Reply Last reply Reply Quote 0
        • H Offline
          Helper
          last edited by

          THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

          On 20/09/2012 at 04:15, xxxxxxxx wrote:

          Hi Dan! Thanks for the reply! 😄
          What I'm looking for is for the first child to be placed as an object in:

          Light Attributes > Details > Object (right under Area Shape);

          And where did you learn this coding??

          1 Reply Last reply Reply Quote 0
          • H Offline
            Helper
            last edited by

            THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

            On 20/09/2012 at 09:11, xxxxxxxx wrote:

            No problem, I think this is what you want then.

            The script:

              
            import c4d  
            from c4d import gui  
              
              
            def main() :  
              obj = doc.GetActiveObject()#Gets only the first active object  
              if obj != None:  
                  light = c4d.BaseObject(c4d.Olight)  
                  light[c4d.LIGHT_TYPE] = 8  #set type to area  
                    
                  doc.InsertObject(light)#insert the object into the scene  
                    
                    
                  obj.InsertUnder(light) #move the objects under the newly created light  
                  light[c4d.LIGHT_AREADETAILS_SHAPE] =6  
                  light[c4d.LIGHT_AREADETAILS_OBJECT] = obj #set the selected object as the object field  
                  c4d.EventAdd()  
                
            if __name__=='__main__':  
              main()  
            

            The tag:

              
            import c4d  
            #Welcome to the world of Python  
              
              
            def main() :  
              obj = op.GetObject()#Get the object that owns the tag  
              child = obj.GetDown() #Get the first child of that object  
              obj[c4d.LIGHT_AREADETAILS_SHAPE] = 6 #setting area shape to object  
              obj[c4d.LIGHT_AREADETAILS_OBJECT] = child  #Set the object field to the child  
              c4d.EventAdd()  
            

            I've been doing Python with C4D for a bit now, I started with this tutorial:  http://chicagoc4d.com/videos/python/189-introduction-to-python  I wouldn't worry about the twitter stuff through.  Everyone on the forum has been a huge help as well.

            Dan

            1 Reply Last reply Reply Quote 0
            • H Offline
              Helper
              last edited by

              THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

              On 21/09/2012 at 02:57, xxxxxxxx wrote:

              Dude awesome thanks!
              Really appreciate the # explanations! Definitely learned something useful here.

              Cheers, dude.
              David

              1 Reply Last reply Reply Quote 0
              • First post
                Last post