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

    Where to Start with Ruby?

    Scheduled Pinned Locked Moved Developers' Forum
    18 Posts 10 Posters 1.7k Views 10 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.
    • G Offline
      Gruff
      last edited by

      I would like to start learning Ruby.
      Where do I start? Where to I find an interpreter for Windows?
      An IDE?

      Saddly my only experience is with Microsoft VB.

      Resistance is .... Character Forming. Grin

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

        http://code.google.com/intl/nb/apis/sketchup/docs/faq.html

        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

          Chris fullmers ruby tutorials are also a good starting point: http://www.sketchucation.com/advanced-tutorials-index/

          Ask lots of questions here as well, always people willing to answer your questions and queries.

          http://remusrendering.wordpress.com/

          1 Reply Last reply Reply Quote 0
          • N Offline
            NewOne
            last edited by

            @gruff said:

            I would like to start learning Ruby.
            Where do I start? Where to I find an interpreter for Windows?
            An IDE?

            Saddly my only experience is with Microsoft VB.

            This depends on what do you want... scripting for SketchUp doesn't require an interpreter. SketchUp have a built-in ruby interpreter.

            But you can start learning from here: http://pine.fm/LearnToProgram/
            And you might want to take a look on this: http://forums.sketchucation.com/viewtopic.php?f=169&t=6903#p137855

            1 Reply Last reply Reply Quote 0
            • Chris FullmerC Offline
              Chris Fullmer
              last edited by

              The tutorial of mine that Remus pointed you to is specifically for helping people get set up to write Ruby for Sketchup.

              I don't think its prefect, but its a start. And currently the forum here broke the tutorial so that it no longer displays correctly. So you have to cut and paste the text out into word or notepad so you can read it 😞 But hopefully it still helps. I have 2 of those tutorials.

              And as for just plain learning the Ruby language, I also HIGHLY recommend the tutorial that NewOne listed by Chris Pine. Its a really good tutorial and teaches you enough to being using ruby very quickly.

              And come here to ask questions often 😄

              Chris

              Lately you've been tan, suspicious for the winter.
              All my Plugins I've written

              1 Reply Last reply Reply Quote 0
              • J Offline
                Jim
                last edited by

                SketchUp does have the Ruby interpreter built-in. You can begin to play with Ruby by opening the Ruby Console from the Window menu in SketchUp.

                But the Ruby Console lacks any features to make it a good tool for anything more than entering some one-liners. It is mostly useful because it is where a script's standard output gets sent.

                For learning, I would definitely install Ruby for your platform: http://www.ruby-lang.org

                On Windows, even if you install the Ruby language, the installed files are not linked to SketchUp Ruby - they are separate interpreters. SketchUp Ruby does not include any of the files and libraries available with the Ruby Language installation.

                • The Ruby Language
                • The SketchUp API home
                • The SketchUp API reference

                Hi

                1 Reply Last reply Reply Quote 0
                • G Offline
                  Gruff
                  last edited by

                  Thanks everyone for all the advice.

                  So there is no programming environment with a debugger for Ruby inside Sketchup. (Similar to VBA inside Solidworks, Inventor, Autocad, IntelliCad, Excel, Word, Etc...)

                  Sigh

                  Does Sketchup Expose their API externally for other languages?
                  (Or for that matter stand alone Ruby for Windows.)

                  I notice that when I pull up VB6 there is a reference for the Sketchup Library. I cannot instantiate the SU Application object though. No errors. the object just returns a value of nothing. Wierd.

                  Private Sub Command1_Click()
                    Dim oSU As SketchUp.SkpApplication
                    Dim oDoc As SketchUp.SkpDocument
                    
                    Set oSU = SketchUp.SkpApplication
                    Set oDoc = oSU.ActiveDocument
                    MsgBox oDoc.Description
                    
                    Set oDoc = Nothing
                    Set oSU = Nothing
                  End Sub
                  

                  Resistance is .... Character Forming. Grin

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

                    There are some various solutions to plugging an debugging IDE to SU. I've not tried it - but you find them if you search for "debug".

                    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
                      RickW
                      last edited by

                      The SDK exposes SU to C++, but from what I hear, it's a bit of a mess.

                      RickW
                      [www.smustard.com](http://www.smustard.com)

                      1 Reply Last reply Reply Quote 0
                      • G Offline
                        Gruff
                        last edited by

                        Thanks to 'NewOne' I managed to get Notepad++ up and running with the bridge link to Sketchup.

                        Modified the Box.rb example as a simple test. Works nice.

                        I ran a search for SketchUp Ruby Debugger on this forum.
                        Found something by 'Pecan' but the page will not display.

                        It says I do not have the rights to view the page. ???

                        In any case I have a couple of beginner questions about box.rb script.

                        I notice that the require 'Sketchup.rb' uses single quotes while other references to literal strings use double quotes.

                        What is the distinction between the two?

                        Resistance is .... Character Forming. Grin

                        1 Reply Last reply Reply Quote 0
                        • GaieusG Offline
                          Gaieus
                          last edited by

                          Sorry but Pecan got pissed off by the ads and pulled off his script. His choice.

                          Gai...

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

                            You should not require 'Sketchup.rb' but instead require 'sketchup.rb'. Note the lower case s. If you do the former you will add another "Ruby Console" menu item under the Window menu.

                            " vs '
                            Double quotes can contain variables: "Hello #{variablename} World" while in single you can't do that.
                            Like PHP (which has similar difference between single and double quoted strings), in webdesign it's best to stick with single quotes as they require less processing. But that's because there's so much string processing in website programming. In SU scripting - which has usually very little string processing you will most likely not notice any difference.
                            Since I come from an webdesign background - being used to PHP - I use single quotes unless I need the special features of double. Force of habit.

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

                            1 Reply Last reply Reply Quote 0
                            • G Offline
                              Gruff
                              last edited by

                              Case sensitive? Ouch. I can see that giving me major heart burn.

                              Does Sketchup have something similar to Excel's Record Macro?
                              Such that I might dump the steps by which something was constructed?

                              Resistance is .... Character Forming. Grin

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

                                Unfortunately not. Its fairly simple to write ruby scripts to do a list of operations to each object in a selection, though.

                                e.g. http://www.sketchucation.com/beginning-ruby-2-writing-a-script/

                                http://remusrendering.wordpress.com/

                                1 Reply Last reply Reply Quote 0
                                • Rich O BrienR Offline
                                  Rich O Brien Moderator
                                  last edited by

                                  i know this is completely useless info, but there was a book i read online about ruby programming that was both hilarious and very easy to understand. From what i remember it concerned 2 little animals( i think ) and lots of strange analogies?

                                  Can anyone think of the name? it's wrecking my head 😠

                                  Download the free D'oh Book for SketchUp 📖

                                  1 Reply Last reply Reply Quote 0
                                  • N Offline
                                    NatBridge
                                    last edited by

                                    "_why's poignant guide to Ruby"

                                    1 Reply Last reply Reply Quote 0
                                    • J Offline
                                      Jim
                                      last edited by

                                      @gaieus said:

                                      Sorry but Pecan got pissed off by the ads and pulled off his script. His choice.

                                      I do not think it was ever hosted here. He always had it at google code. It's too bad he felt he had to leave, but his work is may be useful to some people:

                                      Link Preview Image
                                      Google Code Archive - Long-term storage for Google Code Project Hosting.

                                      favicon

                                      (code.google.com)

                                      Hi

                                      1 Reply Last reply Reply Quote 0
                                      • G Offline
                                        Gruff
                                        last edited by

                                        Read Chris Pines Tutorial and put this cheat sheet together for myself.

                                        ==== Ruby for VB Programmers ====

                                        --- Variables ---
                                        All variables are variant objects.
                                        Variables do not have to be declared before use.
                                        Variables are not formally declared. (No Dim statement).
                                        As variants they may be re-assigned any data type at any time.
                                        Variables that are assigned strings or numbers have methods. (As in VB.NET).
                                        Variables that are spelled the same but with different letter case ARE BY DEFINITION different variables.
                                        Variables must be assigned names beginning with a lower case letter
                                        Ruby --- VB
                                        Nil ---- Nothing

                                        --- Conversion methods ---
                                        to_i = String to integer
                                        to_f = String to float
                                        to_s = Integer or float to string, Concantinates elements when used with string arrays.

                                        --- Strings Manipulation ---
                                        Literal Strings are denoted by single quote ( ' )
                                        Backslash is an escape character: ' results in single quote. (\=)
                                        Double quoted text is a more flexible form of string defintion. (Inserting and formating)
                                        Ruby --- VB

                                        • ------ & ------------------------ Concantination
                                        • ------ Str(<string>, <count>) --- Repeat Char/String

                                        ------ ' ------------------------ Comments

                                        --- Operators and Comparison Operators ---
                                        Ruby --- VB
                                        ** ----- ^ ----- Exponent
                                        % ------ Mod ----- Modulus
                                        == ----- = ------ (Comparison) Equivalent
                                        != ----- <> ----- (Comparison) Not Equivalent

                                        --- Bracket Characters ---

                                        denote an array.

                                        Curly Brackets { } denote a hash
                                        Parenthisis ( ) used in a formula or logical statement work as they should but are optional for methods

                                        --- Hashes / Dictionary ---
                                        Define as you would an array but with curly brackets and a key.
                                        myList = {}; myList{'Bob Mitchell'} = '54823-11'; myList{'Phil Brown'} = '23872-08'; #Etc...

                                        --- Arrays ---
                                        Arrays are denoted by square brackets rather than parenthisis
                                        Arrays are zero based.
                                        Arrays elements do not have to be all the same type.
                                        Arrays as objects also have methods. (Push, Pop,Last, Length, Sort, Etc...)

                                        --- Loops ---
                                        Arrays have an interator method: While Loop myArray.Each do | <variable> | ... End
                                        While <Statement True> puts <variable> puts <variable> end

                                        --- User Methods ---
                                        Last variable or Return <variable> Returns value
                                        Ruby ----- VB
                                        Def( ) --- Sub( ) or Function( )

                                        --- Classes ---
                                        Any class may be extended including Ruby's supplied classes.
                                        The new method (Implied) is required for object instantiation.
                                        An Initialize method may be declared inside a class.
                                        The Initialize method can take user parameters. these parameters are required after the <Class>.new method.
                                        Properties are defined by the use of the @prefix on variable names.
                                        local variables are private to class
                                        Private is a Class keyword in Ruby that defines all methods below it as internal to the class.
                                        Ruby --- VB
                                        Time --- Date

                                        Resistance is .... Character Forming. Grin

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

                                        Advertisement