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

    List of points of spline?

    Scheduled Pinned Locked Moved PYTHON Development
    8 Posts 0 Posters 708 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 08/02/2012 at 00:40, xxxxxxxx wrote:

      Dear Café,

      can anyone please tell me how can I get a list of spline's point? Or iterate through points.

      What I want to do is go through all point of spline and execute Diconnect command on each point but I can't figure out how to do that.

      Thanks, 
      Sergey

      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/02/2012 at 01:17, xxxxxxxx wrote:

        Hello sergey,

        did you take a look into the documentation?

        def main() :  
          if not op.CheckType(c4d.Ospline) :  
              # not a spline-object  
              return  
          for point in op.GetAllPoints() :  
              # process points  
              pass
        

        See the PointObject class for reference. Note that this is also available for Polygon-objects.

        Cheers, Niklas

        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/02/2012 at 01:23, xxxxxxxx wrote:

          Hi Sergey,

          SplineObject is a child class of PointObject. And there's a method GetAllPoints() in PointObject returning all the points of a a geometric object (polygon or spline).
          To test this, execute this command in the console (with a spline object selected) :

          op.GetAllPoints()
          
          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/02/2012 at 05:55, xxxxxxxx wrote:

            Many thanks to both of you!
            Sorry for stupid question, I'm not a programmer, so a lot of obvious things doesn't make any sense to me 😞
            I've seen this method, and at first I thought that everything would be easy, but I have no idea what to do with it because it returns positions of points. And I can't simply do c4d.(command for disconnect) for them, because it tries to disconnect bunch of vector data, not the actual points. Maybe there's something else I don't understand?

            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 09/02/2012 at 23:06, xxxxxxxx wrote:

              I guess my question wasn't exactly correct, because as I understand Point methods return things like tangents or positions, but what I need is to select all points of spline turn by turn and apply disconnect. 
              I guess every point has it's index so basically what I have to do is something like 
              select(0)
              for point in op.GetPointCount() :
              disconnect;
              select(point + 1)
              but what don't seem to get is how to select a specific point.

              Update: sorry for being an idiot, got it all by myslelf

              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 09/02/2012 at 23:54, xxxxxxxx wrote:

                Maybe you search for something like this:

                import c4d
                def main() :  
                    selection = op.GetPointS();  
                    selection.DeselectAll();  
                    selection.Select(0);  
                    for i in xrange(1, op.GetPointCount(), 0) :  
                        #  
                        # process stuff  
                        #  
                        selection.Deselect(i-1);  
                        selection.Select(i);
                

                Note: Written from scratch and therefore untested. Don't have access to C4D now.
                __ 
                Cheers, Niklas

                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 10/02/2012 at 01:04, xxxxxxxx wrote:

                  Probably best to write down what you want to achieve in C4D itself

                  It sounds like you want to take a spline with X number of points
                  and go to each point in turn - running the disconnect command
                  thus replacing the whole spline - with individual 2 point segments

                  one complete spline made up of x points
                  spline[.-.-.-.-.-.]

                  same spline turned into separate 2 point segments
                  spline[.-. .-. .-. .-. ]

                  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 10/02/2012 at 07:41, xxxxxxxx wrote:

                    Thanks, Niklas! That was exactly what I wanted to do.

                    deepshade, yes, that's what I was doing. I've encountered a problem because after every 'disconnect' the index of next point I needed to disconnect has been shifting by 3, not by 1, but I figured it out. So thanks everyone!

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