/*! \page tui_measurement_tools_page Measurement Tools

Point Coordinates

\code import math import geompy # create a point point = geompy.MakeVertex(15., 23., 80.) # get the coordinates of the point and check its values coords = geompy.PointCoordinates(point) # check the obtained coordinate values tolerance = 1.e-07 def IsEqual(val1, val2): return (math.fabs(val1 - val2) < tolerance) if IsEqual(coords[0], 15.) and IsEqual(coords[1], 23.) and IsEqual(coords[2], 80.): print "All values are OK." else : print "Coordinates of point must be (15, 23, 80), but returned (", print coords[0], ", ", coords[1], ", ", coords[2], ")" pass \endcode

Basic Properties

\code import geompy import math # create a box box = geompy.MakeBoxDXDYDZ(100,30,100) props = geompy.BasicProperties(box) print "\nBox 100x30x100 Basic Properties:" print " Wires length: ", props[0] print " Surface area: ", props[1] print " Volume : ", props[2] length = math.sqrt((props[0] - 1840)*(props[0] - 1840)) area = math.sqrt((props[1] - 32000)*(props[1] - 32000)) volume = math.sqrt((props[2] - 300000)*(props[2] - 300000)) if length > 1e-7 or area > 1e-7 or volume > 1e-7: print "While must be:" print " Wires length: ", 1840 print " Surface area: ", 32000 print " Volume : ", 300000. \endcode

Center of masses

\code import geompy import math # create a box box = geompy.MakeBoxDXDYDZ(100,30,100) cm = geompy.MakeCDG(box) if cm is None: raise RuntimeError, "MakeCDG(box) failed" else: print "\nCentre of gravity of box has been successfully obtained:" coords = geompy.PointCoordinates(cm) print "(", coords[0], ", ", coords[1], ", ", coords[2], ")" dx = math.sqrt((coords[0] - 50)*(coords[0] - 50)) dy = math.sqrt((coords[1] - 15)*(coords[1] - 15)) dz = math.sqrt((coords[2] - 50)*(coords[2] - 50)) if dx > 1e-7 or dy > 1e-7 or dz > 1e-7: print "But must be (50, 15, 50)" \endcode

Inertia

\code import geompy import math # create a box box = geompy.MakeBoxDXDYDZ(100,30,100) In = geompy.Inertia(box) print "\nInertia matrix of box 100x30x100:" print " (", In[0], ", ", In[1], ", ", In[2], ")" print " (", In[3], ", ", In[4], ", ", In[5], ")" print " (", In[6], ", ", In[7], ", ", In[8], ")" print "Main moments of inertia of box 100x30x100:" print " Ix = ", In[9], ", Iy = ", In[10], ", Iz = ", In[11] \endcode

Bounding Box

\code import geompy # create a box box = geompy.MakeBoxDXDYDZ(100,30,100) bb = geompy.BoundingBox(box) print "\nBounding Box of box 100x30x100:" print " Xmin = ", bb[0], ", Xmax = ", bb[1] print " Ymin = ", bb[2], ", Ymax = ", bb[3] print " Zmin = ", bb[4], ", Zmax = ", bb[5] \endcode

Minimal Distance

\code import geompy # create boxes box1 = geompy.MakeBoxDXDYDZ(100,30,100) box2 = geompy.MakeBox(105,0,0,200,30,100) min_dist = geompy.MinDistance(box1,box2) print "\nMinimal distance between box1 and box2 = ", min_dist \endcode

Tolerance

\code import geompy # create a box box = geompy.MakeBoxDXDYDZ(100,30,100) Toler = geompy.Tolerance(box) print "\nBox 100x30x100 tolerance:" print " Face min. tolerance: ", Toler[0] print " Face max. tolerance: ", Toler[1] print " Edge min. tolerance: ", Toler[2] print " Edge max. tolerance: ", Toler[3] print " Vertex min. tolerance: ", Toler[4] print " Vertex max. tolerance: ", Toler[5] \endcode

What Is

\code import geompy # create a box box = geompy.MakeBoxDXDYDZ(100,30,100) Descr = geompy.WhatIs(box) print "\nBox 100x30x100 description:" print Descr \endcode

Check Shape

\code import geompy # create a box box = geompy.MakeBoxDXDYDZ(100,30,100) IsValid = geompy.CheckShape(box) if IsValid == 0: raise RuntimeError, "Invalid box created" else: print "\nBox is valid" \endcode

Check Compound of Blocks

\code import geompy import salome gg = salome.ImportComponentGUI("GEOM") # create boxes box1 = geompy.MakeBox(0,0,0,100,50,100) box2 = geompy.MakeBox(100,0,0,250,50,100) # make a compound compound = geompy.MakeCompound([box1, box2]) # glue the faces of the compound tolerance = 1e-5 glue = geompy.MakeGlueFaces(compound, tolerance) IsValid = geompy.CheckCompoundOfBlocks(glue) if IsValid == 0: raise RuntimeError, "Invalid compound created" else: print "\nCompound is valid" \endcode */