Mantis issues 0021432 and 0021404: MakeFace[Wires] should generate exception on attempt to build a planar face, if it is impossible.

This commit is contained in:
jfa 2012-03-21 08:55:39 +00:00
parent 772bb150e4
commit 4d4cef4054

View File

@ -81,6 +81,7 @@ from salome_notebook import *
import GEOM import GEOM
import math import math
import os
## Enumeration ShapeType as a dictionary. \n ## Enumeration ShapeType as a dictionary. \n
## Topological types of shapes (like Open Cascade types). See GEOM::shape_type for details. ## Topological types of shapes (like Open Cascade types). See GEOM::shape_type for details.
@ -2886,7 +2887,7 @@ class geompyDC(GEOM._objref_GEOM_Gen):
# @return New GEOM.GEOM_Object, containing the created face. # @return New GEOM.GEOM_Object, containing the created face.
# #
# @ref tui_creation_face "Example" # @ref tui_creation_face "Example"
def MakeFace(self,theWire, isPlanarWanted): def MakeFace(self, theWire, isPlanarWanted):
""" """
Create a face on the given wire. Create a face on the given wire.
@ -2901,8 +2902,10 @@ class geompyDC(GEOM._objref_GEOM_Gen):
# Example: see GEOM_TestAll.py # Example: see GEOM_TestAll.py
anObj = self.ShapesOp.MakeFace(theWire, isPlanarWanted) anObj = self.ShapesOp.MakeFace(theWire, isPlanarWanted)
if anObj is not None and self.ShapesOp.GetErrorCode() == "MAKE_FACE_TOLERANCE_TOO_BIG": if anObj is not None and self.ShapesOp.GetErrorCode() == "MAKE_FACE_TOLERANCE_TOO_BIG":
#print "WARNING: Tolerance of resulting face is too big." if os.getenv("GEOM_MAKEFACE_ALLOW_NONPLANAR") is not None:
print "WARNING: Cannot build a planar face: required tolerance is too big. Non-planar face is built." print "WARNING: Cannot build a planar face: required tolerance is too big. Non-planar face is built."
else:
RaiseIfFailed("MakeFace", self.ShapesOp)
else: else:
RaiseIfFailed("MakeFace", self.ShapesOp) RaiseIfFailed("MakeFace", self.ShapesOp)
return anObj return anObj
@ -2914,7 +2917,7 @@ class geompyDC(GEOM._objref_GEOM_Gen):
# @return New GEOM.GEOM_Object, containing the created face. # @return New GEOM.GEOM_Object, containing the created face.
# #
# @ref tui_creation_face "Example" # @ref tui_creation_face "Example"
def MakeFaceWires(self,theWires, isPlanarWanted): def MakeFaceWires(self, theWires, isPlanarWanted):
""" """
Create a face on the given wires set. Create a face on the given wires set.
@ -2929,16 +2932,19 @@ class geompyDC(GEOM._objref_GEOM_Gen):
# Example: see GEOM_TestAll.py # Example: see GEOM_TestAll.py
anObj = self.ShapesOp.MakeFaceWires(theWires, isPlanarWanted) anObj = self.ShapesOp.MakeFaceWires(theWires, isPlanarWanted)
if anObj is not None and self.ShapesOp.GetErrorCode() == "MAKE_FACE_TOLERANCE_TOO_BIG": if anObj is not None and self.ShapesOp.GetErrorCode() == "MAKE_FACE_TOLERANCE_TOO_BIG":
print "WARNING: Tolerance of resulting face is too big." if os.getenv("GEOM_MAKEFACE_ALLOW_NONPLANAR") is not None:
print "WARNING: Cannot build a planar face: required tolerance is too big. Non-planar face is built."
else:
RaiseIfFailed("MakeFace", self.ShapesOp)
else: else:
RaiseIfFailed("MakeFaceWires", self.ShapesOp) RaiseIfFailed("MakeFaceWires", self.ShapesOp)
return anObj return anObj
## See MakeFaceWires() method for details. ## See MakeFaceWires() method for details.
# #
# @ref tui_creation_face "Example 1" # @ref tui_creation_face "Example 1"
# \n @ref swig_MakeFaces "Example 2" # \n @ref swig_MakeFaces "Example 2"
def MakeFaces(self,theWires, isPlanarWanted): def MakeFaces(self, theWires, isPlanarWanted):
""" """
See geompy.MakeFaceWires() method for details. See geompy.MakeFaceWires() method for details.
""" """