geom/doc/salome/examples/repairing_operations_ex01.py
2021-08-12 08:45:03 +02:00

50 lines
1.4 KiB
Python

# Shape Processing
import salome
salome.salome_init_without_session()
import GEOM
from salome.geom import geomBuilder
geompy = geomBuilder.New()
gg = salome.ImportComponentGUI("GEOM")
# create vertices, an edge, an arc, a wire, a face and a prism
p1 = geompy.MakeVertex(0,0,0)
p2 = geompy.MakeVertex(200,0,0)
p3 = geompy.MakeVertex(100,150,0)
edge = geompy.MakeEdge(p1,p2)
arc = geompy.MakeArc(p1,p3,p2)
wire = geompy.MakeWire([edge,arc])
face = geompy.MakeFace(wire, 1)
theShape = geompy.MakePrismVecH(face, edge, 130)
# check the shape at the beginning
print("Before ProcessShape:")
isValid = geompy.CheckShape(theShape, True)
if isValid == 0:
print("The shape is not valid")
else:
print("The shape seems to be valid")
# process the Shape
Operators = ["FixShape"]
Parameters = ["FixShape.Tolerance3d"]
Values = ["1e-7"]
PS = geompy.ProcessShape(theShape, Operators, Parameters, Values)
# check the shape at the end
print("After ProcessShape:")
isValid = geompy.CheckShape(PS, True)
if isValid == 0:
print("The shape is not valid")
raise RuntimeError("It seems, that the ProcessShape() has failed")
else:
print("The shape seems to be valid")
# add in the study and display
Id_Shape = geompy.addToStudy(theShape, "Invalid Shape")
Id_PS = geompy.addToStudy(PS, "Processed Shape")
gg.createAndDisplayGO(Id_Shape)
gg.setDisplayMode(Id_Shape,1)
gg.createAndDisplayGO(Id_PS)
gg.setDisplayMode(Id_PS,1)