To create a \b Curve in the <b>Main Menu</b> select <b>New Entity - >
Basic - > Curve</b>
-\n There are three algorithms to create a \b Curve in the 3D space. Each
-time you define it by a list of \b Points through which the curve
-passes. The three <b>Curve Construction</b> menu choices correspond to three
+There are three <b>Curve Construction</b> menu choices corresponding to three
possible types of curves: Polyline, Besier or B-spline (Interpolated).
+The curve is defined by a list of \b Points through which it passes.
+
+
+\n There are two ways to define these <b>Points</b>:
+<ul>
+<li> <b>By Selection</b> manual picking of the points in the Object Browser or 3D Viewer.
+<li> <b>Analytical</b> parametric definition of the points through
+python expressions.
+</ul>
+
\n The \b Result of each operation will be a GEOM_Object (edge).
-\n There are two ways to define <b>Points</b>:
+
+<b>Polyline</b>
+
+\image html polyline.png
+
+Polyline or polygonal chain is a connected series of line segments. It
+can be defined by the following parameters:
+
+\image html curve2.png
+
<ul>
-<li> <b>By Selection</b> choice of the points manually in the Object Browser or 3D Viewer.
-<li> <b>Analitical</b> parametric definition of the points through python expressions.
+<li><b>Points</b> at least 2 points which will serve as nodes on the curve.</li>
+<li><b>Build a closed wire</b> checkbox allows creating the curve as
+closed wire.</li>
</ul>
-\n <b>TUI Commands:</b>
+\n <b>TUI Command:</b> <em>geompy.MakePolyline(ListOfShapes,isClosed)</em>
+
+<b>Bezier</b>
+
+\image html bezier.png
+
+Bezier curve is a curve completely contained in a convex hull of its
+control points. It can be defined by the following parameters:
+
+
+\image html curve3.png
+
<ul>
-<li><em>geompy.MakePolyline(ListOfShapes,isClosed)</em></li>
-<li><em>geompy.MakeBezier(ListOfShapes,isClosed)</em></li>
-<li><em>geompy.MakeInterpol(ListOfShapes,isClosed,doReordering)</em></li>
-<li><em>geompy.MakeCurveParametric(XExpr, YExpt, ZExpt, tMin, tMax, tStep, curveType)</em></li>
+<li><b>Points</b> at least 2 points used to approximate the curve.</li>
+<li><b>Build a closed edge</b> checkbox allows creating the curve as
+closed edge.</li>
</ul>
-ListOfShape is a list of points through which the curve passes.
-If isClosed is True, MakeBezier and MakeInterpol builds a closed edge,
-MakePolyline builds a closed wire. If doReordering is True,
-MakeInterpol does not follow the order of vertices but searches for the
-closest vertex.
-\n XExpr, YExpr, ZExpr python expressions for the X, Y and Z coordinates of the basic points of the curve.
-\n tMin, tMax minimum and maximun values of the parameter \b t.
-\n tStep step of the parameter \b t
-\n curveType type of the curve Polyline, Bezier or Interpolation.
-
-<b>Arguments:</b>
+
+\n <b>TUI Command:</b> <em>geompy.MakeBezier(ListOfShapes,isClosed)</em>
+
+<b>B-spline</b>
+
+\image html interpol.png
+
+B-spline is a union of curve segments defined at each node span. It
+can be defined by the following parameters:
+
+\image html curve4.png
+
<ul>
-<li>Name + at least 2 points which will serve as nodes on the curve, or</li>
-<li>Name + 3 string + 3 values (python expressions for the X, Y and Z coordinates, minimum,
-maximum and step values of the parameter)</li>
+<li><b>Points</b> at least 2 points which will serve as nodes on the curve.</li>
+<li><b>Build a closed edge</b> checkbox allows creating the curve as
+closed edge.</li>
+<li> If <b>Reorder vertices taking into account distances</b> is
+checked, the interpolation algorithm does not follow the order of
+vertices but searches for the closest vertex.</li>
</ul>
+\n <b>TUI Command:</b>
+<em>geompy.MakeInterpol(ListOfShapes,isClosed,doReordering)</em>
-\n<b>Advanced options</b> \ref preview_anchor "Preview"
+<b>Analytical Definition</b>
-\image html curve.png
-\image html curve1.png
-\image html curve2.png
+The input parameters for analytical definition are common for all
+types of curves.
-<b>Examples:</b>
+\image html curve1.png
-\image html polyline.png
-<center>Polyline</center>
+<ul>
+<li><b>X(t)equation, Y(t)equation, Z(t)equation</b> are python
+expressions for X, Y and Z coordinates of the basic points of the curve.</li>
+<li><b>Min t, Max t</b> are minimum and maximun values of the parameter \b t.</li>
+<li><b>Step</b> is the step of the parameter \b t.</li>
+</ul>
-\image html bezier.png
-<center>Bezier</center>
+\n <b>TUI Command:</b> <em>geompy.MakeCurveParametric(XExpr, YExpt, ZExpt, tMin, tMax, tStep, curveType)</em>
-\image html interpol.png
-<center>B-Spline</center>
+\n<b>Advanced options</b> \ref preview_anchor "Preview"
Our <b>TUI Scripts</b> provide you with useful examples of creation of
\ref tui_creation_curve "Basic Geometric Objects".
\image html edge2.png "Create edge from wire"
-The third case allows building edges of desired length on any existing
-curve (selected existing edge). <b>Start Point</b> parameter is optional.
-Any point can be selected for it, the new edge will begin at the end
-of initial edge, close to the selected point. <b>Length</b> can exceed
-the initial edge's length or be negative to extrapolate existing edge
-along its curve (except bezier and b-spline curves).
+Thirdly, it is possible to build an edge of required \b Length on any existing
+\b Edge.
+
+<b>Start Point</b> parameter is optional:
+- if used, it allows selecting any existing point - in such a case the start point
+of the new edge will be chosen as start or end point of the selected \b Edge
+whatever is closest to the selected <b>Start Point</b>
+- if it is missed, the start point of the initial edge is used
+
+<b>Length</b> can exceed the length of the initial edge length or be
+negative. In this case the existing edge is extrapolated
+along its curve (except for bezier and b-spline curves).
<b>TUI Command:</b> <em>geompy.MakeEdgeOnCurveByLength(Edge, Length, StartPoint = None)</em><br>
<b>Arguments:</b> Name + 1 edge + Length + 1 Vertex
-(StartPoint parameter is optional, it allows switching from one end of
-initial edge to another. Length can exceed the initial edge's length or be negative).
\image html edge3.png "Create edge on curve"
variety of ways:
<ul>
<li><em>geompy.ExtractShapes(Shape, Type, isSorted)</em> explodes a
-Shape on subshapes of a given Type and returns a List of sub-shapes.
+Shape into subshapes of a given Type and returns a List of sub-shapes.
This method does not return the Shape itself if it matches the
Type.</li>
<li><em>geompy.SubShapeAll(Shape, Type)</em> explodes a Shape on
position of the point on the given edge.
\image html point3.png
-Alternatively, it is possible to define the point by \b Edge and \b Length,
-the given length can exceed the length of the edge or be negative
-(except bezier and b-spline curves). The orientation of the edge can
-be reversed by the \b StartPoint selection.
-\n <b>TUI Command:</b> <em>geompy.MakeVertexOnCurveByLength(Edge,Length,StartPoint=None).</em>
-\n <b>Arguments:</b> Name + 1 edge + 1 Length defining the position
-of the point on the given edge + 1 Point defining the direction for
-the calculation of the length (if not defined, the first vertex of
+Alternatively, it is possible to define a point by an \b Edge and a \b Length.
+The \b Length defines the position of the point on the given edge. It
+can exceed the length of the edge or be negative. In this case the edge
+is extrapolated along its curve (except for bezier and b-spline
+curves).
+The <b>Start Point</b> defines the direction for the length
+calculation (if not defined, the first vertex of
Edge is used, else the vertex of Edge closest to StartPoint is used).
+\n <b>TUI Command:</b> <em>geompy.MakeVertexOnCurveByLength(Edge,Length,StartPoint=None).</em>
+\n <b>Arguments:</b> Name + 1 edge + 1 Length + 1 Point.
+
\image html point3_3.png
It is also possible to define 3D coordinates of the point
--- /dev/null
+/*!
+
+\page glue_edges_operation_page Glue Edges
+
+\n To <b>Glue Edges</b> in the <b>Main Menu</b> select <b>Repair - > Glue Edges</b>.
+
+\n This operation glues edges that are coincident with respect to the
+given tolerance value.
+
+\n <b>Arguments:</b> Name + Compound of shapes + Tolerance value.
+\n <b>Advanced option:</b>
+ \ref restore_presentation_parameters_page "Set presentation parameters and subshapes from arguments".
+\n The \b Result will be a \b GEOM_Object.
+
+
+\image html glue4.png
+
+\n <b>TUI Command:</b>
+\n <em>geompy.MakeGlueEdges(theShape,theTolerance)</em>,
+\n where \em theShape is a compound of shapes to be glued, and \em
+ theTolerance is a maximum distance between two faces/edges, which can
+ be considered as coincident.
+
+\n It is also possible to manually select the edges that will be
+glued - select the shape, specify the tolerance and press \b Detect button.
+
+\image html glue5.png
+
+\n \b Geometry module detects the edges where gluing can be
+performed and displays a notification.
+
+\image html glue7.png
+
+\n The edges that can be glued are colored in red. It is
+possible to select the edges for gluing in the 3D viewer.
+The selected edges will be marked in white.
+
+\n <b>TUI Command:</b>
+\n <em>geompy.GetGlueEdges(theShape,theTolerance)</em>,
+\n where \em theShape is a compound of shapes to be glued, \em
+ theTolerance is a maximum distance between two edges, which can
+ be considered as coincident. The \b Result will be a list of \b
+ GEOM_Objects, containing one sub shape per each detected set of
+ coincident sub shapes.
+
+\n <em>geompy.MakeGlueEdgesByList(theShape,theTolerance,theEdges)</em>,
+\n where \em theShape is a compound of shapes to be glued, \em
+ theTolerance is a maximum distance between two edges, which can
+ be considered as coincident, \em theEdges is a list of
+ subshapes to be glued.
+
+\n <b>Example:</b>
+
+\image html glue8.png
+<center><em>Box with an edge that can be glued</em></center>
+
+Our <b>TUI Scripts</b> provide you with useful examples of the use of
+<b>Repairing Operations</b> \ref tui_glue_edges "Glue Edges".
+
+*/
/*!
-\page glue_faces_operation_page Glue Faces / Edges
+\page glue_faces_operation_page Glue Faces
\n To <b>Glue Faces</b> in the <b>Main Menu</b> select <b>Repair - > Glue Faces</b>.
-\n To <b>Glue Edges</b> in the <b>Main Menu</b> select <b>Repair - > Glue Edges</b>.
-\n This operation glues faces/edges that are coincident with respect to the
+
+\n This operation glues faces that are coincident with respect to the
given tolerance value.
\n <b>Arguments:</b> Name + Compound of shapes + Tolerance value.
\n The \b Result will be a \b GEOM_Object.
\image html glue1.png
-\n \image html glue4.png
+
\n <b>TUI Commands:</b>
- <em>geompy.MakeGlueFaces(theShape,theTolerance,doKeepNonSolids)</em> and
- <em>geompy.MakeGlueEdges(theShape,theTolerance)</em>,
- where \em theShape is a compound of shapes to be glued, \em
- theTolerance is a maximum distance between two faces/edges, which can
+\n <em>geompy.MakeGlueFaces(theShape,theTolerance,doKeepNonSolids)</em>,
+\n where \em theShape is a compound of shapes to be glued, \em
+ theTolerance is a maximum distance between two faces, which can
be considered as coincident. The \em doKeepNonSolids flag allows to
throw away non-solids from the result, if false. The \b Result will
be a new \b GEOM_Object.
-\n It is also possible to manually select the faces/edges that will be
+\n It is also possible to manually select the faces that will be
glued - select the shape, specify the tolerance and press \b Detect button.
\image html glue2.png
-\n \image html glue5.png
-\n \b Geometry module detects the faces/edges where gluing can be
+\n \b Geometry module detects the faces where gluing can be
performed and displays a notification.
\image html glue3.png
-\n The faces/edges that can be glued are colored in red. It is
-possible to select the faces/edges for gluing in the 3D viewer.
-The selected faces/edges will be marked in white.
+\n The faces that can be glued are colored in red. It is
+possible to select the faces for gluing in the 3D viewer.
+The selected faces will be marked in white.
-\n For faces gluing their edges are also glued. By default, other
-edges are not glued (this concerns only Glue Faces, of course).
-To force all edges gluing, check the "Glue all coincident edges"
+\n When the faces are glued their edges are glued as well. By default, other
+edges are not glued. To force gluing of all edges, check <b>Glue all coincident edges</b>
checkbox.
\n <b>TUI Commands:</b>
- <em>geompy.GetGlueFaces(theShape,theTolerance)</em> and
- <em>geompy.GetGlueEdges(theShape,theTolerance)</em>,
- where \em theShape is a compound of shapes to be glued, \em
- theTolerance is a maximum distance between two faces/edges, which can
+\n <em>geompy.GetGlueFaces(theShape,theTolerance)</em>,
+\n where \em theShape is a compound of shapes to be glued, \em
+ theTolerance is a maximum distance between two faces, which can
be considered as coincident. The \b Result will be a list of \b
GEOM_Objects, containing one sub shape per each detected set of
coincident sub shapes.
-\n <em>geompy.MakeGlueFacesByList(theShape,theTolerance,theFaces,doKeepNonSolids,doGlueAllEdges)</em>
- and <em>geompy.MakeGlueEdgesByList(theShape,theTolerance,theEdges)</em>,
- where \em theShape is a compound of shapes to be glued, \em
- theTolerance is a maximum distance between two faces/edges, which can
- be considered as coincident, \em theFaces/theEdges is a list of
+\n <em>geompy.MakeGlueFacesByList(theShape,theTolerance,theFaces,doKeepNonSolids,doGlueAllEdges)</em>,
+\n where \em theShape is a compound of shapes to be glued, \em
+ theTolerance is a maximum distance between two faces, which can
+ be considered as coincident, \em theFaces is a list of
subshapes to be glued. The \em doKeepNonSolids flag allows to throw
away non-solids from the result, if false. The \em doGlueAllEdges
allows to glue all edges, not only owned by glued faces. The \b
<center><em>Manual selection of faces for gluing</em></center>
Our <b>TUI Scripts</b> provide you with useful examples of the use of
-<b>Repairing Operations</b> \ref tui_glue_faces "Glue Faces" and \ref
-tui_glue_edges "Glue Edges".
+<b>Repairing Operations</b> \ref tui_glue_faces "Glue Faces".
*/
<li>\subpage sewing_operation_page "Sewing" - sews faces or shells.</li>
<li>\subpage glue_faces_operation_page "Glue faces" - unites
coincident faces within the given tolerance.</li>
+<li>\subpage glue_edges_operation_page "Glue edges" - unites
+coincident edges within the given tolerance.</li>
<li>\subpage limit_tolerance_operation_page "Limit Tolerance" - tries
to set new tolerance value for the given shape.</li>
<li>\subpage add_point_on_edge_operation_page "Add point on edge" -
<br><center><b>Set presentation parameters and subshapes from arguments</b></center>
-\n This option allows the operation result to inherit colour
+\n This option allows the operation result to inherit color
and subshapes from its arguments.
\n To activate this functionality, check in "Set
\image html restore-ss-viewer-before.png "The initial box and cylinder"
First, we examine the case when the resulting shape corresponds to one argument (after transformation,
-after the boolean operation Cut, or after the partiton with one object shape).
+after the Boolean operation Cut, or after the partiton with one object shape).
We create a Cut of Box_1 with Cylinder_1.
\image html restore-ss-viewer-cut.png "The resulting shape"
Second, we examine the case when the resulting shape is composed from multiple arguments
-(after all boolean operations, except for Cut, or after the partition with
+(after all Boolean operations, except for Cut, or after the partition with
several object shapes, or if the resulting shape is a compound).
We create a Common of Box_1 and Cylinder_1.
\n The resulting object is created with several subshapes that correspond to the
operation arguments and their published subshapes. The resulting shape
-has a default colour, but its subshapes inherit colors corresponding
+has a default color, but its subshapes inherit colors corresponding
to arguments and their subshapes.
\image html restore-ss-viewer-after.png "The resulting shape"
By default this option is On.
\anchor preview_anchor <br><center><b>Preview</b></center>
-<b>Preview</b> checkbox allows display/erase simulation of the <b>Result</b> in the viewer.
+<b>Preview</b> checkbox allows displaying/erasing simulation of the <b>Result</b> in the viewer.
*/