- selection = Blender.Object.GetSelected()
- l = len(selection)
- if l == 0:
- print 'No Objects Selected'
- elif l > 1:
- print 'More than one Object Selected'
- else:
- obj = selection[0]
- obtype = obj.getType()
- if obtype == 'Mesh':
- obname = obj.getName()
- mymesh = NMesh.GetRawFromObject(obname)
- vtot = 0
- for f in mymesh.faces:
- fzn = f.normal[2]
- x1 = f.v[0].co[0]
- y1 = f.v[0].co[1]
- z1 = f.v[0].co[2]
- x2 = f.v[1].co[0]
- y2 = f.v[1].co[1]
- z2 = f.v[1].co[2]
- x3 = f.v[2].co[0]
- y3 = f.v[2].co[1]
- z3 = f.v[2].co[2]
- pa = 0.5*abs((x1*(y3-y2))+(x2*(y1-y3))+(x3*(y2-y1)))
- volume = ((z1+z2+z3)/3.0)*pa
- if fzn < 0:
- fzn = -1
- elif fzn > 0:
- fzn = 1
- else:
- fzn = 0
- vtot = vtot + (fzn * volume)
- print 'Volume = ', vtot, ' BU'
- print '-----------------------------------------------'
- else:
- print 'Object must be a Mesh'