Group.volume
-
@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?
-
Mike, are you using Free or Pro edition ?
Can you provide an example of when it "doesn't work" ?
-
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
-
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 -
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 usenew_group=group.copy
etc...
Thennew_faces=[] new_group.entities.each{|e|new_faces << e if e.class==Sketchup;;Face}
etc etc...
-
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 -
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 ? -
@morci429 said:
but still group.volume still not working.
Exactly what isn't working?
Unexpected result?
Errors? -
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 -
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
Advertisement