1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-04 13:13:25 +03:00

0028654: Existed tool (gendoc) for generation documentation does not take into account size of images.

The parameter defining image width has been added to all figures to improve their layout in PDF documents and tweaked depending on the nature of each image.
Additionally, some minor changes improving image and text layout have been introduced.

Remove temporary added possibility for setting image width automatically for generation of pdf documentation.
This commit is contained in:
ysn
2017-06-02 11:55:34 +03:00
committed by bugmaster
parent 26e0b3353c
commit d6b4d3d0d5
20 changed files with 478 additions and 562 deletions

View File

@@ -28,11 +28,11 @@ The Intersections component is used to compute intersections between 2D or 3D ge
The *Geom2dAPI_InterCurveCurve* class allows the evaluation of the intersection points (*gp_Pnt2d*) between two geometric curves (*Geom2d_Curve*) and the evaluation of the points of self-intersection of a curve.
@figure{/user_guides/modeling_algos/images/modeling_algos_image003.png, "Intersection and self-intersection of curves"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image003.png,"Intersection and self-intersection of curves",420}
In both cases, the algorithm requires a value for the tolerance (Standard_Real) for the confusion between two points. The default tolerance value used in all constructors is *1.0e-6.*
@figure{/user_guides/modeling_algos/images/modeling_algos_image004.png, "Intersection and tangent intersection"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image004.png,"Intersection and tangent intersection",420}
The algorithm returns a point in the case of an intersection and a segment in the case of tangent intersection.
@@ -211,7 +211,7 @@ The implemented algorithms are more complex than those provided by the Direct Co
The expression of a tangency problem generally leads to several results, according to the relative positions of the solution and the circles or straight lines in relation to which the tangency constraints are expressed. For example, consider the following
case of a circle of a given radius (a small one) which is tangential to two secant circles C1 and C2:
@figure{/user_guides/modeling_algos/images/modeling_algos_image058.png,"Example of a Tangency Constraint"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image058.png,"Example of a Tangency Constraint",360}
This diagram clearly shows that there are 8 possible solutions.
@@ -264,18 +264,18 @@ The following analytic algorithms using value-handled entities for creation of 2
#### Exterior/Interior
It is not hard to define the interior and exterior of a circle. As is shown in the following diagram, the exterior is indicated by the sense of the binormal, that is to say the right side according to the sense of traversing the circle. The left side is therefore the interior (or "material").
@figure{/user_guides/modeling_algos/images/modeling_algos_image006.png, "Exterior/Interior of a Circle"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image006.png,"Exterior/Interior of a Circle",220}
By extension, the interior of a line or any open curve is defined as the left side according to the passing direction, as shown in the following diagram:
@figure{/user_guides/modeling_algos/images/modeling_algos_image007.png, "Exterior/Interior of a Line and a Curve"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image007.png,"Exterior/Interior of a Line and a Curve",220}
#### Orientation of a Line
It is sometimes necessary to define in advance the sense of travel along a line to be created. This sense will be from first to second argument.
The following figure shows a line, which is first tangent to circle C1 which is interior to the line, and then passes through point P1.
@figure{/user_guides/modeling_algos/images/modeling_algos_image008.png, "An Oriented Line"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image008.png,"An Oriented Line",220}
#### Line tangent to two circles
@@ -284,7 +284,7 @@ The following four diagrams illustrate four cases of using qualifiers in the cr
**Example 1 Case 1**
@figure{/user_guides/modeling_algos/images/modeling_algos_image009.png, "Both circles outside"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image009.png,"Both circles outside",220}
Constraints:
Tangent and Exterior to C1.
@@ -301,7 +301,7 @@ GccAna_Lin2d2Tan
**Example 1 Case 2**
@figure{/user_guides/modeling_algos/images/modeling_algos_image010.png, "Both circles enclosed"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image010.png,"Both circles enclosed",220}
Constraints:
Tangent and Including C1.
@@ -318,7 +318,7 @@ GccAna_Lin2d2Tan
**Example 1 Case 3**
@figure{/user_guides/modeling_algos/images/modeling_algos_image011.png, "C1 enclosed, C2 outside"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image011.png,"C1 enclosed and C2 outside",220}
Constraints:
Tangent and Including C1.
@@ -334,7 +334,7 @@ GccAna_Lin2d2Tan
**Example 1 Case 4**
@figure{/user_guides/modeling_algos/images/modeling_algos_image012.png, "C1 outside, C2 enclosed"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image012.png,"C1 outside and C2 enclosed",220}
Constraints:
Tangent and Exterior to C1.
Tangent and Including C2.
@@ -349,7 +349,7 @@ GccAna_Lin2d2Tan
**Example 1 Case 5**
@figure{/user_guides/modeling_algos/images/modeling_algos_image013.png, "With no qualifiers specified"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image013.png,"Without qualifiers",220}
Constraints:
Tangent and Undefined with respect to C1.
@@ -367,7 +367,7 @@ GccAna_Lin2d2Tan
The following four diagrams show the four cases in using qualifiers in the creation of a circle.
**Example 2 Case 1**
@figure{/user_guides/modeling_algos/images/modeling_algos_image014.png, "Both solutions outside"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image014.png,"Both solutions outside",220}
Constraints:
Tangent and Exterior to C1.
@@ -382,7 +382,7 @@ GccAna_Circ2d2TanRad
**Example 2 Case 2**
@figure{/user_guides/modeling_algos/images/modeling_algos_image015.png, "C2 encompasses C1"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image015.png,"C2 encompasses C1",220}
Constraints:
Tangent and Exterior to C1.
@@ -396,7 +396,7 @@ GccAna_Circ2d2TanRad
~~~~~
**Example 2 Case 3**
@figure{/user_guides/modeling_algos/images/modeling_algos_image016.png, "Solutions enclose C2"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image016.png,"Solutions enclose C2",220}
Constraints:
Tangent and Exterior to C1.
@@ -410,7 +410,7 @@ GccAna_Circ2d2TanRad
~~~~~
**Example 2 Case 4**
@figure{/user_guides/modeling_algos/images/modeling_algos_image017.png, "Solutions enclose C1"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image017.png,"Solutions enclose C1",220}
Constraints:
Tangent and Enclosing C1.
@@ -558,7 +558,7 @@ This is done by the class *GeomFill_ConstrainedFilling*, which allows filling a
A case in point is the intersection of two fillets at a corner. If the radius of the fillet on one edge is different from that of the fillet on another, it becomes impossible to sew together all the edges of the resulting surfaces. This leaves a gap in the overall surface of the object which you are constructing.
@figure{/user_guides/modeling_algos/images/modeling_algos_image059.png,"Intersecting filleted edges with differing radiuses"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image059.png,"Intersecting filleted edges with differing radiuses",220}
These algorithms allow you to fill this gap from two, three or four curves. This can be done with or without constraints, and the resulting surface will be either a Bezier or a BSpline surface in one of a range of filling styles.
@@ -578,7 +578,7 @@ The enumerations *FillingStyle* specify the styles used to build the surface. Th
* *Coons* -- a rounded style with less depth than *Curved*
* *Curved* -- the style with the most rounded patches.
@figure{/user_guides/modeling_algos/images/modeling_algos_image018.png, "Intersecting filleted edges with different radii leave a gap, is filled by a surface"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image018.png,"Intersecting filleted edges with different radii leave a gap filled by a surface",274}
@subsubsection occt_modalg_2_5_5 Plate surfaces
@@ -590,7 +590,7 @@ curve constraints and the point constraint respectively. The resulting surface c
The surface is built using a variational spline algorithm. It uses the principle of deformation of a thin plate by localised mechanical forces. If not already given in the input, an initial surface is calculated. This corresponds to the plate prior
to deformation. Then, the algorithm is called to calculate the final surface. It looks for a solution satisfying constraints and minimizing energy input.
@figure{/user_guides/modeling_algos/images/modeling_algos_image061.png,"Surface generated from two curves and a point"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image061.png,"Surface generated from two curves and a point",360}
The package *GeomPlate* provides the following services for creating surfaces respecting curve and point constraints:
@@ -616,7 +616,7 @@ The class *Surface* allows describing the characteristics of plate surface objec
The class *MakeApprox* allows converting a *GeomPlate* surface into a *Geom_BSplineSurface*.
@figure{/user_guides/modeling_algos/images/modeling_algos_image060.png,"Surface generated from four curves and a point"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image060.png,"Surface generated from four curves and a point",360}
Let us create a Plate surface and approximate it from a polyline as a curve constraint and a point constraint
@@ -685,7 +685,7 @@ Projections provide for computing the following:
*Geom2dAPI_ProjectPointOnCurve* allows calculation of all normals projected from a point (*gp_Pnt2d*) onto a geometric curve (*Geom2d_Curve*). The calculation may be restricted to a given domain.
@figure{/user_guides/modeling_algos/images/modeling_algos_image020.png, "Normals from a point to a curve"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image020.png,"Normals from a point to a curve",320}
The curve does not have to be a *Geom2d_TrimmedCurve*. The algorithm will function with any class inheriting *Geom2d_Curve*.
@@ -919,7 +919,7 @@ Extrema_ExtPC& TheExtrema = Projector.Extrema();
The class *GeomAPI_ProjectPointOnSurf* allows calculation of all normals projected from a point from *gp_Pnt* onto a geometric surface from *Geom_Surface*.
@figure{/user_guides/modeling_algos/images/modeling_algos_image021.png, "Projection of normals from a point to a surface"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image021.png,"Projection of normals from a point to a surface",360}
Note that the surface does not have to be of *Geom_RectangularTrimmedSurface* type.
The algorithm will function with any class inheriting *Geom_Surface*.
@@ -1070,8 +1070,8 @@ It is possible to create the planar faces from the arbitrary set of planar edges
This feature might be useful if you need for instance to restore the shape from the wireframe model:
<table align="center">
<tr>
<td>@figure{/user_guides/modeling_algos/images/modeling_algos_image062.png, "Wireframe model"}</td>
<td>@figure{/user_guides/modeling_algos/images/modeling_algos_image063.png, "Faces of the model"}</td>
<td>@figure{/user_guides/modeling_algos/images/modeling_algos_image062.png,"Wireframe model",160}</td>
<td>@figure{/user_guides/modeling_algos/images/modeling_algos_image063.png,"Faces of the model",160}</td>
</tr>
</table>
@@ -1109,8 +1109,8 @@ The wires located in the same plane and completely included into other wires wil
<table align="center">
<tr>
<td>@figure{/user_guides/modeling_algos/images/modeling_algos_image064.png, "Wireframe model"}</td>
<td>@figure{/user_guides/modeling_algos/images/modeling_algos_image065.png, "Two faces (red face has a hole)"}</td>
<td>@figure{/user_guides/modeling_algos/images/modeling_algos_image064.png,"Wireframe model",160}</td>
<td>@figure{/user_guides/modeling_algos/images/modeling_algos_image065.png,"Two faces (red face has a hole)",160}</td>
</tr>
</table>
@@ -1146,9 +1146,9 @@ The following methods allow building PCurves of edges on faces:
The following methods allow checking the validity of the shapes:
* *BOPTools_AlgoTools::IsMicroEdge* detects the small edges;
* *BOPTools_AlgoTools::ComputeTolerance* computes the correct tolerance of the edge on the face;
* *BOPTools_AlgoTools::CorrectShapeTolerances* and *BOPTools_AlgoTools::CorrectTolerances* allows correcting the tolerances of the sub-shapes.
* *BOPTools_AlgoTools::CorrectShapeTolerances* and *BOPTools_AlgoTools::CorrectTolerances* allow correcting the tolerances of the sub-shapes.
* *BRepLib::FindValidRange* finds a range of 3d curve of the edge not covered by tolerance spheres of vertices.
@subsection occt_modalg_2_topo_tools_7 Taking a point inside the face
The following methods allow taking a point located inside the face:
@@ -1323,7 +1323,7 @@ TopoDS_Edge E = BRepBuilderAPI_MakeEdge(C,V1,V2,p1,p2);
where C is the domain of the edge; V1 is the first vertex oriented FORWARD; V2 is the second vertex oriented REVERSED; p1 and p2 are the parameters for the vertices V1 and V2 on the curve. The default tolerance is associated with this edge.
@figure{/user_guides/modeling_algos/images/modeling_algos_image022.png, "Basic Edge Construction"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image022.png,"Basic Edge Construction",220}
The following rules apply to the arguments:
@@ -1349,7 +1349,7 @@ The following rules apply to the arguments:
The figure below illustrates two special cases, a semi-infinite edge and an edge on a periodic curve.
@figure{/user_guides/modeling_algos/images/modeling_algos_image023.png, "Infinite and Periodic Edges"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image023.png,"Infinite and Periodic Edges",220}
@subsubsection occt_modalg_3_2_2 Supplementary edge construction methods
@@ -1424,7 +1424,7 @@ The *Error* method returns a term of the *BRepBuilderAPI_EdgeError* enumeration
The following example creates a rectangle centered on the origin of dimensions H, L with fillets of radius R. The edges and the vertices are stored in the arrays *theEdges* and *theVertices*. We use class *Array1OfShape* (i.e. not arrays of edges or vertices). See the image below.
@figure{/user_guides/modeling_algos/images/modeling_algos_image024.png, "Creating a Wire"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image024.png,"Creating a Wire",360}
~~~~~
#include <BRepBuilderAPI_MakeEdge.hxx>
@@ -1553,7 +1553,7 @@ Standard_Real umin,umax,vmin,vmax; // parameters
TopoDS_Face F = BRepBuilderAPI_MakeFace(S,umin,umax,vmin,vmax);
~~~~~
@figure{/user_guides/modeling_algos/images/modeling_algos_image025.png, "Basic Face Construction"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image025.png,"Basic Face Construction",360}
To make a face from the natural boundary of a surface, the parameters are not required:
@@ -1771,7 +1771,7 @@ TopoDS_Solid theBox = BRepPrimAPI_MakeBox(10.,20.,30.);
The four methods to build a box are shown in the figure:
@figure{/user_guides/modeling_algos/images/modeling_algos_image026.png, "Making Boxes"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image026.png,"Making Boxes",420}
@subsubsection occt_modalg_4_1_2 Wedge
*BRepPrimAPI_MakeWedge* class allows building a wedge, which is a slanted box, i.e. a box with angles. The wedge is constructed in much the same way as a box i.e. from three dimensions dx,dy,dz plus arguments or from an axis system, three dimensions, and arguments.
@@ -1781,7 +1781,7 @@ The following figure shows two ways to build wedges. One is to add a dimension
The first method is a particular case of the second with *xmin = 0, xmax = ltx, zmin = 0, zmax = dz*.
To make a centered pyramid you can use *xmin = xmax = dx / 2, zmin = zmax = dz / 2*.
@figure{/user_guides/modeling_algos/images/modeling_algos_image027.png, "Making Wedges"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image027.png,"Making Wedges",420}
@subsubsection occt_modalg_4_1_3 Rotation object
*BRepPrimAPI_MakeOneAxis* is a deferred class used as a root class for all classes constructing rotational primitives. Rotational primitives are created by rotating a curve around an axis. They cover the cylinder, the cone, the sphere, the torus, and the revolution, which provides all other curves.
@@ -1794,7 +1794,7 @@ The particular constructions of these primitives are described, but they all ha
The result of the OneAxis construction is a Solid, a Shell, or a Face. The face is the face covering the rotational surface. Remember that you will not use the OneAxis directly but one of the derived classes, which provide improved constructions. The following figure illustrates the OneAxis arguments.
@figure{/user_guides/modeling_algos/images/modeling_algos_image028.png, "MakeOneAxis arguments"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image028.png,"MakeOneAxis arguments",360}
@subsubsection occt_modalg_4_1_4 Cylinder
*BRepPrimAPI_MakeCylinder* class allows creating cylindrical primitives. A cylinder is created either in the default coordinate system or in a given coordinate system *gp_Ax2*. There are two constructions:
@@ -1813,7 +1813,7 @@ axes.Translate(gp_Vec(X,Y,Z));
TopoDS_Face F =
BRepPrimAPI_MakeCylinder(axes,R,DY,PI/2.);
~~~~~
@figure{/user_guides/modeling_algos/images/modeling_algos_image029.png, "Cylinder"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image029.png,"Cylinder",360}
@subsubsection occt_modalg_4_1_5 Cone
*BRepPrimAPI_MakeCone* class allows creating conical primitives. Like a cylinder, a cone is created either in the default coordinate system or in a given coordinate system (gp_Ax2). There are two constructions:
@@ -1828,7 +1828,7 @@ Standard_Real R1 = 30, R2 = 10, H = 15;
TopoDS_Solid S = BRepPrimAPI_MakeCone(R1,R2,H);
~~~~~
@figure{/user_guides/modeling_algos/images/modeling_algos_image030.png, "Cone"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image030.png,"Cone",360}
@subsubsection occt_modalg_4_1_6 Sphere
*BRepPrimAPI_MakeSphere* class allows creating spherical primitives. Like a cylinder, a sphere is created either in the default coordinate system or in a given coordinate system *gp_Ax2*. There are four constructions:
@@ -1851,7 +1851,7 @@ TopoDS_Solid S4 = BRepPrimAPI_MakeSphere(R,a1,a2,ang);
Note that we could equally well choose to create Shells instead of Solids.
@figure{/user_guides/modeling_algos/images/modeling_algos_image031.png, "Examples of Spheres"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image031.png,"Examples of Spheres",420}
@subsubsection occt_modalg_4_1_7 Torus
@@ -1862,7 +1862,7 @@ Note that we could equally well choose to create Shells instead of Solids.
* Two radii and two angles -- builds a wraparound torus segment between two radial planes. The angles a1, a2 must follow the relation 0 < a2 - a1 < 2*PI.
* Two radii and three angles -- a combination of two previous methods builds a portion of torus segment.
@figure{/user_guides/modeling_algos/images/modeling_algos_image032.png, "Examples of Tori"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image032.png,"Examples of Tori",420}
The following code builds four toroidal shells from two radii and three angles.
@@ -1902,7 +1902,7 @@ Sweeps are the objects you obtain by sweeping a **profile** along a **path**. T
It is forbidden to sweep Solids and Composite Solids. A Compound generates a Compound with the sweep of all its elements.
@figure{/user_guides/modeling_algos/images/modeling_algos_image033.png, "Generating a sweep"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image033.png,"Generating a sweep",360}
*BRepPrimAPI_MakeSweep class* is a deferred class used as a root of the the following sweep classes:
* *BRepPrimAPI_MakePrism* -- produces a linear sweep
@@ -1932,7 +1932,7 @@ TopoDS_Solid P3 = BRepPrimAPI_MakePrism(F,direc,Standard_False);
// semi-infinite
~~~~~
@figure{/user_guides/modeling_algos/images/modeling_algos_image034.png, "Finite, infinite, and semi-infinite prisms"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image034.png,"Finite, infinite, and semi-infinite prisms",420}
@subsubsection occt_modalg_4_2_3 Rotational Sweep
*BRepPrimAPI_MakeRevol* class allows creating a rotational sweep from a shape, an axis (gp_Ax1), and an angle. The angle has a default value of 2*PI which means a closed revolution.
@@ -1948,7 +1948,7 @@ TopoDS_Solid R1 = BRepPrimAPI_MakeRevol(F,axis);
TopoDS_Solid R2 = BRepPrimAPI_MakeRevol(F,axis,ang);
~~~~~
@figure{/user_guides/modeling_algos/images/modeling_algos_image035.png, "Full and partial rotation"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image035.png,"Full and partial rotation",420}
@section occt_modalg_5 Boolean Operations
@@ -1960,7 +1960,7 @@ Boolean operations are used to create new shapes from the combinations of two s
| Common | all points in S1 and S2 |
| Cut S1 by S2| all points in S1 and not in S2 |
@figure{/user_guides/modeling_algos/images/modeling_algos_image036.png, "Boolean Operations"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image036.png,"Boolean Operations",420}
From the viewpoint of Topology these are topological operations followed by blending (putting fillets onto edges created after the topological operation).
@@ -2011,7 +2011,7 @@ TopoDS_Shape S = BRepAlgoAPI_Cut(A,B);
*BRepAlgoAPI_Section* performs the section, described as a *TopoDS_Compound* made of *TopoDS_Edge*.
@figure{/user_guides/modeling_algos/images/modeling_algos_image037.png, "Section operation"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image037.png,"Section operation",220}
~~~~~
TopoDS_Shape A = ..., TopoDS_ShapeB = ...;
@@ -2039,7 +2039,7 @@ To produce a fillet, it is necessary to define the filleted shape at the constru
A fillet description contains an edge and a radius. The edge must be shared by two faces. The fillet is automatically extended to all edges in a smooth continuity with the original edge. It is not an error to add a fillet twice, the last description holds.
@figure{/user_guides/modeling_algos/images/modeling_algos_image038.png, "Filleting two edges using radii r1 and r2."}
@figure{/user_guides/modeling_algos/images/modeling_algos_image038.png,"Filleting two edges using radii r1 and r2.",360}
In the following example a filleted box with dimensions a,b,c and radius r is created.
@@ -2073,7 +2073,7 @@ TopoDS_Shape FilletedBox(const Standard_Real a,
}
~~~~~
@figure{/user_guides/modeling_algos/images/modeling_algos_image039.png, "Fillet with constant radius"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image039.png,"Fillet with constant radius",360}
#### Changing radius
@@ -2101,7 +2101,7 @@ void CSampleTopologicalOperationsDoc::OnEvolvedblend1()
}
~~~~~
@figure{/user_guides/modeling_algos/images/modeling_algos_image040.png, "Fillet with changing radius"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image040.png,"Fillet with changing radius",360}
@subsection occt_modalg_6_1_2 Chamfer
@@ -2116,7 +2116,7 @@ Add(dist, E, F)
Add(d1, d2, E, F) with d1 on the face F.
~~~~~
@figure{/user_guides/modeling_algos/images/modeling_algos_image041.png, "Chamfer"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image041.png,"Chamfer",360}
@subsection occt_modalg_6_1_3 Fillet on a planar face
@@ -2239,7 +2239,7 @@ if (SolidMaker.IsDone())
Result = SolidMaker.Shape();
~~~~~
@figure{/user_guides/modeling_algos/images/modeling_algos_image042.png, "Shelling"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image042.png,"Shelling",420}
Also it is possible to create solid between shell, offset shell. This functionality can be called using *BRepOffsetAPI_MakeThickSolid::MakeThickSolidBySimple* method. The code below shows usage example:
@@ -2300,7 +2300,7 @@ else {
}
~~~~~
@figure{/user_guides/modeling_algos/images/modeling_algos_image043.png, "DraftAngle"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image043.png,"DraftAngle",420}
@subsection occt_modalg_7_4 Pipe Constructor
@@ -2314,7 +2314,7 @@ TopoDS_Shape Profile = ...;
TopoDS_Shape Pipe = BRepOffsetAPI_MakePipe(Spine,Profile);
~~~~~
@figure{/user_guides/modeling_algos/images/modeling_algos_image044.png, "Example of a Pipe"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image044.png,"Example of a Pipe",320}
@subsection occt_modalg_7_5 Evolved Solid
@@ -2345,7 +2345,7 @@ BRepOffsetAPI_MakeEvolved(Spine,Profile);
Sewing allows creation of connected topology (shells and wires) from a set of separate topological elements (faces and edges). For example, Sewing can be used to create of shell from a compound of separate faces.
@figure{/user_guides/modeling_algos/images/modeling_algos_image045.png, "Shapes with partially shared edges"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image045.png,"Shapes with partially shared edges",320}
It is important to distinguish between sewing and other procedures, which modify the geometry, such as filling holes or gaps, gluing, bending curves and surfaces, etc.
@@ -2531,9 +2531,9 @@ if (thePrism.IsDone()) {
}
~~~~~
@figure{/user_guides/modeling_algos/images/modeling_algos_image047.png, "Fusion with MakePrism"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image047.png,"Fusion with MakePrism",320}
@figure{/user_guides/modeling_algos/images/modeling_algos_image048.png, "Creating a prism between two faces with Perform(From, Until)"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image048.png,"Creating a prism between two faces with Perform()",320}
@subsubsection occt_modalg_9_1_2 Draft Prism
@@ -2586,7 +2586,7 @@ MKDP.Perform(200);
TopoDS_Shape res1 = MKDP.Shape();
~~~~~
@figure{/user_guides/modeling_algos/images/modeling_algos_image049.png, "A tapered prism"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image049.png,"A tapered prism",320}
@subsubsection occt_modalg_9_1_3 Revolution
@@ -2696,7 +2696,7 @@ MKPipe.Perform();
TopoDS_Shape res1 = MKPipe.Shape();
~~~~~
@figure{/user_guides/modeling_algos/images/modeling_algos_image050.png, "Pipe depression"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image050.png,"Pipe depression",240}
@subsection occt_modalg_9_2 Mechanical Features
@@ -2756,7 +2756,7 @@ aform.Perform();
TopoDS_Shape res = aform.Shape();
~~~~~
@figure{/user_guides/modeling_algos/images/modeling_algos_image051.png, "Creating a rib"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image051.png,"Creating a rib",240}
@subsubsection occt_modalg_9_2_3 Gluer
@@ -2840,13 +2840,13 @@ However, there some restrictions in HLR use:
* Infinite faces or lines are not processed.
@figure{/user_guides/modeling_algos/images/modeling_algos_image052.png, "Sharp, smooth and sewn edges in a simple screw shape"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image052.png,"Sharp, smooth and sewn edges in a simple screw shape",320}
@figure{/user_guides/modeling_algos/images/modeling_algos_image053.png, "Outline edges and isoparameters in the same shape"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image053.png,"Outline edges and isoparameters in the same shape",320}
@figure{/user_guides/modeling_algos/images/modeling_algos_image054.png, "A simple screw shape seen with shading"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image054.png,"A simple screw shape seen with shading",320}
@figure{/user_guides/modeling_algos/images/modeling_algos_image055.png, "An extraction showing hidden sharp edges"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image055.png,"An extraction showing hidden sharp edges",320}
The following services are related to Hidden Lines Removal :
@@ -3017,11 +3017,11 @@ At the first step all edges from a face are discretized according to the specifi
At the second step, the faces are tessellated. Linear deflection limits the distance between a curve and its tessellation, whereas angular deflection limits the angle between subsequent segments in a polyline.
@figure{/user_guides/modeling_algos/images/modeling_algos_image056.png, "Deflection parameters of BRepMesh_IncrementalMesh algorithm"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image056.png,"Deflection parameters of BRepMesh_IncrementalMesh algorithm",420}
Linear deflection limits the distance between triangles and the face interior.
@figure{/user_guides/modeling_algos/images/modeling_algos_image057.png, "Linear deflection"}
@figure{/user_guides/modeling_algos/images/modeling_algos_image057.png,"Linear deflection",420}
Note that if a given value of linear deflection is less than shape tolerance then the algorithm will skip this value and will take into account the shape tolerance.
@@ -3034,3 +3034,4 @@ However, an application that imports models created in other applications may no
Meshing covers a shape with a triangular mesh. Other than hidden line removal, you can use meshing to transfer the shape to another tool: a manufacturing tool, a shading algorithm, a finite element algorithm, or a collision algorithm.
You can obtain information on the shape by first exploring it. To access triangulation of a face in the shape later, use *BRepTool::Triangulation*. To access a polygon, which is the approximation of an edge of the face, use *BRepTool::PolygonOnTriangulation*.