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!
    ⚠️ Important | Libfredo 15.6b introduces important bugfixes for Fredo's Extensions Update

    Group.volume

    Scheduled Pinned Locked Moved Developers' Forum
    11 Posts 5 Posters 559 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.
    • Dan RathbunD Offline
      Dan Rathbun
      last edited by

      @unknownuser said:

      ](http://code.google.com/apis/sketchup/docs/ourdoc/group.html#volume)":3osf11lz]

      Sketchup 8.0+

      The volume method is used to compute the volume of this group if and only if this group is manifold.

      ... If the group represents a manifold volume, volume will be a positive value. If volume is negative, the group is not manifold.

      See Also: Group.manifold?

      I'm not here much anymore.

      1 Reply Last reply Reply Quote 0
      • Dan RathbunD Offline
        Dan Rathbun
        last edited by

        Mike, are you using Free or Pro edition ?

        Can you provide an example of when it "doesn't work" ?

        I'm not here much anymore.

        1 Reply Last reply Reply Quote 0
        • Didier BurD Offline
          Didier Bur
          last edited by

          Hi,

          If you're in trouble with group.volume, try this: (assumed g parameter is a group entity)

          def vol(g)
          	v=0.0
          	for face in g.entities
          		next unless face.kind_of? Sketchup;;Face
          		v +=(2*face.area*face.vertices[rand(2).to_i].position.to_a.dot(face.normal))/6
          	end
          	# if needed, convert cubic Inches to m3
          	return (v * 0.000016387064)
          end
          

          DB

          1 Reply Last reply Reply Quote 0
          • M Offline
            morci429
            last edited by

            Hi Didier, Great code thank u very much it did the job for me but its always worth to learn another way so Dan here's what i was trying to do with group.volume

            
            pt = []
            pt[0] = [0,0,0];pt[1] = [100,0,0];pt[2] = [100,100,0];pt[3] = [0,100,0]
            face = Sketchup.active_model.entities.add_face pt
            face.pushpull -100
            
            

            then i had to find out how many entities i had in the model and which of them is faces so i can add them to the group using selection.clear and selection.add

            and then i add all the faces to a group and i made a few copies of it.
            and i tried to use the function but it never worked.
            could you demonstrate a good practice of the function?
            thanks you πŸ˜„

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

              Why not add the face directly into the group in the first place?

              model=Sketchup.active_model
              group=model.active_entities.add_group()
              face=group.entities.add_face(pt)
              face.pushpull(-100)
              faces=[]
              group.entities.each{|e|faces << e if e.class==Sketchup;;Face}
              

              now faces is an array of all of the new faces inside group ?
              You can use new_group=group.copy etc...
              Then

              new_faces=[]
              new_group.entities.each{|e|new_faces << e if e.class==Sketchup;;Face}
              

              etc etc...

              TIG

              1 Reply Last reply Reply Quote 0
              • M Offline
                morci429
                last edited by

                that is certainly a better way thank you.
                but still group.volume still not working.
                did you use it before? what would be the way to use it?
                thanks

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

                  The group.volume in v8 [ http://code.google.com/apis/sketchup/docs/ourdoc/group.html#volume ] and Didier's way otherwise should both work... for 'manifold' / 'solid' forms...
                  What is the output/error in the Ruby Console ?

                  TIG

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

                    @morci429 said:

                    but still group.volume still not working.

                    Exactly what isn't working?
                    Unexpected result?
                    Errors?

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

                    1 Reply Last reply Reply Quote 0
                    • M Offline
                      morci429
                      last edited by

                      Didier's way is working with no proplems.
                      and this is the error message when i try to use group.volume
                      group.volume
                      Error: #<NoMethodError: (eval):41: undefined method `volume' for #Sketchup::Group:0x4d28ba0>
                      (eval):41

                      1 Reply Last reply Reply Quote 0
                      • M Offline
                        morci429
                        last edited by

                        i think i know where the problem is.. it only works in SketchUp 8. i just tried it
                        really sorry about that.
                        i was using 7 before that

                        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