# License along with this library; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
-# See http://www.salome-platform.org or email : webmaster.salome@opencascade.org
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
#
#
# File : GEOM_usinggeom.py
# Module : GEOM
# $Header$
+# ! Please, if you edit this example file, update also
+# ! GEOM_SRC/doc/salome/gui/GEOM/input/tui_test_all.doc
+# ! as some sequences of symbols from this example are used during
+# ! documentation generation to identify certain places of this file
+
def TestAll (geompy, math):
#Create base Variables
vxyz = geompy.MakeVectorDXDYDZ(100., 100., 100.) #(3 Doubles)->GEOM_Object_ptr
#Create local coordinate systems
- cs1 = geompy.MakeMarker(50,50,50, 1,0,0, 0,1,0)
- cs2 = geompy.MakeMarker(70,80,10, 1,0,1, 1,1,0)
+ cs1 = geompy.MakeMarker(50,50,50, 1,0,0, 0,1,0) #(9 Doubles)->GEOM_Object_ptr
+ cs2 = geompy.MakeMarker(70,80,10, 1,0,1, 1,1,0) #(9 Doubles)->GEOM_Object_ptr
+ cs3 = geompy.MakeMarkerPntTwoVec(pz, vxy, vz) #(3 GEOM_Object_ptr)->GEOM_Object_ptr
#Create base geometry 2D
Line = geompy.MakeLineTwoPnt(p0, pxyz) #(2 GEOM_Object_ptr)->GEOM_Object_ptr
Line1 = geompy.MakeLine(pz, vxy) #(2 GEOM_Object_ptr)->GEOM_Object_ptr
+ Line2 = geompy.MakeLineTwoPnt(pxyz, pz) #(2 GEOM_Object_ptr)->GEOM_Object_ptr
Plane = geompy.MakePlane(pz, vxyz, trimsize) #(2 GEOM_Object_ptr, Double)->GEOM_Object_ptr
Plane1 = geompy.MakePlaneThreePnt(px, pz, p200, trimsize) #(4 Doubles)->GEOM_Object_ptr
Arc = geompy.MakeArc(py, pz, px) #(3 GEOM_Object_ptr)->GEOM_Object_ptr
+ Arc2 = geompy.MakeArcCenter(py, pz, px,0) #(3 GEOM_Object_ptr,Boolean)->GEOM_Object_ptr
Circle = geompy.MakeCircle(p0, vz, radius1) #(2 GEOM_Object_ptr, Double)->GEOM_Object_ptr
Circle1 = geompy.MakeCircleThreePnt(p0, pxyz, px) #(3 GEOM_Object_ptr)->GEOM_Object_ptr
+ Circle2 = geompy.MakeCircleCenter2Pnt(p0, pxyz, py) #(3 GEOM_Object_ptr)->GEOM_Object_ptr
Ellipse = geompy.MakeEllipse(p0, vy, radius2, radius1) #(2 GEOM_Object_ptr, 2 Doubles)->GEOM_Object_ptr
Polyline = geompy.MakePolyline([p0, pz, py, p200]) #(List of GEOM_Object_ptr)->GEOM_Object_ptr
Bezier = geompy.MakeBezier([p0, pz, p200, px]) #(List of GEOM_Object_ptr)->GEOM_Object_ptr
#Test point on curve creation
p_on_arc = geompy.MakeVertexOnCurve(Arc, 0.25) #(GEOM_Object_ptr, Double)->GEOM_Object_ptr
+ #Test point on lines intersection
+ p_on_l1l2 = geompy.MakeVertexOnLinesIntersection(Line1, Line2) #(2 GEOM_Object_ptr)->GEOM_Object_ptr
+
+ #Test tangent on curve creation
+ tan_on_arc = geompy.MakeTangentOnCurve(Arc, 0.7) #(GEOM_Object_ptr, Double)->GEOM_Object_ptr
+
#Create base geometry 3D
Box = geompy.MakeBoxTwoPnt(p0, p200) #(2 GEOM_Object_ptr)->GEOM_Object_ptr
Box1 = geompy.MakeBoxDXDYDZ(10, 20, 30) #(3 Doubles)->GEOM_Object_ptr
i = i + 1
Compound = geompy.MakeCompound(ShapeListCompound) #(List of GEOM_Object_ptr)->GEOM_Object_ptr
+ #Test point on surface creation
+ p_on_face = geompy.MakeVertexOnSurface(Face, 0.1, 0.8) #(GEOM_Object_ptr, Double, Double)->GEOM_Object_ptr
+
# Test plane from existing face creation
Plane2 = geompy.MakePlaneFace(Face, trimsize) #(GEOM_Object_ptr, Double)->GEOM_Object_ptr
#ShapeList for Sewing
S = geompy.MakeRotation(Face, vxy, angle1)
+ #Test Line on Faces Intersection
+ Line3 = geompy.MakeLineTwoFaces(prism1_faces[0], prism1_faces[1]) #(2 GEOM_Object_ptr)->GEOM_Object_ptr
+
#Create advanced objects
Copy = geompy.MakeCopy(Box) #(GEOM_Object_ptr)->GEOM_Object_ptr
Prism = geompy.MakePrismVecH(Face, vz, 100.0) #(2 GEOM_Object_ptr, Double)->GEOM_Object_ptr
+ Prism2Ways = geompy.MakePrismVecH2Ways(Face, vz, 10.0) #(2 GEOM_Object_ptr, Double)->GEOM_Object_ptr
Revolution = geompy.MakeRevolution(Face, vz, angle2) #
+ Revolution2Ways = geompy.MakeRevolution(Face, vz, angle1) #
Filling = geompy.MakeFilling(Compound, mindeg, maxdeg,
tol2d, tol3d, nbiter) #(GEOM_Object_ptr, 4 Doubles, Short)->GEOM_Object_ptr
Pipe = geompy.MakePipe(Wire, Edge) #(2 GEOM_Object_ptr)->GEOM_Object_ptr
Sewing = geompy.MakeSewing([Face, S], precision) #(List Of GEOM_Object_ptr, Double)->GEOM_Object_ptr
#Transform objects
- Translation = geompy.MakeTranslationTwoPoints(Box, px, pz) #(3 GEOM_Object_ptr)->GEOM_Object_ptr
- Rotation = geompy.MakeRotation(Box, vz, angle1) #(2 GEOM_Object_ptr, Double)->GEOM_Object_ptr
- Scale = geompy.MakeScaleTransform(Box, p0, factor) #
- Mirror = geompy.MakeMirrorByPlane(Box, Plane) #(2 GEOM_Object_ptr)->GEOM_Object_ptr
- Position = geompy.MakePosition(Box, cs1, cs2) #(3 GEOM_Object_ptr)->GEOM_Object_ptr
- Offset = geompy.MakeOffset(Box, 10.) #(GEOM_Object_ptr, Double)->GEOM_Object_ptr
+ Translation = geompy.MakeTranslationTwoPoints(Box, px, pz) #(3 GEOM_Object_ptr)->GEOM_Object_ptr
+ TranslVect = geompy.MakeTranslationVector(Box, vxyz) #(2 GEOM_Object_ptr)->GEOM_Object_ptr
+ TranslVectD = geompy.MakeTranslationVectorDistance(Box, vxyz, 50.0) #(2 GEOM_Object_ptr)->GEOM_Object_ptr
+ Rotation = geompy.MakeRotation(Box, vz, angle1) #(2 GEOM_Object_ptr, Double)->GEOM_Object_ptr
+ RotatPnt = geompy.MakeRotationThreePoints(Box, px, py, pz) #(4 GEOM_Object_ptr)->GEOM_Object_ptr
+ Scale = geompy.MakeScaleTransform(Box, p0, factor) #
+ Mirror = geompy.MakeMirrorByPlane(Box, Plane) #(2 GEOM_Object_ptr)->GEOM_Object_ptr
+ MirrorAxis = geompy.MakeMirrorByAxis(Box, Line1) #
+ MirrorPnt = geompy.MakeMirrorByPoint(Box, p200) #
+ Position = geompy.MakePosition(Box, cs1, cs2) #(3 GEOM_Object_ptr)->GEOM_Object_ptr
+ Offset = geompy.MakeOffset(Box, 10.) #(GEOM_Object_ptr, Double)->GEOM_Object_ptr
Orientation = geompy.ChangeOrientation(Box)
#IDList for Fillet/Chamfer
f_ind_2 = geompy.GetSubShapeID(Prism, prism_faces[1])
IDlist_f = [f_ind_1, f_ind_2]
-
+
#Local operations
Fillet = geompy.MakeFillet (Prism, radius, ShapeTypeEdge,
IDlist_e) #(GEOM_Object_ptr, Double, Short, ListOfLong)->GEOM_Object_ptr
+ Fillet2 = geompy.MakeFilletR1R2 (Prism, 7., 13., ShapeTypeEdge,
+ IDlist_e) #(GEOM_Object_ptr, Double, Double, Short, ListOfLong)->GEOM_Object_ptr
Chamfer = geompy.MakeChamferEdge(Prism, d1, d2,
f_ind_1, f_ind_2) #(GEOM_Object_ptr, 2 Doubles, 2 Long)->GEOM_Object_ptr
Chamfer2 = geompy.MakeChamferFaces(Prism, d1, d2,
IDlist_f) #(GEOM_Object_ptr, 2 Doubles, ListOfLong)->GEOM_Object_ptr
+ Chamfer3 = geompy.MakeChamferEdges(Prism, d1, d2,
+ IDlist_e) #(GEOM_Object_ptr, 2 Doubles, ListOfLong)->GEOM_Object_ptr
+ Chamfer4 = geompy.MakeChamferFacesAD(Prism, d1, 20. * math.pi / 180.,
+ IDlist_f) #(GEOM_Object_ptr, 2 Doubles, ListOfLong)->GEOM_Object_ptr
+ #End of Local operations
#Create Patterns
MultiTrans1D = geompy.MakeMultiTranslation1D(Fillet, vz, step1, nbtimes1)
CDG = geompy.MakeCDG(Prism) #(GEOM_Object_ptr)->GEOM_Object_ptr
Archimede = geompy.Archimede(Box, weight, waterdensity,
meshingdeflection) #(GEOM_Object_ptr, 3 Doubles)->GEOM_Object_ptr
+ mindist = geompy.MinDistanceComponents(TranslVect, Mirror) #(2 GEOM_Object_ptr)->4 Doubles
+ print "Minumal distance between TranslVect and Mirror is", mindist[0],
+ print "by components:", mindist[1], ",", mindist[2], ",", mindist[3]
CheckShape = geompy.CheckShape(Prism) #(GEOM_Object_ptr)->Boolean
print "CheckShape(Prism) = ", CheckShape
#Partition objects
- Partition = geompy.MakePartition([Box], [Plane]) #(2 Lists Of GEOM_Object_ptr)->GEOM_Object_ptr
+ Partition = geompy.MakePartition([Box], [Plane]) #(2 Lists Of GEOM_Object_ptr)->GEOM_Object_ptr
+ Partition1 = geompy.MakeHalfPartition(Box, Plane) #(2 GEOM_Object_ptr)->GEOM_Object_ptr
#Add In Study
-
id_p0 = geompy.addToStudy(p0, "Vertex 0")
id_px = geompy.addToStudy(px, "Vertex X")
id_py = geompy.addToStudy(py, "Vertex Y")
id_cs1 = geompy.addToStudy(cs1, "CS 50,50,50, 1,0,0, 0,1,0")
id_cs2 = geompy.addToStudy(cs2, "CS 70,80,10, 1,0,1, 1,1,0")
+ id_cs3 = geompy.addToStudy(cs3, "CS: pz, vxy, vz")
id_Line = geompy.addToStudy(Line, "Line")
id_Line1 = geompy.addToStudy(Line1, "Line by point and vector")
+ id_Line3 = geompy.addToStudy(Line3, "Line on Two Faces Intersection")
id_Plane = geompy.addToStudy(Plane, "Plane")
id_Plane1 = geompy.addToStudy(Plane1, "Plane by 3 points")
id_Arc = geompy.addToStudy(Arc, "Arc")
id_Circle = geompy.addToStudy(Circle, "Circle")
id_Circle1 = geompy.addToStudy(Circle1, "Circle by 3 points")
+ id_Circle2 = geompy.addToStudy(Circle2, "Circle by center and 2 points")
id_Ellipse = geompy.addToStudy(Ellipse, "Ellipse")
id_Polyline = geompy.addToStudy(Polyline, "Polyline")
id_Bezier = geompy.addToStudy(Bezier, "Bezier")
id_Interpol = geompy.addToStudy(Interpol, "Interpol")
id_Sketcher = geompy.addToStudy(Sketcher, "Sketcher")
- id_p_on_arc = geompy.addToStudy(p_on_arc, "Vertex on Arc")
+ id_p_on_arc = geompy.addToStudy(p_on_arc, "Vertex on Arc (0.25)")
+ id_p_on_l1l2 = geompy.addToStudy(p_on_l1l2, "Vertex on Lines Intersection")
+
+ id_tan_on_arc = geompy.addToStudy(tan_on_arc, "Tangent on Arc (0.7)")
id_Box = geompy.addToStudy(Box, "Box")
id_Box1 = geompy.addToStudy(Box1, "Box 10x20x30")
id_Face2 = geompy.addToStudy(Face2, "Face from Sketcher")
id_Shell = geompy.addToStudy(Shell, "Shell")
+ id_p_on_face = geompy.addToStudy(p_on_face, "Vertex on Face (0.1, 0.8)")
+
id_Prism1 = geompy.addToStudy(Prism1, "Prism by Two Pnt")
id_Shell1 = geompy.addToStudy(Shell1, "Shell from Prism1 faces")
id_Solid = geompy.addToStudy(Solid, "Solid")
id_Copy = geompy.addToStudy(Copy, "Copy")
id_Prism = geompy.addToStudy(Prism, "Prism")
+ id_Prism2Ways = geompy.addToStudy(Prism2Ways, "Prism2Ways")
id_Revolution = geompy.addToStudy(Revolution, "Revolution")
+ id_Revolution2Ways = geompy.addToStudy(Revolution2Ways, "Revolution2Ways")
id_Filling = geompy.addToStudy(Filling, "Filling")
id_Pipe = geompy.addToStudy(Pipe, "Pipe")
id_Sewing = geompy.addToStudy(Sewing, "Sewing")
id_Translation = geompy.addToStudy(Translation, "Translation")
+ id_TranslVect = geompy.addToStudy(TranslVect , "Translation along vector")
+ id_TranslVectD = geompy.addToStudy(TranslVectD, "Translation along vector with defined distance")
id_Rotation = geompy.addToStudy(Rotation, "Rotation")
+ id_RotatPnt = geompy.addToStudy(RotatPnt, "Rotation by three points")
id_Scale = geompy.addToStudy(Scale, "Scale")
- id_Mirror = geompy.addToStudy(Mirror, "Mirror")
+ id_Mirror = geompy.addToStudy(Mirror, "Mirror by Plane")
+ id_MirrorAxis = geompy.addToStudy(MirrorAxis, "Mirror by Axis")
+ id_MirrorPnt = geompy.addToStudy(MirrorPnt, "Mirror by Point")
id_Position = geompy.addToStudy(Position, "Positioned box")
id_Offset = geompy.addToStudy(Offset, "Offset")
id_Orientation = geompy.addToStudy(Orientation, "Orientation")
id_Fillet = geompy.addToStudy(Fillet, "Fillet")
+ id_Fillet2 = geompy.addToStudy(Fillet2, "Fillet2")
+
id_Chamfer = geompy.addToStudy(Chamfer, "Chamfer on Edge")
id_Chamfer2 = geompy.addToStudy(Chamfer2, "Chamfer on Faces")
+ id_Chamfer3 = geompy.addToStudy(Chamfer3, "Chamfer on Edges")
+ id_Chamfer4 = geompy.addToStudy(Chamfer4, "Chamfer on Faces with params D Angle")
id_MultiTrans1D = geompy.addToStudy(MultiTrans1D, "MultiTrans1D")
id_MultiTrans2D = geompy.addToStudy(MultiTrans2D, "MultiTrans2D")
id_CDG = geompy.addToStudy(CDG, "CDG")
id_Archimede = geompy.addToStudy(Archimede, "Archimede")
- id_Partition = geompy.addToStudy(Partition, "Partition")
+ id_Partition = geompy.addToStudy(Partition, "Partition")
+ id_Partition1 = geompy.addToStudy(Partition1, "Half Partition")
#Decompose objects
+
+ # SubShape
SubFace = geompy.SubShape(Box, geompy.ShapeType["FACE"], [2])
name = geompy.SubShapeName(SubFace, Box)
id_SubFace = geompy.addToStudyInFather(Box, SubFace, name)
+ # SubShapeSorted
SubFaceS = geompy.SubShapeSorted(Box, geompy.ShapeType["FACE"], [5])
nameS = geompy.SubShapeName(SubFaceS, Box)
id_SubFace = geompy.addToStudyInFather(Box, SubFaceS, nameS)
+ # SubShapeAll
SubEdgeList = geompy.SubShapeAll(SubFace, geompy.ShapeType["EDGE"])
i=0
for SubEdge in SubEdgeList :
name = geompy.SubShapeName(SubEdge, SubFace)
id_SubEdge = geompy.addToStudyInFather(SubFace, SubEdge, name)
- #-------------------
+ # SubShapeAllIDs
+ SubEdgeIDsList = geompy.SubShapeAllIDs(SubFace, geompy.ShapeType["EDGE"])
+ print "IDs of edges of SubFace:", SubEdgeIDsList, "(unsorted)"
+ group = geompy.CreateGroup(SubFace, geompy.ShapeType["EDGE"])
+ geompy.UnionIDs(group, SubEdgeIDsList)
+ geompy.addToStudyInFather(SubFace, group, "Group of all edges")
+
+ # SubShapeAllSortedIDs
+ SubEdgeIDsList = geompy.SubShapeAllSortedIDs(SubFace, geompy.ShapeType["EDGE"])
+ print "IDs of edges of SubFace:", SubEdgeIDsList, "(sorted)"
+
+ # GetSubShape and GetSubShapeID
+ for ind in SubEdgeIDsList:
+ edge = geompy.GetSubShape(SubFace, [ind])
+ ind_e = geompy.GetSubShapeID(SubFace, edge)
+ if ind_e != ind:
+ print "Error in GetSubShape or GetSubShapeID"
print "DONE"