• Login
sketchucation logo sketchucation
  • Login
🤑 SketchPlus 1.3 | 44 Tools for $15 until June 20th Buy Now

Getting group's dimensions

Scheduled Pinned Locked Moved Developers' Forum
7 Posts 3 Posters 1.1k Views 3 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.
  • S Offline
    Sweek
    last edited by 21 Apr 2017, 22:36

    Hello,

    I'm new here and I need help for my project. I try to get width, height and depth of my selected entities.
    For example, this is my project's hierarchy:

    http://sketchucation.com/forums/download/file.php?mode=view&id=147002&sid=1873d96db67d9c19c9fd179524a03797

    
    model = Sketchup.active_model
    selection = model.selection
    
    selection.each do |entity| 
      UI.messagebox(entity.name)
      entity.entities.each do |sub_entity|
        UI.messagebox(sub_entity.name)
      end
    end
    
    

    With this code, if I select A, I get the group A, 1 and 2. Now I'd like to get each group's dimensions. I tried this:

    
    model = Sketchup.active_model
    selection = model.selection
    
    selection.each do |entity|
      bb1 = Geom;;BoundingBox.new
      bb1.add(entity.bounds)  
      UI.messagebox("Name; #{entity.name}\nWidth; #{bb1.width}\nHeight; #{bb1.height}\nDepth; #{bb1.depth}")
      entity.entities.each do |sub_entity|
        bb2 = Geom;;BoundingBox.new
        bb2.add(sub_entity.bounds)  
        UI.messagebox("Name; #{sub_entity.name}\nWidth; #{bb2.width}\nHeight; #{bb2.height}\nDepth; #{bb2.depth}")
        bb2.clear
      end
      bb1.clear
    end
    
    

    If I select the A group I get the right values for A but not for its subgroups 1 and 2.
    If I select the subgroup 1, I get the right values for the subgroup 1.

    If you can explain me why I get this, or tell me how to get what i want. I would appreciate.


    hierarchy.png

    1 Reply Last reply Reply Quote 0
    • T Offline
      TIG Moderator
      last edited by 22 Apr 2017, 22:26

      Your code looks workmanlike.
      When I create a set of nested groups as you propose I get the results I'd expect ??

      What is 'wrong' with your results ?

      TIG

      1 Reply Last reply Reply Quote 0
      • S Offline
        Sweek
        last edited by 23 Apr 2017, 00:38

        Thanks for your answer. I will try to explain.

        I made this:
        -group B size is 15126,
        -group 3 size is 15123,
        -group 4 size is 15123

        http://sketchucation.com/forums/download/file.php?mode=view&id=147016&sid=0a3ceca0aaca666d6788aa408da8a10b

        If my selection is B like this:
        http://sketchucation.com/forums/download/file.php?mode=view&id=147017&sid=0a3ceca0aaca666d6788aa408da8a10b

        I get this results (which are right only for group B):

        http://sketchucation.com/forums/download/file.php?mode=view&id=147018&sid=0a3ceca0aaca666d6788aa408da8a10b

        http://sketchucation.com/forums/download/file.php?mode=view&id=147019&sid=0a3ceca0aaca666d6788aa408da8a10b

        http://sketchucation.com/forums/download/file.php?mode=view&id=147020&sid=0a3ceca0aaca666d6788aa408da8a10b

        As you can see, for group 3 and 4 the width is not correct.
        But if my selection is 4 for example:

        http://sketchucation.com/forums/download/file.php?mode=view&id=147021&sid=0a3ceca0aaca666d6788aa408da8a10b

        I get right results for group 4:

        http://sketchucation.com/forums/download/file.php?mode=view&id=147022&sid=0a3ceca0aaca666d6788aa408da8a10b

        Usually, how do you get the size of all groups in a model ?


        hierarchy.png


        1.png


        2.jpg


        3.jpg


        4.jpg


        5.png


        6.jpg

        1 Reply Last reply Reply Quote 0
        • S Offline
          sdmitch
          last edited by 23 Apr 2017, 16:00

          Just how did you create 3 and 4 inside of B?

          If I create 3 and 4, stack them, then group them to create B, your code works as expected.

          Nothing is worthless, it can always be used as a bad example.

          http://sdmitch.blogspot.com/

          1 Reply Last reply Reply Quote 0
          • S Offline
            Sweek
            last edited by 23 Apr 2017, 18:50

            Hi,

            Effectively, I tried as you said and it works.
            I will ask my internship supervisor how he created his groups.

            Do you know if people get group's dimension like I did or if they use another way ?

            1 Reply Last reply Reply Quote 0
            • S Offline
              sdmitch
              last edited by 23 Apr 2017, 19:30

              @sweek said:

              Do you know if people get group's dimension like I did or if they use another way ?

              Be aware that bounds dimensions of the container 'B' can and do change when rotated. The sub_groups, 3 and 4, are unaffected. Creating a new bounding box isn't necessary. It will be the same as the entities bounds. Use .local_bounds for the container, which gives you the initial dimensions, then use the x,y and z scales from the transformation to give you the current size.

              model = Sketchup.active_model
              selection = model.selection
              
              selection.each do |entity|
                bb1=entity.local_bounds; tr1=entity.transformation
                UI.messagebox("Name; #{entity.name}\nWidth; #{bb1.width*tr1.xscale}\nHeight; #{bb1.height*tr1.yscale}\nDepth; #{bb1.depth*tr1.zscale}")
                entity.entities.each do |sub_entity|
                  bb2=sub_entity.bounds
                  UI.messagebox("Name; #{sub_entity.name}\nWidth; #{bb2.width}\nHeight; #{bb2.height}\nDepth; #{bb2.depth}")
                end
              end
              

              Nothing is worthless, it can always be used as a bad example.

              http://sdmitch.blogspot.com/

              1 Reply Last reply Reply Quote 0
              • S Offline
                Sweek
                last edited by 23 Apr 2017, 19:47

                Thank you, I will work on this.

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

                Advertisement