sketchucation logo sketchucation
    • Login
    Oops, your profile's looking a bit empty! To help us tailor your experience, please fill in key details like your SketchUp version, skill level, operating system, and more. Update and save your info on your profile page today!
    🫛 Lightbeans Update | Metallic and Roughness auto-applied in SketchUp 2025+ Download

    Need help with specific dimension plugin

    Scheduled Pinned Locked Moved Developers' Forum
    11 Posts 5 Posters 1.2k Views 5 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.
    • TIGT Offline
      TIG Moderator
      last edited by

      First add the dimension initially:
      http://www.sketchup.com/intl/en/developer/docs/ourdoc/entities#add_dimension_linear
      Or to modify an existing dim:
      http://www.sketchup.com/intl/en/developer/docs/ourdoc/dimensionlinear
      Then use:
      http://www.sketchup.com/intl/en/developer/docs/ourdoc/dimension#text=
      to edit what that dim's text actually says...

      TIG

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

        You can also do this with your text override.

        dimension.png

        dim.text = "D1\n<>"

        \n = means newline and puts the dimension on a second line
        <> = means include the model's units in with the dimension

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

          I like that tip Garry!

          Download the free D'oh Book for SketchUp 📖

          1 Reply Last reply Reply Quote 0
          • K Offline
            Ka6a
            last edited by

            Thank you guys for replying
            So, after titanic labour I have produced this:

            
            require 'sketchup.rb'
            SKETCHUP_CONSOLE.show
            UI.menu("Plugins").add_item("DimPlugin") {addim}
            def addim
              entities = Sketchup.active_model.entities
              dim = entities.add_dimension_linear [50, 10, 0], [100, 10, 0], [0, 20, 0]
             dim.text = "D1"
            end
            
            

            And questions:

            1. How can I choose points for a new dimension (like basic sketchup tool "Dimension" does)?
            2. How can I create multiple dimensions (D1, D2, D3... etc)?

            Thanks again...

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

              dimension first then try

              dims = Sketchup.active_model.entities.grep(Sketchup;;Dimension)
              i = 0
              dims.each do |d|
              i+=1
              d.text = "D#{i}"
              end
              

              it hard to do a sort, but maybe the order of dimensioning will be honoured...

              john

              learn from the mistakes of others, you may not live long enough to make them all yourself...

              1 Reply Last reply Reply Quote 0
              • K Offline
                Ka6a
                last edited by

                Thank you! It works much better!

                But I still need a way to pick two dimension's points.
                Or another decision (if it easier):
                I could make dimensions by default Sketchup tool, but then I would to replace all of them by my plugin.

                1 Reply Last reply Reply Quote 0
                • TIGT Offline
                  TIG Moderator
                  last edited by

                  You need to make a "Tool" in Ruby code.
                  This then allows you to pick two or three points etc.
                  http://www.sketchup.com/intl/en/developer/docs/ourdoc/tool

                  Look at the code in my 2dTools to make a Rectangle.
                  Points 1 and 2 would be the dimension start and end and point 3 could set the offset etc.
                  Obviously you don't use the add_line() method, you need this:
                  http://www.sketchup.com/intl/en/developer/docs/ourdoc/entities#add_dimension_linear

                  TIG

                  1 Reply Last reply Reply Quote 0
                  • K Offline
                    Ka6a
                    last edited by

                    Thanks for advice, TIG, but I already tried it... It's too hard code for my low programming skill.
                    Could you answer me:
                    Where can I find sketchup dimension tool code for try to edit it? (Is it possible?)
                    Or how could I solve my problem another way (maybe by replacing text in existing dimensions)?

                    My current "frankenstein"-code 😕 :

                    require 'sketchup.rb'
                    SKETCHUP_CONSOLE.show
                    UI.menu("Plugins").add_item("DimPlugin") {addim}
                    
                    def addim
                    entities = Sketchup.active_model.entities
                    dim = entities.add_dimension_linear [50, 10, 0], [100, 10, 0], [0, 20, 0]
                    dims = Sketchup.active_model.entities.grep(Sketchup;;Dimension)
                    i = 0
                    dims.each do |d|
                    i+=1
                    d.text = "D#{i}"
                    end
                    end
                    

                    Thanks again

                    1 Reply Last reply Reply Quote 0
                    • TIGT Offline
                      TIG Moderator
                      last edited by

                      You can't do much with native tools, except activate them using Sketchup.send_action()
                      To mimic the native tools you must use the Ruby API.
                      There are many methods.
                      Using the methods I suggested would allow you to make a tool of your own which placed dimensions by picking points etc...

                      @driven already gave you a way of editing existing dimensions' text...
                      http://sketchucation.com/forums/viewtopic.php?p=594206#p594206
                      It is applied to all available dimensions in the model, or could be adjusted to process just the selected ones...

                      TIG

                      1 Reply Last reply Reply Quote 0
                      • K Offline
                        Ka6a
                        last edited by

                        Oh, my! It works! Thank you guys so so much!
                        TIG you are a Ruby wizard! Thank you for your patience

                        So, here is my final result:

                        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