X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FGEOM_SWIG%2FgeomBuilder.py;h=6b7947e0df628cf67fd72d857ec4ef8cb1f7b29a;hb=611d40ba2a33af6bea4a6440612e5940ddf67ed0;hp=9c8ad7f7c7e50b3f3a0d3da4d4ade1aed12e3989;hpb=66a2554913f5c53b13a4e811160becede9b11132;p=modules%2Fgeom.git diff --git a/src/GEOM_SWIG/geomBuilder.py b/src/GEOM_SWIG/geomBuilder.py index 9c8ad7f7c..6b7947e0d 100644 --- a/src/GEOM_SWIG/geomBuilder.py +++ b/src/GEOM_SWIG/geomBuilder.py @@ -260,6 +260,9 @@ import os import functools from salome.geom.gsketcher import Sketcher3D, Sketcher2D, Polyline2D +from salome.geom.canonicalrecognition import CanonicalRecognition +from salome.geom.conformity import CheckConformity +from salome.geom.proximity import ShapeProximity # In case the omniORBpy EnumItem class does not fully support Python 3 # (for instance in version 4.2.1-2), the comparison ordering methods must be @@ -11229,6 +11232,74 @@ class geomBuilder(GEOM._objref_GEOM_Gen): self._autoPublish(aVec, theName, "curvature") return aVec + ## Convert X,Y,Z points coordinates to UV parameters on the given surface. + # @param theSurf the given face. It can be also a shell or a compound with one face. + # @param theXYZlist float list of size 3*N where N is the number of points + # for which we want their U,V coordinates. + # If the user enters a list of size not divisible by 3 + # an exception will be thrown. + # @param theIsNormalized if True, the returned parameters will be in range [0, 1]. + # + # @return list of float of size 2*N. + # + # @ref tui_xyz_to_uv_page "Example" + @ManageTransactions("MeasuOp") + def XYZtoUV(self, theSurf, theXYZlist, theIsNormalized = True): + """ + Convert X,Y,Z points coordinates to UV parameters on the given surface. + + Parameters: + theSurf the given face. It can be also a shell or a compound with one face. + theXYZlist float list of size 3*N where N is the number of points + for which we want their U,V coordinates. + If the user enters a list of size not divisible by 3 + an exception will be thrown. + theIsNormalized if True, the returned parameters will be in range [0, 1]. + + Returns: + list of float of size 2*N. + + Example of usage: + [u1,v1, u2,v2] = geompy.XYZtoUV(Face_1, [0,0,0, 0,10,10]) + """ + aUVlist = self.MeasuOp.XYZtoUV(theSurf, theXYZlist, theIsNormalized) + RaiseIfFailed("XYZtoUV", self.MeasuOp) + return aUVlist + + ## Convert UV parameters on the given surface to 3D points coordinates. + # @param theSurf the given face. It can be also a shell or a compound with one face. + # @param theUVlist float list of size 2*N where N is the number of points + # for which we want their X,Y,Z coordinates. + # If the user enters a list of non-even size + # an exception will be thrown. + # @param theIsNormalized if True, the input parameters are expected to be in range [0, 1]. + # + # @return list of float of size 3*N. + # + # @ref tui_xyz_to_uv_page "Example" + @ManageTransactions("MeasuOp") + def UVtoXYZ(self, theSurf, theUVlist, theIsNormalized = True): + """ + Convert UV parameters on the given surface to 3D points coordinates. + + Parameters: + theSurf the given face. It can be also a shell or a compound with one face. + theUVlist float list of size 2*N where N is the number of points + for which we want their X,Y,Z coordinates. + If the user enters a list of non-even size + an exception will be thrown. + theIsNormalized if True, the input parameters are expected to be in range [0, 1]. + + Returns: + list of float of size 3*N. + + Example of usage: + [x1,y1,z1, x2,y2,z2] = geompy.UVtoXYZ(Face_1, [0,0, 10,10]) + """ + aXYZlist = self.MeasuOp.UVtoXYZ(theSurf, theUVlist, theIsNormalized) + RaiseIfFailed("UVtoXYZ", self.MeasuOp) + return aXYZlist + ## Get min and max tolerances of sub-shapes of theShape # @param theShape Shape, to get tolerances of. # @return [FaceMin,FaceMax, EdgeMin,EdgeMax, VertMin,VertMax]\n @@ -11784,6 +11855,39 @@ class geomBuilder(GEOM._objref_GEOM_Gen): return aKindTuple + ## The function takes a single face with holes and returns a list of faces, + # first of them is the original face without holes, and the other faces are placed + # on the same surface as the original face but bounded by each hole wire. + # If the original face has no holes, it will be returned as an output + # @param theShape Face to perform operation on. + # + # @return GEOM.ListOfGO, list created faces, where first of them is the original face without holes + @ManageTransactions("MeasuOp") + def PatchFace(self, theShape): + """ + The function takes a single face with holes and returns a list of faces, + first of them is the original face without holes, and the other faces are placed + on the same surface as the original face but bounded by each hole wire. + If the original face has no holes, it will be returned as an output + + Parameters: + theShape Face to perform operation on. + + Returns: + GEOM.ListOfGO, list created faces, where first of them is the original face without holes + + Example of usage: + Circle_1 = geompy.MakeCircle(None, None, 190) + Circle_2 = geompy.MakeCircle(None, None, 100) + Face_1 = geompy.MakeFaceWires([Circle_1], 1) + Face_2 = geompy.MakeFaceWires([Circle_2], 1) + Cut_1 = geompy.MakeCutList(Face_1, [Face_2], True) + faces = geompy.PatchFace(Cut_1) + """ + aList = self.MeasuOp.PatchFace(theShape) + RaiseIfFailed("PatchFace", self.MeasuOp) + return aList + ## Returns the string that describes if the shell is good for solid. # This is a support method for MakeSolid. # @@ -11806,6 +11910,22 @@ class geomBuilder(GEOM._objref_GEOM_Gen): aDescr = self.MeasuOp.IsGoodForSolid(theShell) return aDescr + ## Obtain a canonical recognition interface. + # @return An instance of + # @ref canonicalrecognition.CanonicalRecognition "CanonicalRecognition" interface + # + # @ref tui_3dsketcher_page "Example" + def CanonicalRecognition (self): + """ + Obtain a canonical recognition interface. + + Example of usage: + cr = geompy.CanonicalRecognition() + cr.isLine(aLine, tolerance) + """ + cr = CanonicalRecognition (self) + return cr + # end of l2_measure ## @} @@ -13986,6 +14106,40 @@ class geomBuilder(GEOM._objref_GEOM_Gen): RaiseIfFailed("Tesselate", self.TestOp) return r + ## Obtain a shape checker + # @return An instance of @ref conformity.CheckConformity "CheckConformity" interface + # + # @ref tui_conformity_page "Example" + def CheckConformity (self, shape): + """ + Obtain a shape checker. + + Example of usage: + conf = geompy.CheckConformity(shape) + valid = conf.isValid() + si2d = conf.selfIntersected2D() + dist = conf.distantShapes() + small = conf.smallEdges() + interfer = cc.interferingSubshapes() + """ + conf = CheckConformity (shape, self) + return conf + + ## Obtain a shape proximity calculator + # @return An instance of @ref proximity.ShapeProximity "ShapeProximity" interface + # + # @ref tui_proximity_page "Example" + def ShapeProximity (self): + """ + Obtain a shape proximity calculator. + + Example of usage: + prox = geompy.ShapeProximity() + value = prox.proximity(shape1, shape2) + """ + prox = ShapeProximity (self) + return prox + # end of l2_testing ## @}