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

    The Python SDK & Hair

    Scheduled Pinned Locked Moved Bugs
    3 Posts 0 Posters 706 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 07/12/2011 at 15:08, xxxxxxxx wrote:

      User Information:
      Cinema 4D Version:   Python 
      Platform:      
      Language(s) :

      ---------
      HairGuides.SetPoint(id, p) has the same explanation as GetPoints()
      "Gets a list of points for the guides."
      This is of course wrong.

      HairGuides.GetPoints() is also listed twice in the R13 sdk.

      Concerning the rest of the SDK and Hair. There's not much there.
      There isn't even an explanation on how to create hair objects and guides.Confused
      So here's an example I put together:

      import c4d  
        
      def main() :  
        
        obj = c4d.BaseObject(c4d.Ocube)             #Creates a Cube in memory only  
        doc.InsertObject(obj)                       #Adds it to the OM   
        ho = c4d.BaseObject(1017305)                #Creates a hair object in memory only  
        ho[c4d.HAIRSTYLE_LINK]= obj                 #Puts the cube into the hair's link field  
        doc.InsertObject(ho)                        #Adds it to the OM  
        c4d.DrawViews(c4d.DRAWFLAGS_ONLY_ACTIVE_VIEW|c4d.DRAWFLAGS_NO_THREAD|c4d.DRAWFLAGS_NO_REDUCTION|c4d.DRAWFLAGS_STATICBREAK) #forces redraws  
        
        ho = doc.SearchObject("Hair")               #Lost the focus upon creation so we need to get it again  
        guides = ho.GetGuides()                     #Assign the guides to a variable  
        
        gcount = guides.GetCount()                  #Gets the number of guides  
        print gcount  
        
        segcount = guides.GetSegmentCount()         #Number of segments per guide (number of points is one more than this)  
        print segcount  
        
        gpcount = guides.GetGuidePointCount()       #Gets the number of points per segment.  
        print gpcount  
        
        owner = guides.GetObject()                  #Gets the guides owner object  
        print owner.GetName()  
        
        pnts = guides.GetPoints()                   #Gets a list of the points on all of the guides.  
        print pnts  
        
        guides.SetPoint(17, p= c4d.Vector(0,500,0)) #Moves one of the hair points to this vector position  
        ho.SetGuides(guides,clone=False)            #Error:The object doesn't own the guides!! Really?..Then who does?   
        
        c4d.EventAdd()  
        
      if __name__=='__main__':  
        main()
      

      I'm not sure what's going on with the SetGuides() function.
      In C++ the hair object owns the guides. And the python SDK also says the same thing.
      Yet I get an error that the hair object doesn't own the guides in my code.😵
      I'm not sure if that's a real bug. Or another one of those things that's documented clearly.

      -ScottA

      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 07/12/2011 at 23:29, xxxxxxxx wrote:

        Hi, the guides already belong to the hair object. Cheers, Sebastian

        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 08/12/2011 at 08:22, xxxxxxxx wrote:

          Hi Sebastian,

          That's kinds of a strange error message. It might be better to change it if possible.
          So does that mean that SetGuides() is only supposed to be used within python plugins?

          Also.
          When I change a guide hair's point position with: guides.SetPoint(17, p= c4d.Vector(0,500,0)).
          The point doesn't move(update) until I toggle the hair on&off in the OM.
          I've tried things like: c4d.DrawViews(c4d.DRAWFLAGS_FORCEFULLREDRAW) but none of them are working for me.

          -ScottA

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