Maxon Developers Maxon Developers
    • Documentation
      • Cinema 4D Python API
      • Cinema 4D C++ API
      • Cineware 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

    Script Log ?? Softimage Script Editor

    General Discussion
    0
    9
    1.2k
    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
      Helper
      last edited by

      On 20/08/2013 at 14:17, xxxxxxxx wrote:

      Hello,
      I want know what is (Alt+AddNull on object = Null become parent) in python, because i want create a batch of Null parent of 200 obj.

      I didn't find in the python docs, only a myobject.InsertUnder(). but i want create a Null parent.

      In a Script Log, when i do the command, it's write : c4d.CallCommand(5140) # Null
      What its mean ?
      I want see the FULL code not a command number.

      In Softimage the script editor is really friendly.
      Every action are wrote on the window, so it's really easy to create a macro script.

      Someone knows where i could see this in C4D ?

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

        On 20/08/2013 at 17:37, xxxxxxxx wrote:

        import c4d
          
        def main() :
            null = c4d.BaseList2D(c4d.Onull)
            select = doc.GetActiveObject() or doc.GetActiveObjects(c4d.GETACTIVEOBJECTFLAGS_CHILDREN)
            if isinstance(select, c4d.BaseObject) :
                prev = select.GetPred()
                next = select.GetNext()
                parent = select.GetUp()
                select.Remove()
                select.InsertUnderLast(null)
                if prev is not None:
                    null.InsertAfter(prev)
                elif next is not None:
                    null.InsertBefore(next)
                elif parent is not None:
                    null.InsertUnderLast(parent)
                else:
                    doc.InsertObject(null)
            elif isinstance (select, list) and len(select) > 0:
                inspnt = select[0].GetPred()
                for obj in select:
                    obj.Remove()
                    obj.InsertUnderLast(null)
                doc.InsertObject(null, pred=inspnt)
            null.ChangeNBit(c4d.NBIT_OM1_FOLD, c4d.NBITCONTROL_SET)
            c4d.EventAdd()
          
        if __name__=='__main__':
            main()
        
        1 Reply Last reply Reply Quote 0
        • H
          Helper
          last edited by

          On 23/08/2013 at 08:50, xxxxxxxx wrote:

          Thank you littledevil !

          Someone can explain to me, why the Script Log don't show the real code ? only command code ?

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

            On 23/08/2013 at 09:47, xxxxxxxx wrote:

            CallCommand() is real code. c4d.callCommand() is a normal method in the c4d API. C4D is much
            more OO than Softimage XSI, everything is an object with its own methods and so on. C4d does 
            not use a central hub like XSI (XSIFactory.DoSoemthingMehtod(parameter)) you can easily feed 
            from a script parser.

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

              On 23/08/2013 at 12:19, xxxxxxxx wrote:

              Ok,
              Do you know, where i can find the list of all the c4d.CallCommand(????) and the detail for each ?
              I read the Python SDK Docs, (but nothing here).
              Thank

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

                On 23/08/2013 at 12:40, xxxxxxxx wrote:

                sure it is documented, right there in the c4d module. but you won't find a very extensive 
                description there, as maxon expects you to either use a text search engine on the c4d 
                resource folder or the c4d console to find IDs.

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

                  On 23/08/2013 at 13:30, xxxxxxxx wrote:

                  Ooh i try many time the research engine, but it don't work with chrome... only firefox rocks !

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

                    On 23/08/2013 at 16:16, xxxxxxxx wrote:

                    with text search engine i meant a software like Agent Ransack.

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

                      On 26/08/2013 at 13:34, xxxxxxxx wrote:

                      Finally, i find the way to finish my little script :

                      import c4d

                      def main() :
                          select = doc.GetActiveObject() or doc.GetActiveObjects(c4d.GETACTIVEOBJECTFLAGS_0)
                          Nselect = len(select)
                          for i in range(Nselect) :
                              pos = c4d.BaseObject.GetAbsPos(select _)   # Get position objects
                              obj = c4d.BaseObject(c4d.Onull)             # Create new nulls
                              obj.SetAbsPos(pos)                          # Set position of nulls
                              doc.InsertObject(obj)                       # Insert objects in document
                              select _.SetAbsPos(c4d.Vector(0))          # Reset objects position to 0
                              select _.InsertUnder(obj)                  # Set nulls parent of objects
                          
                          c4d.EventAdd()

                      if __name__=='__main__':
                          main()

                      It's helpful with Fracture moggraph, it's for keep axis pivot the same.

                      But i continue to think than have the option to see Script log like :
                      c4d.DoSomething.Method(parameter)
                      Will help people to understand what they write, and create script easier.

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