sketchucation logo sketchucation
    • Login
    ℹ️ Licensed Extensions | FredoBatch, ElevationProfile, FredoSketch, LayOps, MatSim and Pic2Shape will require license from Sept 1st More Info

    [Plugin] Simple Catenary Curve

    Scheduled Pinned Locked Moved Plugins
    34 Posts 14 Posters 41.7k Views 14 Watching
    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.
    • thomthomT Offline
      thomthom
      last edited by

      I'm no math geek - but that cursed curve had me stumped when I wanted to make a chain/rope plugins.

      I've still not looked at the code, but can it be used to specify two 3D points and the total length of the curve?

      Thomas Thomassen — SketchUp Monkey & Coding addict
      List of my plugins and link to the CookieWare fund

      1 Reply Last reply Reply Quote 0
      • R Offline
        remus
        last edited by

        2 3d points is fairly easy as long as the 2 points are level, if not you have to start messing around with numerical solutions and it all gets rather messy.

        Its similarly difficult to specify a length if i remember correctly.

        http://remusrendering.wordpress.com/

        1 Reply Last reply Reply Quote 0
        • thomthomT Offline
          thomthom
          last edited by

          Yea, that's what I tried. Different heights.
          And also specifying length. Only solution to the length I could find was a method that did loop of approximation until it came within a given tolerance...

          Thomas Thomassen — SketchUp Monkey & Coding addict
          List of my plugins and link to the CookieWare fund

          1 Reply Last reply Reply Quote 0
          • fredo6F Offline
            fredo6
            last edited by

            Remus,

            I am glad you show the way to Users to get their ownautomation via Ruby. Obviously, Sketchup needs to be complemneted by some generic Rubies that does geometrical operations that SU does not do in native.

            But Ruby is also a very convenient way for individual users to speed up their workflow with some adhoc, simple programming. It's a little bit like Excel macros. They are meant for users to help with a few lines of code. But of course, some specialists could also write complete applications with thousands of lines of VB Scripts for Excel and share them to a community of users.

            Your program is 10 lines of code and does the work of creating a catenary curve. For the purpose of what it does for an individual user, it is very concise and elegantly written. Ruby is not very complex for simple things and you demonstrate it in your script.

            Now, yes, for writing a general plugin drawing any catenary curve in 3D between 2 points, with options, live feeback and postedition, the script would have to go one level beyond, and may not be an easy task for an occasional programmer (but do not worry, there is also a strong community of script writers!).

            So, I can only send you my support for showing what Ruby can do with a few lines of code, to automate repetitive tasks or make simple calculations.

            Fredo

            1 Reply Last reply Reply Quote 0
            • T Offline
              tomot
              last edited by

              @remus said:

              I just though other people might be interested (although i realise maths geeks are probably in short supply around here 😛 )

              count me in the math geek column!
              great little program, Ive been using it to learn more about Ruby.

              =begin
              Simple Catenary Curve script
              
              Author; Remus Knowles
              =end
              
              module RTK
              
              def self.simple_cat_curve
              
              ents = Sketchup.active_model.active_entities
              pts = []
              # add or delete interval to be evaluated 
              intervals = [-3,-2.75,-2.5,-2.25,-2,-1.75,-1.5,-1.25,-1,-0.75,-0.5,-0.25,0,0.25,0.5,0.75,1,1.25,1.5,1.75,2,2.25,2.5,2.75,3]
              
              intervals.each{|e|
              # main math formula, try x = (Math.sinh(e)), or (Math.sin(e))
              x = (Math.cosh(e))
              
              # pts.push([e,20,x]) entering 20 moves the curve  along green axis  20 units 
              # pts.push([e,x,0])  draws the curve in plan view 
              # pts.push([x,0,e,]) draws the curve in elevation view
              
               
              pts.push([x,10,e]) 
              pts.push([x,0,e,])
              pts.push([x,-10,e]) 
              }
              
              cat_curve = ents.add_curve(pts)
              
              cat_curve_grp = ents.add_group(cat_curve)
              
              end#method
              
              end#module
              
              UI.menu("Draw").add_item("Simple Catenary Curve") {RTK.simple_cat_curve}
              
              

              my attached code documents some of the things I have tried


              curve.png

              [my plugins](http://thingsvirtual.blogspot.ca/)
              tomot

              1 Reply Last reply Reply Quote 0
              • R Offline
                remus
                last edited by

                Fred, thanks, it means a lot coming from someone of your experience.

                Tomot, good effort on the mods, best way to start learning ruby in my opinion.

                http://remusrendering.wordpress.com/

                1 Reply Last reply Reply Quote 0
                • C Offline
                  CADAddict
                  last edited by

                  Hey REmus,
                  no need to be a Math Geek to find a use to it.
                  Anytime someone needs to model lets say the electric highvoltage cables supported by high voltage towers, this comes to a use.
                  Also for a more architecture realted topic, most of the Vaults designed by Antoni Gaudí's(the catalan architect author of the Sagrada familia in Barcelona)were actually inverted catenary curves, so anyone trying to model his buildings igh also find a use to it!
                  Thanks a lot!

                  http://www.cad-addict.com/

                  1 Reply Last reply Reply Quote 0
                  • mitcorbM Offline
                    mitcorb
                    last edited by

                    Hey, CADAddict:
                    Glad you mentioned Antonio Gaudi's Familia Sagrada, because that is the first thing I thought of when someone questioned the usefulness of catenary curves, besides suspended cables in equilibrium.
                    mitcorb

                    I take the slow, deliberate approach in my aimless wandering.

                    1 Reply Last reply Reply Quote 0
                    • simon le bonS Offline
                      simon le bon
                      last edited by

                      Remus's Catenary suspension bridge


                      http://i274.photobucket.com/albums/jj245/Spendauballet/SketchUp/CopyArray018th.jpg

                      taken in: Copy Array Along Path tool...have a look.

                      (Catenary Curve for the general shape of the bridge. The ropes are handmade using Bezier Spline with only one intermediate point driven in order to simulate the weight of the rope.

                      A remark to Remus: Your Catenary Curve is made with only 16 segments. It's probably too few in many cases. It would be better to add the choice of this number( 😉 )

                      @jclements said:

                      Hey Remus:

                      Next step is "chain maker" or "rope maker"..😄

                      The first tool exists right now with courtesy of Chris Fullmer :[Plugin] Component Stringer

                      😉 simon

                      1 Reply Last reply Reply Quote 0
                      • thomthomT Offline
                        thomthom
                        last edited by

                        @simon le bon said:

                        The first tool exists right now with courtesy of Chris Fullmer :[Plugin] Component Stringer

                        I think Remus is talking about a tool to simulate rope or chains - which is not what Chris' tool is doing.

                        Thomas Thomassen — SketchUp Monkey & Coding addict
                        List of my plugins and link to the CookieWare fund

                        1 Reply Last reply Reply Quote 0
                        • R Offline
                          remus
                          last edited by

                          @simon le bon said:

                          A remark to Remus: Your Catenary Curve is made with only 16 segments. It's probably too few in many cases. It would be better to add the choice of this number( 😉 )

                          I'll have a look at it 👍

                          http://remusrendering.wordpress.com/

                          1 Reply Last reply Reply Quote 0
                          • simon le bonS Offline
                            simon le bon
                            last edited by

                            @thomthom said:

                            I think Remus is talking about a tool to simulate rope or chains - which is not what Chris' tool is doing.

                            Hi thomthom,
                            You are rigth! I had probably been taken by the hurry of enjoyment. Chris's "Component Stringer" is a very cool tool, but intending to do a different job.

                            We can make a chain with it but it very uneasy and far from perfection!

                            @tig said:

                            Make half chain link (U) and use this tool then edit that chain and copy/hand the U geometry into an O loop of say 2.2 the original length, now you have your links; us 'make unique' on one of the links, edit it and rotate its contents 90 degrees. Select every other link and replace with this rotated one... a chain... done.


                            http://i274.photobucket.com/albums/jj245/Spendauballet/SketchUp/clfCompntStringer005th.jpg


                            http://i274.photobucket.com/albums/jj245/Spendauballet/SketchUp/clfCompntStringer006th.jpg

                            In such case, it will be better to do this way:


                            http://i274.photobucket.com/albums/jj245/Spendauballet/SketchUp/th_CopyArray013th.jpg

                            And for making a rope, I'm sure we can do a good job with our same Chris Fullmer's Shape Bender.

                            *simon

                            1 Reply Last reply Reply Quote 0
                            • R Offline
                              remus
                              last edited by

                              Try this, it's untested so give us a shout if it's broken.


                              simple_cat_curve.rb

                              http://remusrendering.wordpress.com/

                              1 Reply Last reply Reply Quote 0
                              • simon le bonS Offline
                                simon le bon
                                last edited by

                                Hi Remus, 😉

                                Something is wrong for me. "Simple Catenary Curve" opens and asks the number of segments (cool), but after validation, nothing happens..
                                *s

                                1 Reply Last reply Reply Quote 0
                                • R Offline
                                  remus
                                  last edited by

                                  Sorry, it was a silly bug as i was distracted while writing it last night. Hopefully this version should work.


                                  simple_cat_curve.rb

                                  http://remusrendering.wordpress.com/

                                  1 Reply Last reply Reply Quote 0
                                  • simon le bonS Offline
                                    simon le bon
                                    last edited by

                                    Sorry Remus,
                                    Something is still wrong!
                                    The Catenary curve is drawn so small that I can't zoom on it.

                                    http://i274.photobucket.com/albums/jj245/Spendauballet/SketchUp/CatenaryCurve001.jpg

                                    I have reloaded your first one to experiment FredoScale Strech tool to figure out something like my suspension bridge's ropes.

                                    seems not bad. I have no mathematic element to say if that remains a Catenary Curve.

                                    http://i274.photobucket.com/albums/jj245/Spendauballet/SketchUp/CatenaryCurve002th.jpg

                                    *simon

                                    1 Reply Last reply Reply Quote 0
                                    • R Offline
                                      remus
                                      last edited by

                                      No worries, i'll have a look at it this evening and see if i can get it back in working order again.

                                      http://remusrendering.wordpress.com/

                                      1 Reply Last reply Reply Quote 0
                                      • atelierpaarA Offline
                                        atelierpaar
                                        last edited by

                                        Hi REmus,
                                        I just tryed your Tool "Simple Catenary Curve"
                                        After the Dialog-box it seems that no Element was drawn.
                                        where is the curve? 😮

                                        Uli

                                        1 Reply Last reply Reply Quote 0
                                        • D Offline
                                          d12dozr
                                          last edited by

                                          Uli, its always drawn at the origin...you may need to zoom in close.

                                          3D Printing with SketchUp Book
                                          http://goo.gl/f7ooYh

                                          1 Reply Last reply Reply Quote 0
                                          • McGyverM Offline
                                            McGyver
                                            last edited by

                                            Thank you for this plugin and also thank you for adding the explanation of what it is for and the Wikpedia link.

                                            [Visit My ShareCG Freebie Gallery](http://www.ShareCG.com/pf/full_uploads.php?pf_user_name)

                                            1 Reply Last reply Reply Quote 0
                                            • 1
                                            • 2
                                            • 2 / 2
                                            • First post
                                              Last post
                                            Buy SketchPlus
                                            Buy SUbD
                                            Buy WrapR
                                            Buy eBook
                                            Buy Modelur
                                            Buy Vertex Tools
                                            Buy SketchCuisine
                                            Buy FormFonts

                                            Advertisement