be divided, \em EdgeID is the ID of the edge to be divided, if it = -1,
then Shape is an edge, \em Value is a paramter on the edge or a
length. \em IsByParameter if it is True then Value is the edge parameter
-in the range [0:1] otherwise it is a length of the edge in the range
-[0:1]
+in the range [0:1] otherwise it is a part of the length of the edge in the range
+[0: full length of the edge]
\n <b>Arguments:</b> Name + 1 Edge + 1 value setting the position of
the point according to one of the selected modes.
Our <b>TUI Scripts</b> provide you with useful examples of the use of
\ref tui_add_point_on_edge "Repairing Operations".
-*/
\ No newline at end of file
+*/
\image html block4.png
+
+
\image html block5.png
\n <b>Example:</b>
\image html image180.jpg
+<center>Hexahedral Solid built on the base of six Faces</center>
\image html image181.jpg
+<center>Hexahedral Solid built on the base of two Faces</center>
Our <b>TUI Scripts</b> provide you with useful examples of
\ref tui_building_by_blocks_page "Building by Blocks".
-*/
\ No newline at end of file
+*/
\page change_orientation_operation_page Change Orientation
\n To <b>Change Orientation</b> in the <b>Main Menu</b> select <b>Repair - > Change Orientation</b>.
-\n This operation reverses the normals of faces composing the selected
-shell.
+\n This operation reverses the normals of selected faces or the normal
+of faces composing composing the selected opened shell.
\n <b>TUI Command:</b> <em>geompy.ChangeOrientation(shape)</em>
-\n <b>Arguments:</b> Name + 1 shape (shell)
+\n <b>Arguments:</b> Name + one or several objects (face(s)), opened shell(s).
\n Uncheck <b>Create a copy</b> checkbox if you don't wish to leave
the initial object in the project (<b>Result name</b> field will be
locked).
\image html image40.gif
<center><em>Outward orientation</em></center>
-*/
\ No newline at end of file
+*/
\n To <b>Check Free Boundaries</b> in the <b>Main Menu</b> select <b>Repair - > Check Free Boundaries</b>.
-\n This operation detects wires and edges that correspond to the
-shape's boundary, and highlights it.
+\n This operation detects wires and edges that are not shared between
+two faces and are considered a shape's boundary. This control highlights them.
\n The \b Result will be a \b GEOM_Object.
Our <b>TUI Scripts</b> provide you with useful examples of the use of
\ref tui_check_free_boundaries "Repairing Operations".
-*/
\ No newline at end of file
+*/
\page check_free_faces_operation_page Check Free Faces
\n To <b>Check Free Faces</b> in the <b>Main Menu</b> select <b>Repair - > Check Free Faces</b>.
-\n This operation retrieves all free faces from a given shape. A free
-face is a face not shared between two shells of the shape.
+\n This operation highlights all free faces from a given shape. A free
+face is a face which is not shared between two objects of the shape.
+
+\n \b NOTE: This functionality works only in VTK viewer.
\n The \b Result will be a \b GEOM_Object (a list of IDs of all free
faces, containing in the shape).
Our <b>TUI Scripts</b> provide you with useful examples of the use of
\ref tui_check_free_faces "Repairing Operations".
-*/
\ No newline at end of file
+*/
\n This operation cuts the common part of two shapes and transforms it into an independent geometrical object.
-\n The \b Result will be a \b GEOM_Object (COMPOUND).
+\n The \b Result will be any \b GEOM_Object.
\n <b>TUI Command:</b> <em>geompy.MakeCommon(s1, s2)</em>
\n <b>Arguments:</b> Name + 2 shapes.
Our <b>TUI Scripts</b> provide you with useful examples of the use of
\ref tui_common "Boolean Operations".
-*/
\ No newline at end of file
+*/
\image html arcsn2.png
<center>Reversed arc.</center>
-Our <b>TUI Scripts</b> provide you with useful examples of creation of
-\ref tui_basic_geom_objs_page "Basic Geometric Objects".
-
-*/
\ No newline at end of file
+*/
To create a \b Circle in the <b>Main Menu</b> select <b>New Entity - >
Basic - > Circle</b>
-\n There are 2 algorithms to create a \b Circle in the 3D space.
+\n There are 3 algorithms to create a \b Circle in the 3D space.
\n The \b Result of each operation will be a GEOM_Object (edge).
\n Firstly, you can define a \b Circle by a <b>Center Point</b>, a \b
<b>Example:</b>
\image html circles.png
+\n Finally, you can define a circle by a <b>Center Point</b> and two
+\b Points.
+\n <b>TUI Command:</b> <em>geompy.MakeCircleCenter2Pnt(Point1, Point2,
+Point3)</em>, where Point1 is the center of the circle, the distance
+between point1 and Point2 is the radius of the circle and Point3 helps
+to define the plane where the circle lies.
+\n <b>Arguments:</b> Name + 3 points.
+
+\image html circle3.png
+
Our <b>TUI Scripts</b> provide you with useful examples of creation of
\ref tui_creation_circle "Basic Geometric Objects".
-*/
\ No newline at end of file
+*/
\n Firstly, you can define a \b Cone by the <b>Base Point</b> (the
central point of the cone base), the \b Axis, the \b Height and the
first and the second \b Radiuses.
-\n <b>TUI Command:</b> <em>geompy.MakeCone(Point, Axis, Radius1, Radius2)</em>
+\n <b>TUI Command:</b> <em>geompy.MakeCone(Point, Axis, Radius1,
+Radius2, height)</em>
\n <b>Arguments:</b> Name + 1 vertex + 1 vector (for direction) + 3
values (Radius of the base part, radius of the upper part, height).
Our <b>TUI Scripts</b> provide you with useful examples of creation of
\ref tui_creation_cone "Primitives".
-*/
\ No newline at end of file
+*/
Object</b>, which will be exploded and the <b>Type of Subshapes</b> you wish to
obtain from it.
\n The \b Result of the operation will be a List of \b GEOM_Objects
-(edges, faces, solids or compsolids).
+(vertexes, edges, wires, faces, shells or solids).
\n Using <b>TUI Commands</b> you can perform this operation in a
variety of ways:
\image html neo-obj1.png
-*/
\ No newline at end of file
+*/
select <b>New Entity - > Generation - > Extrusion</b>
\n There are 2 algorithms for creation of an \b Extrusion (Prism).
-\n The \b Result of the operation will be a GEOM_Object (edge, face,
+\n The \b Result of the operation will be a GEOM_Object (edge, face, shell
solid or compsolid).
\n Firstly, you can define the <b>Base Shape</b> (a basis of the
extrusion), the \b Vector (a direction of the extrusion) and the \b
Height of extrusion.
\b <b>TUI Command:</b> <em>geompy.MakePrismVecH(Base, Vector, Height)</em>
-\n <b>Arguments:</b> Name + 1 shape (vertex, edge, wire, face or
+\n <b>Arguments:</b> Name + 1 shape (vertex, edge, planar wire, face or
shell) serving as base object + 1 vector (for direction of the
extrusion) + 1 value (dimension).
and the \b Start and <b>End Point</b> of the \b Vector (in this way
you don't need to create it in advance).
\n <b>TUI Command:</b> <em>geompy.MakePrism(Base, Point1, Point2)</em>
-\n <b>Arguments:</b> Name + 1 shape (vertex, edge, wire, face or
+\n <b>Arguments:</b> Name + 1 shape (vertex, edge, planar wire, face or
shell) serving as base object + 2 vertices.
\image html extrusion2.png
Our <b>TUI Scripts</b> provide you with useful examples of creation of
\ref tui_creation_prism "Complex Geometric Objects".
-*/
\ No newline at end of file
+*/
To generate a \b Pipe in the <b>Main Menu</b> select <b>New Entity - > Generation - > Extrusion along a path</b>
\n To create an extruded \b Pipe shape, you need to define the <b>Base
-Object</b> (vertex, edge, wire, face or shell), which will be extruded
-and the <b>Path Object</b> (edge, face or shell) along which the <b>Base
+Object</b> (vertex, edge, planar wire, face or shell), which will be extruded
+and the <b>Path Object</b> (edge or wire) along which the <b>Base
Object</b> will be extruded.
-\n The \b Result of the operation will be a GEOM_Object (edge, face,
+\n The \b Result of the operation will be a GEOM_Object (edge, face, shell,
solid or compsolid).
\n <b>TUI Command:</b> <em>geompy.MakePipe(baseShape, pathShape)</em>
-\n <b>Arguments:</b> Name + 1 shape (vertex, edge, wire, face or
-shell) serving as base object + 1 shape (edge, face or shell) for
+\n <b>Arguments:</b> Name + 1 shape (vertex, edge, planar wire, face or
+shell) serving as base object + 1 shape (edge or wire) for
definition of the path.
\image html pipe.png
Our <b>TUI Scripts</b> provide you with useful examples of creation of
\ref tui_creation_pipe "Complex Geometric Objects".
-*/
\ No newline at end of file
+*/
To create a \b Face in the <b>Main Menu</b> select <b>New Entity - >
Build - > Face</b>
-\n To create a \b Face you need to select a wire, whose elements will
-be connected so that the surface of the resulting object was
-minimal. Check <b>Try to create a planar face</b> to create a planar
+\n To create a \b Face you need to select input shape(s). The list of
+input shapes can include shapes of any type; if the shapes are nor
+wires or edges, the algorithm extracts all edges from
+the input shapes and works on the obtaineed edges.
+\n The edges and wires do not necessarily have to be closed, the
+algorithm automatically builds a wire of maximum length from all
+given edges and wires. If it founds multiple closed wires, it can
+build a face with holes or some separate faces, depending on the
+placement of the wires. If some resulting wires remain open, they will
+be added in the resulting compound "as is".
+\n Check <b>Try to create a planar face</b> to create a planar
face or nothing if it is impossible.
\n The \b Result will be a \b GEOM_Object (FACE).
-\n <b>TUI Command:</b> <em>geompy.MakeFace(Wire, isPlanarWanted)</em>
+\n <b>TUI Command:</b> <em>geompy.MakeFaceWires([list of Shapes], isPlanarWanted)</em>
\n <b>Arguments:</b> Name + 1 wire.
\image html neo-obj4.png
-There are some advanced possibilities accessible only via <b>TUI
-commands</b>:
-
-<em>geompy.MakeFaceWires(Wires, isPlanarWanted)</em> - Creates a face on the given wires set. The argument is not a single wire, but a list of wires.
-<em>geompy.MakeFaces(Wires, isPlanarWanted)</em> is a shortcut to MakeFaceWires().
-
\n <b>Example:</b>
\image html facesn1.png
Our <b>TUI Scripts</b> provide you with useful examples of creation of
\ref tui_creation_face "Advanced Geometric Objects".
-*/
\ No newline at end of file
+*/
Tolerance for \b 2D and for \b 3D and the <b>Number of Iterations</b>.
\n The \b Result of the operation will be a GEOM_Object (face).
-\n <b>TUI Command:</b> <em>geompy.MakeFilling(Shape, MinDegree, MaxDegree, Tol2D, Tol3D, NbIter)</em>
+\n <b>TUI Command:</b> <em>geompy.MakeFilling(Edges, MinDegree, MaxDegree, Tol2D, Tol3D, NbIter)</em>
\n <b>Arguments:</b> Name + 1 List of edges + 5 Parameters
(Min. degree, Max. degree, Number of iterations, 2D tolerance, 3D
-tolerance).
+tolerance, Number of iterations).
\image html filling.png
Our <b>TUI Scripts</b> provide you with useful examples of creation of
\ref tui_creation_filling "Complex Geometric Objects".
-*/
\ No newline at end of file
+*/
<b>Examples:</b>
\image html planes1.png
-<center>Planes</center>
+<center>Planes created on the basis of the Global Coordinate System</center>
\image html plane_on_face.png
-<center>A Plane created on a Plane of another size</center>
+<center>A Plane created on a Face of another Shape</center>
Our <b>TUI Scripts</b> provide you with useful examples of creation of
\ref tui_creation_plane "Basic Geometric Objects".
-*/
\ No newline at end of file
+*/
\image html neo-point2.png
\n Finally, we can define a point by an \b Edge and a \b Parameter
-indicating its position on the Edge. For example, 0.5 means that the
+indicating its position on the Edge, ranging from 0.0 to 1.0. For example, 0.5 means that the
point is located in the middle of the edge.
\n <b>TUI Command:</b> <em>geompy.MakeVertexOnCurve(Edge,Parameter).</em>
\n <b>Arguments:</b> Name + 1 edge + 1 Parameter defining the
Our <b>TUI Scripts</b> provide you with useful examples of creation of
\ref tui_creation_point "Basic Geometric Objects".
-*/
\ No newline at end of file
+*/
\n To create an extruded shape by \b Revolution you need to define the
source \b Object to rotate, the \b Axis of revolution and the \b Angle by which
the \b Shape has to be rotated around the \b Axis (in degrees).
-\n The \b Result of the operation will be a GEOM_Object (edge, face,
+\n The \b Result of the operation will be a GEOM_Object (edge, face, shell,
solid or compsolid).
\n <b>TUI Command:</b> <em>geompy.MakeRevolution(Shape, Axis, Angle).</em>
-\n <b>Arguments:</b> Name + 1 shape (vertex, edge, wire, face or shell) serving as base object + 1 vector (for direction) + 1 value (angle).
+\n <b>Arguments:</b> Name + 1 shape (vertex, edge, planar wire, face or shell) serving as base object + 1 vector (for direction) + 1 value (angle).
\image html revolution.png
Our <b>TUI Scripts</b> provide you with useful examples of creation of
\ref tui_creation_revolution "Complex Geometric Objects".
-*/
\ No newline at end of file
+*/
\page create_sketcher_page Sketcher
Sketcher allows to create curves of 2 types: line segment and arc.
-The curve is created from the current point (center of coordinates
-when the sketcher is started). The end of the curve is defined by
+By default the start point of the curve is located at the point of
+origin of the reference coordinate system and the curve lies in the
+plane XOY. The end of the curve is defined by
means of "destination", which can be a destination point (for segment
only) or destination direction coupled with length of a segment or
angle and radius of an arc.
segments.
\n \em Command is a string, defining the sketcher by the coordinates of
points in the local working plane.
-\n <em>WorkingPlane</em> is a planar face of the working plane (a list of 9
-doubles which are coordinates of OZ and OX of the local working
-plane).
+\n <em>WorkingPlane</em> can be a plane or a planar face. The plane is
+defined by the XYZ coordinates of three non-coincident points. The
+planar face is an existing GEOM_Object.
\n <b>Arguments:</b>
<ol>
Our <b>TUI Scripts</b> provide you with useful examples of the use of
\ref tui_sketcher_page "Sketcher".
-*/
\ No newline at end of file
+*/
\n <b>TUI Command:</b> <em>geompy.MakeSolid(ListOfShape),</em> where
ListOfShape is a list of shells from which the solid is constructed.
-\n <b>Arguments:</b> Name + A closed shell or a list of shells.
+\n <b>Arguments:</b> Name + A closed shell or a list of closed shells.
\image html neo-obj6.png
Our <b>TUI Scripts</b> provide you with useful examples of creation of
\ref tui_creation_solid "Advanced Geometric Objects".
-*/
\ No newline at end of file
+*/
Camera Position.
\n Firstly, you can select a \b Plane, a <b>Planar Face</b> or a <b>Local Coordinate System</b> to be your <b>Working Plane</b>.
-\n <b>Arguments:</b> Name + 1 selection (face or planar face).
+\n <b>Arguments:</b> Name + 1 selection (plane or planar face).
\image html workplane4.png
\image html image47.gif
<center>Reversed Direction</center>
-*/
\ No newline at end of file
+*/
\n To produce a \b Cut operation in the <b>Main Menu</b> select <b>Operations - > Boolean - > Cut</b>
\n This operation cuts a shape with another one.
-\n The \b Result will be a \b GEOM_Object (COMPOUND).
+\n The \b Result will be any \b GEOM_Object.
\n <b>Arguments:</b> Name + 2 shapes.
\n <b>Dialog Box:</b>
Our <b>TUI Scripts</b> provide you with useful examples of the use of
\ref tui_cut "Boolean Operations".
-*/
\ No newline at end of file
+*/
\n The \b Result will be a \b GEOM_Object.
\n To create fillets on all edges of the given shape, you need to
-define the <b>Main Object</b> to create a fillet on and the \b Radius of the
+select the <b>Main Object</b> to create a fillet on and to define the \b Radius of the
Fillet.
\n <b>TUI Command:</b> <em>geompy.MakeFilletAll(Shape, R)</em>
\n <b>Arguments:</b> Name + 1 shape + 1 value (fillet radius).
on, select the necessary edges or faces in the OCC Viewer and define
the \b Radius of the Fillet.
\n <b>TUI Command:</b> <em>geompy.MakeFillet(Shape, R, ShapeType, ListShapes)</em>
-\n <b>Arguments:</b> Name + 1 shape + 1 Selection of edges (or faces)
+\n <b>Arguments:</b> Name + 1 shape + one or several edges (or faces)
+ 1 value (Fillet radius).
\image html fillet2.png
Our <b>TUI Scripts</b> provide you with useful examples of the use of
\ref tui_fillet "Transformation Operations".
-*/
\ No newline at end of file
+*/
\n This operation creates a shape from two shapes.
-\n The \b Result will be a \b GEOM_Object (COMPOUND).
+\n The \b Result will be any \b GEOM_Object.
\n <b>Arguments:</b> Name + 2 shapes.
\n <b>TUI Command:</b> <em>geompy.MakeFuse(s1, s2)</em>
Our <b>TUI Scripts</b> provide you with useful examples of the use of
\ref tui_fuse "Boolean Operations".
-*/
\ No newline at end of file
+*/
\n The \b Result will be a \b GEOM_Object.
\n <b>TUI Command:</b> <em>geompy.MakeGlueFaces(theShape,
-theTolerance),</em> where \em theShape is a compound of shapes to be
+theTolerance),</em> where \em theShape is a compound of solids to be
glued, \em theTolerance is a maximum distance between two faces, which can
be considered as coincident.
-\n <b>Arguments:</b> Name + 1 Compound + Tolerance value.
+\n <b>Arguments:</b> Name + Compound of solids + Tolerance value.
\image html glue1.png
Our <b>TUI Scripts</b> provide you with useful examples of the use of
\ref tui_glue_faces "Repairing Operations".
-*/
\ No newline at end of file
+*/
\n Firstly an \b Object can be mirrored through a \b Point of symmetry
\n <b>TUI Command:</b> <em>geompy.MakeMirrorByPoint(Object, Point)</em>
-\n <b>Arguments:</b> Name + 1 shape + 1 vertex.
+\n <b>Arguments:</b> Name + one or several objects + 1 vertex.
\image html transformation7.png
\n Secondly an \b Object can be mirrored through an \b Axis of
symmetry
\n <b>TUI Command:</b> <em>geompy.MakeMirrorByAxis(Object, Axis)</em>
-\n <b>Arguments:</b> Name + 1 shape + 1 vector.
+\n <b>Arguments:</b> Name + one or several objects + 1 vector.
\image html transformation8.png
\n Finally an \b Object can be mirrored through a \b Plane of symmetry
\n <b>TUI Command:</b> <em>geompy.MakeMirrorByPlane(Shape, Plane)</em>
-\n <b>Arguments:</b> Name + 1 shape + 1 plane
+\n <b>Arguments:</b> Name + one or several objects + 1 plane
\image html transformation9.png
Our <b>TUI Scripts</b> provide you with useful examples of the use of
\ref tui_mirror "Transformation Operations".
-*/
\ No newline at end of file
+*/
\n To <b>Modify the Location</b> in the <b>Main Menu</b> select
<b>Operations - > Transformation - > Modify the Location</b>.
-\n This operation modifies the \b Location of an \b Object.
+\n This operation modifies the \b Location of \b Objects.
-\n The first algorithm places the object so that its center coincides
-with the center of an End Local Coordinate System.
-\n <b>Create a copy</b> checkbox allows to keep the initial object, otherwise it
+\n The first algorithm places the object(s) so that its center coincides
+with the origin of the Local Coordinate System.
+\n <b>Create a copy</b> checkbox allows to keep the initial objects, otherwise they
will be removed.
-\n <b>Arguments:</b> Name + 1 Object + End Coordinate System.
+\n <b>Arguments:</b> Name + one or several objects + End Coordinate System.
\image html transformation5.png
the coordinates of the End LSC.
\n <b>Create a copy</b> checkbox allows to keep the initial object,
otherwise it will be removed.
-\n <b>Arguments:</b> Name + 1 Object + Start Coordinate System + End
+\n <b>Arguments:</b> Name + one or several objects + Start Coordinate System + End
Coordinate System.
\image html transformation6.png
theEndLCS is a location to move the shape to.
\n Our <b>TUI Scripts</b> provide you with useful examples of the use
-of \ref tui_modify_location "Transformation Operations".
+of \ref tui_translation "Transformation Operations".
-*/
\ No newline at end of file
+*/
\n <b>Arguments:</b> Name + 1 shape + 1 vector for direction + 1 value
(repetition).
-\b There is a <b>TUI</b>-only command
+\b <b>NB!</b> There is another way to execute a Multi-rotation
+operation, which is currently accessible only via TUI commands:
<em>geompy.MakeMultiRotation1D(Shape, Dir, Point, NbTimes)</em> which works in
the same way, but the Axis is defined by direction and point.
\n <b>Arguments:</b> Name + 1 shape + 1 vector for direction + 1 angle
+ 1 value (repetition) + 1 step value + 1 value (repetition).
-There is a <b>TUI</b>-only command
+<b>NB!</b> There is another way to execute a Double Multi-rotation
+operation, which is currently accessible only via TUI commands:
<em>geompy.MakeMultiRotation2D(Shape, Dir, Point, Angle, nbtimes1, Step,nbtimes2)</em>
which works in the same way,
but the Axis is defined by direction and point.
Our <b>TUI Scripts</b> provide you with useful examples of the use of
\ref tui_multi_rotation "Transformation Operations".
-*/
\ No newline at end of file
+*/
\n The \b Result will be one or several \b GEOM_Objects (compound).
\n To produce a <b>Simple Multi Translation</b> (in one direction) you
-need to indicate a \b Shape to be translated, a \b Vector of
+need to indicate an \b Object to be translated, a \b Vector of
translation, a \b Step of translation and a <b>Number of Times</b> the
-shape must be moved.
+Object should be duplicated.
\n <b>TUI Command:</b> <em>geompy.MakeMultiTranslation1D(Shape, Dir,
Step, NbTimes)</em>
\n <b>Arguments:</b> Name + 1 shape + 1 vector (for direction) + 1
\image html multi_translation1dsn.png
\n To produce a <b>Double Multi Translation</b> (in two directions) you need to
-indicate a \b Shape to be translated and a \b Vector of translation, a
-\b Step of translation and a <b>Number of Times</b> the shape must be moved along
-each axis.
+indicate an \b Object to be translated, and, for both axes, a \b
+Vector of translation, a \b Step of translation and a <b>Number of Times</b> the shape must be duplicated.
\n <b>TUI Command:</b> <em>geompy.MakeMultiTranslation2D(Shape, Dir1,
Step1, NbTimes1, Dir2, Step2, NbTimes2),</em> where \em Shape is a shape
Our <b>TUI Scripts</b> provide you with useful examples of the use of
\ref tui_multi_translation "Transformation Operations".
-*/
\ No newline at end of file
+*/
\n \b Offset operation is applicable to faces, shells and solids.
\n The \b Result will be a \b GEOM_Object
\n <b>TUI Command:</b> <em>geompy.MakeOffset(Shape, Offset),</em>
-where Shape is a shape which has to be an offset, Offset is a value of
+where Shape is a shape(s) which has to be an offset, Offset is a value of
the offset.
-\n <b>Arguments:</b> Name + Object (face, shell, solid, compound) +
+\n <b>Arguments:</b> Name + Object (face(s), shell(s), solid(s)) +
Offset value
\image html transformation11.png
Our <b>TUI Scripts</b> provide you with useful examples of the use of
\ref tui_offset "Transformation Operations".
-*/
\ No newline at end of file
+*/
<li>\subpage sewing_operation_page</li>
<li>\subpage glue_faces_operation_page</li>
<li>\subpage add_point_on_edge_operation_page</li>
-<li>\subpage check_free_boundaries_operation_page</li>
-<li>\subpage check_free_faces_operation_page</li>
<li>\subpage change_orientation_operation_page</li>
</ul>
-*/
\ No newline at end of file
+*/
\n The first \b Rotation algorithm needs you to define an \b Object to
be rotated, an \b Axis of rotation and an \b Angle of rotation.
\n <b>TUI Command:</b> <em>geompy.MakeRotation(Shape, Axis, Angle)</em>
-\n <b>Arguments:</b> 1 shape + 1 vector for direction of rotation + 1
+\n <b>Arguments:</b> Name + one or several objects + 1 vector for direction of rotation + 1
angle.
\image html transformation4.png
Our <b>TUI Scripts</b> provide you with useful examples of the use of
\ref tui_rotation "Transformation Operations".
-*/
\ No newline at end of file
+*/
\n This operation creates the section between 2 shapes.
-\n The \b Result will be a \b GEOM_Object (COMPOUND).
+\n The \b Result will be any \b GEOM_Object (EDGE or WIRE).
\n <b>TUI Command:</b> <em>geompy.MakeSection(s1, s2)</em>
\n <b>Arguments:</b> Name + 2 shapes.
Our <b>TUI Scripts</b> provide you with useful examples of the use of
\ref tui_section "Boolean Operations".
-*/
\ No newline at end of file
+*/
\n To produce a \b Sewing operation in the <b>Main Menu</b> select <b>Repair - > Sewing</b>.
-\n This operation allows to sew several shapes.
+\n This operation allows to sew several faces or shells.
\n The \b Result will be a \b GEOM_Object.
\n <b>TUI Command:</b> <em>geompy.MakeSewing(ListOfShape, Precision),</em>
- where \em ListOfShape is list of shapes to be sewed, \em Precision is a
+ where \em ListOfShape is list of faces or shells to be sewed, \em Precision is a
precision for sewing.
\image html repair6.png
Our <b>TUI Scripts</b> provide you with useful examples of the use of
\ref tui_sewing "Repairing Operations".
-*/
\ No newline at end of file
+*/
<li><b>Surface Mode</b> (ToBezier.SurfaceMode) - if checked in, allows
conversion of surfaces.</li>
<li><b>3D Curve Mode</b> (ToBezier.Curve3dMode) - if checked in,
-allows conversion of 2D curves.</li>
-<li><b>2D Curve Mode</b> (ToBezier.Curve2dMode) - if checked in,
allows conversion of 3D curves.</li>
+<li><b>2D Curve Mode</b> (ToBezier.Curve2dMode) - if checked in,
+allows conversion of 2D curves.</li>
<li><b>Max Tolerance</b> (ToBezier.MaxTolerance) - defines tolerance
for detection and correction of problems.</li>
</ul>
Our <b>TUI Scripts</b> provide you with useful examples of the use of
\ref tui_shape_processing "Repairing Operations".
-*/
\ No newline at end of file
+*/
\n To <b>Suppress Holes</b> in the <b>Main Menu</b> select <b>Repair - > Suppress Holes</b>.
-\n This operation removes holes on a selected shape. This operation is
-available in <b>OCC Viewer</b> only.
+\n This operation removes holes with free boundaries on a selected
+shell or face. This operation is available in <b>OCC Viewer</b> only.
\n The \b Result will be a \b GEOM_Object.
\n <b>TUI Command:</b> <em>geompy.SuppressHoles(Shape,
-ListOfWireID),</em> where \em Shape is a shape where holes must be
-removed, \em ListOfWireID is a list of wire sub shapes ID's. If it is
+ListOfWireID),</em> where \em Shape is a shell or face, where holes
+with free boundaries must be removed, \em ListOfWireID is a list of wire sub shapes ID's. If it is
empty, then all holes are removed.
\image html repair5.png
Our <b>TUI Scripts</b> provide you with useful examples of the use of
\ref tui_suppress_holes "Repairing Operations".
-*/
\ No newline at end of file
+*/
<b>Repair - > Suppress Internal Wires</b>.
\n This operation removes all internal wires or specified internal
-wires from user specified faces. This operation is available in <b>OCC
+wires from user specified shapes. This operation is available in <b>OCC
Viewer</b> only.
\n The \b Result will be a \b GEOM_Object.
<b>Arguments:</b>
<ul>
<li>Name of the resulting object</li>
-<li>User specified face</li>
-<li>User specified internal wires (lying on this face except for its
-boundary), or, in case the <b>Remove all internal wires</b> box is
-checked, all internal wires</li>
+<li>User specified shape</li>
+<li>User specified internal wires (lying on this shape except for its
+boundary), or all internal wires if <b>Remove all internal wires</b> box is
+checked </li>
</ul>
\image html repair4.png
Our <b>TUI Scripts</b> provide you with useful examples of the use of
\ref tui_suppress_internal_wires "Repairing Operations".
-*/
\ No newline at end of file
+*/
\n <b>TUI Command:</b> <em>geompy.MakeTranslation(Shape, DX, DY,
DZ),</em> where Shape is a shape to be translated, DX, DY, DZ are
components of translation vector.
-\n <b>Arguments:</b> Name + 1 shape + 3 values (coordinates).
+\n <b>Arguments:</b> Name + one or several objects + 3 values (coordinates).
\image html transformation1.png
\n Secondly you can define an \b Object and the start and the end points
of the vector.
\n <b>TUI Command:</b> <em>geompy.MakeTranslationTwoPoints(Object, Point1, Point2)</em>
-\n <b>Arguments:</b> Name + 1 shape + 2 vertices
+\n <b>Arguments:</b> Name + one or several objects + 2 vertices
\image html transformation2.png
\n Finally you can define an \b Object and the vector
\n <b>TUI Command:</b> <em>geompy.MakeTranslationVector(Object, Vector)</em>
-\n <b>Arguments:</b> Name + 1 shape + 1 vector.
+\n <b>Arguments:</b> Name + one or several objects + 1 vector.
\image html transformation3.png
Our <b>TUI Scripts</b> provide you with useful examples of the use of
\ref tui_translation "Transformation Operations".
-*/
\ No newline at end of file
+*/
print " Ix = ", In[9], ", Iy = ", In[10], ", Iz = ", In[11]
\endcode
+<br><h2>Check Free Boundaries</h2>
+
+\code
+import os
+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])
+
+# import from *.brep
+ImportFromBREP = geompy.ImportBREP(os.getenv("DATA_DIR")+"/Shapes/Brep/flight_solid.brep")
+
+# get a face
+faces = geompy.SubShapeAllSorted(ImportFromBREP, geompy.ShapeType["FACE"])
+
+# get the free boundary for face 32
+Res = geompy.GetFreeBoundary(faces[32])
+isSuccess = Res[0]
+ClosedWires = Res[1]
+OpenWires = Res[2]
+
+if isSuccess == 1 :
+ print "Checking free boudaries is OK."
+else :
+ print "Checking free boudaries is KO!"
+print "len(ClosedWires) = ", len(ClosedWires)
+
+i = 0
+for wire in ClosedWires :
+ wire_name = "Face 32 -> Close wires : WIRE %d"%(i+1)
+ geompy.addToStudy(ClosedWires[i], wire_name)
+ if i < len(ClosedWires) :
+ i = i+ 1
+
+print "len(OpenWires) = ", len(OpenWires)
+
+i = 0
+for wire in OpenWires :
+ wire_name = "Face 32 -> Open wires : WIRE %d"%(i+1)
+ geompy.addToStudy(OpenWires[i], wire_name)
+ if i < len(OpenWires) :
+ i = i+ 1
+
+# get the free boundary for face 41
+Res = geompy.GetFreeBoundary(faces[41])
+isSuccess = Res[0]
+ClosedWires = Res[1]
+OpenWires = Res[2]
+
+if isSuccess == 1 :
+ print "Checking free boudaries is OK."
+else :
+ print "Checking free boudaries is KO!"
+print "len(ClosedWires) = ", len(ClosedWires)
+
+i = 0
+for wire in ClosedWires :
+ wire_name = "Face 41 -> Close wires : WIRE %d"%(i+1)
+ geompy.addToStudy(ClosedWires[i], wire_name)
+ if i < len(ClosedWires) :
+ i = i+ 1
+
+print "len(OpenWires) = ", len(OpenWires)
+
+i = 0
+for wire in OpenWires :
+ wire_name = "Face 41 -> Open wires : WIRE %d"%(i+1)
+ geompy.addToStudy(OpenWires[i], wire_name)
+ if i < len(OpenWires) :
+ i = i+ 1
+
+# add the imported object to the study
+id_ImportFromBREP = geompy.addToStudy(ImportFromBREP, "ImportFromBREP")
+salome.sg.updateObjBrowser(1)
+\endcode
+
+
+<br><h2>Check Free Faces</h2>
+
+\code
+import geompy
+import salome
+gg = salome.ImportComponentGUI("GEOM")
+
+# create a vertex and a vector
+p1 = geompy.MakeVertex(35, 35, 0)
+p2 = geompy.MakeVertex(35, 35, 50)
+v = geompy.MakeVector(p1, p2)
+
+# create a cylinder
+cylinder = geompy.MakeCone(p1, v, 30, 20, 20)
+
+# create a cone
+cone = geompy.MakeCone(p1, v, 70, 40, 60)
+
+# make cut
+cut = geompy.MakeCut(cone, cylinder)
+
+# get faces as sub-shapes
+faces = []
+faces = geompy.SubShapeAllSorted(cut, geompy.ShapeType["FACE"])
+f_2 = geompy.GetSubShapeID(cut, faces[0])
+
+# remove one face from the shape
+cut_without_f_2 = geompy.SuppressFaces(cut, [f_2])
+
+# suppress the specified wire
+result = geompy.GetFreeFacesIDs(cut_without_f_2)
+print "A number of free faces is ", len(result)
+
+# add objects in the study
+all_faces = geompy.SubShapeAllSorted(cut_without_f_2, geompy.ShapeType["FACE"])
+for face in all_faces :
+ sub_shape_id = geompy.GetSubShapeID(cut_without_f_2, face)
+ if result.count(sub_shape_id) > 0 :
+ face_name = "Free face %d"%(sub_shape_id)
+ geompy.addToStudy(face, face_name)
+
+# in this example all faces from cut_without_f_2 are free
+id_cut_without_f_2 = geompy.addToStudy(cut_without_f_2, "Cut without f_2")
+
+# display the results
+gg.createAndDisplayGO(id_cut_without_f_2)
+gg.setDisplayMode(id_cut_without_f_2,1)
+\endcode
+
+
+
<br><h2>Bounding Box</h2>
\code
print " Vertex min. tolerance: ", Toler[4]
print " Vertex max. tolerance: ", Toler[5]
\endcode
+
+<br><h2>Angle</h2>
+
+\code
+import salome
+salome.salome_init()
+
+import math
+import geompy
+geompy.init_geom(salome.myStudy)
+
+OX = geompy.MakeVectorDXDYDZ(10, 0,0)
+OXY = geompy.MakeVectorDXDYDZ(10,10,0)
+
+# in one plane
+Angle = geompy.GetAngle(OX, OXY)
+
+print "\nAngle between OX and OXY = ", Angle
+if math.fabs(Angle - 45.0) > 1e-05:
+ print " Error: returned angle is", Angle, "while must be 45.0"
+ pass
+
+# not in one plane
+OXY_shift = geompy.MakeTranslation(OXY,10,-10,20)
+Angle = geompy.GetAngle(OX, OXY_shift)
+
+print "Angle between OX and OXY_shift = ", Angle
+if math.fabs(Angle - 45.0) > 1e-05:
+ print " Error: returned angle is", Angle, "while must be 45.0"
+ pass
+
+# not linear
+pnt1 = geompy.MakeVertex(0, 0, 0)
+pnt2 = geompy.MakeVertex(10, 0, 0)
+pnt3 = geompy.MakeVertex(20, 10, 0)
+arc = geompy.MakeArc(pnt1, pnt2, pnt3)
+Angle = geompy.GetAngle(OX, arc)
+
+if (math.fabs(Angle + 1.0) > 1e-6 or geompy.MeasuOp.IsDone()):
+ print "Error. Angle must not be computed on curvilinear edges"
+ pass
+
+\endcode
+
+
<br><h2>What Is</h2>
print "\nCompound is valid"
\endcode
-*/
\ No newline at end of file
+*/
salome.sg.updateObjBrowser(1)
\endcode
-\anchor tui_check_free_boundaries
-<br><h2>Check Free Boundaries</h2>
-\code
-import os
-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])
-
-# import from *.brep
-ImportFromBREP = geompy.ImportBREP(os.getenv("DATA_DIR")+"/Shapes/Brep/flight_solid.brep")
-
-# get a face
-faces = geompy.SubShapeAllSorted(ImportFromBREP, geompy.ShapeType["FACE"])
-
-# get the free boundary for face 32
-Res = geompy.GetFreeBoundary(faces[32])
-isSuccess = Res[0]
-ClosedWires = Res[1]
-OpenWires = Res[2]
-
-if isSuccess == 1 :
- print "Checking free boudaries is OK."
-else :
- print "Checking free boudaries is KO!"
-print "len(ClosedWires) = ", len(ClosedWires)
-
-i = 0
-for wire in ClosedWires :
- wire_name = "Face 32 -> Close wires : WIRE %d"%(i+1)
- geompy.addToStudy(ClosedWires[i], wire_name)
- if i < len(ClosedWires) :
- i = i+ 1
-
-print "len(OpenWires) = ", len(OpenWires)
-
-i = 0
-for wire in OpenWires :
- wire_name = "Face 32 -> Open wires : WIRE %d"%(i+1)
- geompy.addToStudy(OpenWires[i], wire_name)
- if i < len(OpenWires) :
- i = i+ 1
-
-# get the free boundary for face 41
-Res = geompy.GetFreeBoundary(faces[41])
-isSuccess = Res[0]
-ClosedWires = Res[1]
-OpenWires = Res[2]
-
-if isSuccess == 1 :
- print "Checking free boudaries is OK."
-else :
- print "Checking free boudaries is KO!"
-print "len(ClosedWires) = ", len(ClosedWires)
-
-i = 0
-for wire in ClosedWires :
- wire_name = "Face 41 -> Close wires : WIRE %d"%(i+1)
- geompy.addToStudy(ClosedWires[i], wire_name)
- if i < len(ClosedWires) :
- i = i+ 1
-
-print "len(OpenWires) = ", len(OpenWires)
-
-i = 0
-for wire in OpenWires :
- wire_name = "Face 41 -> Open wires : WIRE %d"%(i+1)
- geompy.addToStudy(OpenWires[i], wire_name)
- if i < len(OpenWires) :
- i = i+ 1
-
-# add the imported object to the study
-id_ImportFromBREP = geompy.addToStudy(ImportFromBREP, "ImportFromBREP")
-salome.sg.updateObjBrowser(1)
-\endcode
-
-\anchor tui_check_free_faces
-<br><h2>Check Free Faces</h2>
-
-\code
-import geompy
-import salome
-gg = salome.ImportComponentGUI("GEOM")
-
-# create a vertex and a vector
-p1 = geompy.MakeVertex(35, 35, 0)
-p2 = geompy.MakeVertex(35, 35, 50)
-v = geompy.MakeVector(p1, p2)
-
-# create a cylinder
-cylinder = geompy.MakeCone(p1, v, 30, 20, 20)
-
-# create a cone
-cone = geompy.MakeCone(p1, v, 70, 40, 60)
-
-# make cut
-cut = geompy.MakeCut(cone, cylinder)
-
-# get faces as sub-shapes
-faces = []
-faces = geompy.SubShapeAllSorted(cut, geompy.ShapeType["FACE"])
-f_2 = geompy.GetSubShapeID(cut, faces[0])
-
-# remove one face from the shape
-cut_without_f_2 = geompy.SuppressFaces(cut, [f_2])
-
-# suppress the specified wire
-result = geompy.GetFreeFacesIDs(cut_without_f_2)
-print "A number of free faces is ", len(result)
-
-# add objects in the study
-all_faces = geompy.SubShapeAllSorted(cut_without_f_2, geompy.ShapeType["FACE"])
-for face in all_faces :
- sub_shape_id = geompy.GetSubShapeID(cut_without_f_2, face)
- if result.count(sub_shape_id) > 0 :
- face_name = "Free face %d"%(sub_shape_id)
- geompy.addToStudy(face, face_name)
-
-# in this example all faces from cut_without_f_2 are free
-id_cut_without_f_2 = geompy.addToStudy(cut_without_f_2, "Cut without f_2")
-
-# display the results
-gg.createAndDisplayGO(id_cut_without_f_2)
-gg.setDisplayMode(id_cut_without_f_2,1)
-\endcode
-
-*/
\ No newline at end of file
+*/
Boolean operation, \em Operation is a type of the Boolean operation (1
— Common, 2 — Cut, 3 — Fuse, 4 — Section).
+
+Besides, you can use advanced TUI commands performing these operations
+independently from each other:
+\par
+<em>geompy.MakeFuse(Shape1, Shape2)</em>, where \em Shape1 and \em
+Shape2 is the second argument of Fuse operation;
+\par
+<em>geompy.MakeCommon(Shape1, Shape2)</em>, where \em Shape1 and \em
+Shape2 is the second argument of Common operation;
+\par
+<em>geompy.MakeCut(Shape1, Shape2)</em>, where \em Shape1 and \em
+Shape2 is the second argument of Cut operation;
+\par
+<em>geompy.MakeSection(Shape1, Shape2)</em>, where \em Shape1 and \em
+Shape2 is the second argument of Section operation;
+
\n Our <b>TUI Scripts</b> provide you with useful examples of the use of
\ref tui_boolean_operations_page "Boolean Operations".
-*/
\ No newline at end of file
+*/
<li>\ref basic_prop_anchor "Basic properties"</li>
<li>\ref center_mass_anchor "Center of mass"</li>
<li>\ref inertia_anchor "Inertia"</li>
+<li>\ref boundaries_anchor "Check Free Boundaries"</li>
+<li>\ref faces_anchor "Check Faces"</li>
<li>\ref bounding_box_anchor "Bounding box"</li>
<li>\ref min_distance_anchor "Min. distance"</li>
+<li>\ref angle_anchor "Angle"</li>
<li>\ref tolerance_anchor "Tolerance"</li>
<li>\ref whatis_anchor "WhatIs"</li>
<li>\ref check_anchor "Check"</li>
\anchor inertia_anchor
<br><h2>Inertia</h2>
-Returns the axis of inertia for the selected geometrical object.
+Returns the axial moments of inertia for the selected geometrical object.
-\n <b>Result:</b> Displays the matrix and moments of inertia in the
-form of Python Tuple <center>(I11, I12, I13,</center>
+\n <b>Result:</b> Displays the matrix of the own moments of inertia and
+the relative moments of inertia in the form of Python Tuple
+ <center>(I11, I12, I13,</center>
<center>I21, I22, I23,</center>
<center>I31, I32, I33,</center>
<center>Ix, Iy, Iz).</center>
\n <b>TUI Command:</b> <em>geompy.Inertia(Shape),</em> where \em Shape is
-a shape for which a matrix of inertia and moment of inertia are
+a shape for which the own matrix of inertia and the relative moments of inertia are
returned.
\image html measures4.png
+\anchor boundaries_anchor
+<br><h2>Check Free Boundaries</h2>
+
+\n Detects and highlights wires and edges that are not shared between
+two faces and are considered a shape's boundary.
+
+\n <b>TUI Command:</b> <em>(NoError, ClosedWires, OpenWires) =
+geompy.GetFreeBoundary(Shape),</em> where \em Shape is a shape to be
+checked, \em NoError is false if an error occurred while checking free
+boundaries, \em ClosedWires is a list of closed free boundary wires,
+\em OpenWires is a list of open free boundary wires.
+
+\image html repair9.png
+
+\anchor faces_anchor
+<br><h2>Check Free Faces</h2>
+
+\n Highlights all free faces of a given shape. A free
+face is a face which is not shared between two objects of the shape.
+
+\n \b NOTE: This functionality works only in VTK viewer.
+
+\n \b Result: a list of IDs of all free faces, containing in the shape.
+\n <b>TUI Command:</b> <em>GetFreeFacesIDs(Shape),</em> where \em Shape is
+a shape to be checked.
+
+\image html repair10.png
+
\anchor bounding_box_anchor
<br><h2>Bounding box</h2>
\anchor min_distance_anchor
<br><h2>Min. distance</h2>
-\n Returns the minimum distance between two geometrical objects.
+\n Returns the minimum distance between two geometrical objects and
+the coordinates of the vector of distance and shows the vector in the viewer.
\n <b>TUI Command:</b> <em>geompy.MinDistance(Shape1, Shape2),</em>
-where \em Shape1 and \em Shape2 are shapes between which the minimal distance
-computed.
+where \em Shape1 and \em Shape2 are shapes between which the minimal
+distance is computed.
\image html distance.png
+\anchor angle_anchor
+<br><h2>Angle</h2>
+
+\n Returns the angle between two lines or linear edges
+\n <b>TUI Command:</b> <em>geompy.GetAngle(shape1, shape2), where
+Shape1 and Shape2 are shapes between which the angle is computed.
+
+\image html angle.png
+
\anchor tolerance_anchor
<br><h2>Tolerance</h2>
\n <b>Result:</b> Boolean.
\n <b>TUI Command:</b> <em>geompy.(theShape, theIsCheckGeom = 0),</em>
-where is shape which is checked for validity.
+where is theShape is the shape checked for validity.
\image html measures9.png
\image html measures10.png
-*/
\ No newline at end of file
+*/
<li>\ref color_page "Color" - allows to change the filling color in
the standard <b>Select Color</b> menu.</li>
<li>\ref transparency_page "Transparency" - allows to change the
-transparency of mesh elements.</li>
+transparency of geometrical objects.</li>
<li>\ref isolines_page "Isos" - allows to change the number of
isolines displayed within a shape.</li>
-<li><b>Erase</b> - allows to hide the selected mesh from the
+<li><b>Erase</b> - allows to hide the selected geometrical object from the
viewer. TUI Command : <em>sg.EraseOnly(ID)</em>
\n \image html image18.gif
</li>
Command: <em>sg.EraseAll()</em>
\n \image html image26.gif
</li>
-<li><b>Display Only</b> - allows to display only the selected mesh,
-hiding all other from the viewer. TUI Command: <em>sg.DisplayOnly(ID)</em>
+<li><b>Display Only</b> - allows to display only the selected
+geometrical object. TUI Command: <em>sg.DisplayOnly(ID)</em>
\n \image html image33.gif
</li>
-<li><b>Update</b> - refreshes the presentation of your mesh in the
+<li><b>Update</b> - refreshes the presentation of your geometrical object in the
Object Browser, applying all recent changes.</li>
<li><b>Dump view</b> - exports an object from the viewer in bmp, png,
jpg or jpeg image format.</li>
<li><b>Select Only</b> provides a filter for exclusive selection of objects of a certain type.</li>
</ul>
-*/
\ No newline at end of file
+*/
<ul>
<li><b>Shape Type</b> radio button define the type of elements for the
-group (points, lines, planes or shapes).</li>
+group (points, wires, faces, shells or solids).</li>
<li><b>Group Name</b> - here you can enter the name of the group, by
default, it is Group_n.</li>
<li>Then, using the "Select" button, select the <b>Main Shape</b> (a
Our <b>TUI Scripts</b> provide you with useful examples of
\ref tui_working_with_groups_page "Working with Groups".
-*/
\ No newline at end of file
+*/