mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-04 13:13:25 +03:00
0028347: Reuse OCCT implementation for producing end-user documentation for Products
Updated destination directory for generated by gendoc proc pdf files. Added additional option "-update_images_size" for gendoc procedure to update width of images in *.md files during pdf generation for @figure alias. Documentation was updated to use alias @figure instead of outdated @image Added support of svg image format in procedure OCCDoc_UpdateImagesSize. Added generation of overview for product components. Added generation of products refman/chm for each component.
This commit is contained in:
@@ -28,13 +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.
|
||||
|
||||
@image html /user_guides/modeling_algos/images/modeling_algos_image003.png "Intersection and self-intersection of curves"
|
||||
@image latex /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"}
|
||||
|
||||
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.*
|
||||
|
||||
@image html /user_guides/modeling_algos/images/modeling_algos_image004.png "Intersection and tangent intersection"
|
||||
@image latex /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"}
|
||||
|
||||
The algorithm returns a point in the case of an intersection and a segment in the case of tangent intersection.
|
||||
|
||||
@@ -266,21 +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").
|
||||
|
||||
@image html /user_guides/modeling_algos/images/modeling_algos_image006.png "Exterior/Interior of a Circle"
|
||||
@image latex /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"}
|
||||
|
||||
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:
|
||||
|
||||
@image html /user_guides/modeling_algos/images/modeling_algos_image007.png "Exterior/Interior of a Line and a Curve"
|
||||
@image latex /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"}
|
||||
|
||||
#### 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.
|
||||
|
||||
@image html /user_guides/modeling_algos/images/modeling_algos_image008.png "An Oriented Line"
|
||||
@image latex /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"}
|
||||
|
||||
|
||||
#### Line tangent to two circles
|
||||
@@ -289,8 +284,7 @@ The following four diagrams illustrate four cases of using qualifiers in the cr
|
||||
|
||||
**Example 1 Case 1**
|
||||
|
||||
@image html /user_guides/modeling_algos/images/modeling_algos_image009.png "Both circles outside"
|
||||
@image latex /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"}
|
||||
|
||||
Constraints:
|
||||
Tangent and Exterior to C1.
|
||||
@@ -307,8 +301,7 @@ GccAna_Lin2d2Tan
|
||||
|
||||
**Example 1 Case 2**
|
||||
|
||||
@image html /user_guides/modeling_algos/images/modeling_algos_image010.png "Both circles enclosed"
|
||||
@image latex /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"}
|
||||
|
||||
Constraints:
|
||||
Tangent and Including C1.
|
||||
@@ -325,8 +318,7 @@ GccAna_Lin2d2Tan
|
||||
|
||||
**Example 1 Case 3**
|
||||
|
||||
@image html /user_guides/modeling_algos/images/modeling_algos_image011.png "C1 enclosed, C2 outside"
|
||||
@image latex /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, C2 outside"}
|
||||
|
||||
Constraints:
|
||||
Tangent and Including C1.
|
||||
@@ -342,8 +334,7 @@ GccAna_Lin2d2Tan
|
||||
|
||||
**Example 1 Case 4**
|
||||
|
||||
@image html /user_guides/modeling_algos/images/modeling_algos_image012.png "C1 outside, C2 enclosed"
|
||||
@image latex /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, C2 enclosed"}
|
||||
Constraints:
|
||||
Tangent and Exterior to C1.
|
||||
Tangent and Including C2.
|
||||
@@ -358,8 +349,7 @@ GccAna_Lin2d2Tan
|
||||
|
||||
**Example 1 Case 5**
|
||||
|
||||
@image html /user_guides/modeling_algos/images/modeling_algos_image013.png "With no qualifiers specified"
|
||||
@image latex /user_guides/modeling_algos/images/modeling_algos_image013.png "With no qualifiers specified"
|
||||
@figure{/user_guides/modeling_algos/images/modeling_algos_image013.png, "With no qualifiers specified"}
|
||||
|
||||
Constraints:
|
||||
Tangent and Undefined with respect to C1.
|
||||
@@ -377,8 +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**
|
||||
@image html /user_guides/modeling_algos/images/modeling_algos_image014.png "Both solutions outside"
|
||||
@image latex /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"}
|
||||
|
||||
Constraints:
|
||||
Tangent and Exterior to C1.
|
||||
@@ -393,8 +382,7 @@ GccAna_Circ2d2TanRad
|
||||
|
||||
**Example 2 Case 2**
|
||||
|
||||
@image html /user_guides/modeling_algos/images/modeling_algos_image015.png "C2 encompasses C1"
|
||||
@image latex /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"}
|
||||
|
||||
Constraints:
|
||||
Tangent and Exterior to C1.
|
||||
@@ -408,8 +396,7 @@ GccAna_Circ2d2TanRad
|
||||
~~~~~
|
||||
|
||||
**Example 2 Case 3**
|
||||
@image html /user_guides/modeling_algos/images/modeling_algos_image016.png "Solutions enclose C2"
|
||||
@image latex /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"}
|
||||
|
||||
Constraints:
|
||||
Tangent and Exterior to C1.
|
||||
@@ -423,8 +410,7 @@ GccAna_Circ2d2TanRad
|
||||
~~~~~
|
||||
|
||||
**Example 2 Case 4**
|
||||
@image html /user_guides/modeling_algos/images/modeling_algos_image017.png "Solutions enclose C1"
|
||||
@image latex /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"}
|
||||
|
||||
Constraints:
|
||||
Tangent and Enclosing C1.
|
||||
@@ -592,8 +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.
|
||||
|
||||
@image html /user_guides/modeling_algos/images/modeling_algos_image018.png "Intersecting filleted edges with different radii leave a gap, is filled by a surface"
|
||||
@image latex /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, is filled by a surface"}
|
||||
|
||||
@subsubsection occt_modalg_2_5_5 Plate surfaces
|
||||
|
||||
@@ -700,8 +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.
|
||||
|
||||
@image html /user_guides/modeling_algos/images/modeling_algos_image020.png "Normals from a point to a curve"
|
||||
@image latex /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"}
|
||||
|
||||
The curve does not have to be a *Geom2d_TrimmedCurve*. The algorithm will function with any class inheriting *Geom2d_Curve*.
|
||||
|
||||
@@ -935,8 +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*.
|
||||
|
||||
@image html /user_guides/modeling_algos/images/modeling_algos_image021.png "Projection of normals from a point to a surface"
|
||||
@image latex /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"}
|
||||
|
||||
Note that the surface does not have to be of *Geom_RectangularTrimmedSurface* type.
|
||||
The algorithm will function with any class inheriting *Geom_Surface*.
|
||||
@@ -1340,8 +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.
|
||||
|
||||
@image html /user_guides/modeling_algos/images/modeling_algos_image022.png "Basic Edge Construction"
|
||||
@image latex /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"}
|
||||
|
||||
The following rules apply to the arguments:
|
||||
|
||||
@@ -1367,8 +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.
|
||||
|
||||
@image html /user_guides/modeling_algos/images/modeling_algos_image023.png "Infinite and Periodic Edges"
|
||||
@image latex /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"}
|
||||
|
||||
@subsubsection occt_modalg_3_2_2 Supplementary edge construction methods
|
||||
|
||||
@@ -1443,8 +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.
|
||||
|
||||
@image html /user_guides/modeling_algos/images/modeling_algos_image024.png "Creating a Wire"
|
||||
@image latex /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"}
|
||||
|
||||
~~~~~
|
||||
#include <BRepBuilderAPI_MakeEdge.hxx>
|
||||
@@ -1573,8 +1553,7 @@ Standard_Real umin,umax,vmin,vmax; // parameters
|
||||
TopoDS_Face F = BRepBuilderAPI_MakeFace(S,umin,umax,vmin,vmax);
|
||||
~~~~~
|
||||
|
||||
@image html /user_guides/modeling_algos/images/modeling_algos_image025.png "Basic Face Construction"
|
||||
@image latex /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"}
|
||||
|
||||
To make a face from the natural boundary of a surface, the parameters are not required:
|
||||
|
||||
@@ -1792,8 +1771,7 @@ TopoDS_Solid theBox = BRepPrimAPI_MakeBox(10.,20.,30.);
|
||||
|
||||
The four methods to build a box are shown in the figure:
|
||||
|
||||
@image html /user_guides/modeling_algos/images/modeling_algos_image026.png "Making Boxes"
|
||||
@image latex /user_guides/modeling_algos/images/modeling_algos_image026.png "Making Boxes"
|
||||
@figure{/user_guides/modeling_algos/images/modeling_algos_image026.png, "Making Boxes"}
|
||||
|
||||
@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.
|
||||
@@ -1803,8 +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*.
|
||||
|
||||
@image html /user_guides/modeling_algos/images/modeling_algos_image027.png "Making Wedges"
|
||||
@image latex /user_guides/modeling_algos/images/modeling_algos_image027.png "Making Wedges"
|
||||
@figure{/user_guides/modeling_algos/images/modeling_algos_image027.png, "Making Wedges"}
|
||||
|
||||
@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.
|
||||
@@ -1817,8 +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.
|
||||
|
||||
@image html /user_guides/modeling_algos/images/modeling_algos_image028.png "MakeOneAxis arguments"
|
||||
@image latex /user_guides/modeling_algos/images/modeling_algos_image028.png "MakeOneAxis arguments"
|
||||
@figure{/user_guides/modeling_algos/images/modeling_algos_image028.png, "MakeOneAxis arguments"}
|
||||
|
||||
@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:
|
||||
@@ -1837,8 +1813,7 @@ axes.Translate(gp_Vec(X,Y,Z));
|
||||
TopoDS_Face F =
|
||||
BRepPrimAPI_MakeCylinder(axes,R,DY,PI/2.);
|
||||
~~~~~
|
||||
@image html /user_guides/modeling_algos/images/modeling_algos_image029.png "Cylinder"
|
||||
@image latex /user_guides/modeling_algos/images/modeling_algos_image029.png "Cylinder"
|
||||
@figure{/user_guides/modeling_algos/images/modeling_algos_image029.png, "Cylinder"}
|
||||
|
||||
@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:
|
||||
@@ -1853,8 +1828,7 @@ Standard_Real R1 = 30, R2 = 10, H = 15;
|
||||
TopoDS_Solid S = BRepPrimAPI_MakeCone(R1,R2,H);
|
||||
~~~~~
|
||||
|
||||
@image html /user_guides/modeling_algos/images/modeling_algos_image030.png "Cone"
|
||||
@image latex /user_guides/modeling_algos/images/modeling_algos_image030.png "Cone"
|
||||
@figure{/user_guides/modeling_algos/images/modeling_algos_image030.png, "Cone"}
|
||||
|
||||
@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:
|
||||
@@ -1877,8 +1851,7 @@ TopoDS_Solid S4 = BRepPrimAPI_MakeSphere(R,a1,a2,ang);
|
||||
|
||||
Note that we could equally well choose to create Shells instead of Solids.
|
||||
|
||||
@image html /user_guides/modeling_algos/images/modeling_algos_image031.png "Examples of Spheres"
|
||||
@image latex /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"}
|
||||
|
||||
|
||||
@subsubsection occt_modalg_4_1_7 Torus
|
||||
@@ -1889,8 +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.
|
||||
|
||||
@image html /user_guides/modeling_algos/images/modeling_algos_image032.png "Examples of Tori"
|
||||
@image latex /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"}
|
||||
|
||||
The following code builds four toroidal shells from two radii and three angles.
|
||||
|
||||
@@ -1930,8 +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.
|
||||
|
||||
@image html /user_guides/modeling_algos/images/modeling_algos_image033.png "Generating a sweep"
|
||||
@image latex /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"}
|
||||
|
||||
*BRepPrimAPI_MakeSweep class* is a deferred class used as a root of the the following sweep classes:
|
||||
* *BRepPrimAPI_MakePrism* -- produces a linear sweep
|
||||
@@ -1961,8 +1932,7 @@ TopoDS_Solid P3 = BRepPrimAPI_MakePrism(F,direc,Standard_False);
|
||||
// semi-infinite
|
||||
~~~~~
|
||||
|
||||
@image html /user_guides/modeling_algos/images/modeling_algos_image034.png "Finite, infinite, and semi-infinite prisms"
|
||||
@image latex /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"}
|
||||
|
||||
@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.
|
||||
@@ -1978,8 +1948,7 @@ TopoDS_Solid R1 = BRepPrimAPI_MakeRevol(F,axis);
|
||||
TopoDS_Solid R2 = BRepPrimAPI_MakeRevol(F,axis,ang);
|
||||
~~~~~
|
||||
|
||||
@image html /user_guides/modeling_algos/images/modeling_algos_image035.png "Full and partial rotation"
|
||||
@image latex /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"}
|
||||
|
||||
@section occt_modalg_5 Boolean Operations
|
||||
|
||||
@@ -1991,8 +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 |
|
||||
|
||||
@image html /user_guides/modeling_algos/images/modeling_algos_image036.png "Boolean Operations"
|
||||
@image latex /user_guides/modeling_algos/images/modeling_algos_image036.png "Boolean Operations"
|
||||
@figure{/user_guides/modeling_algos/images/modeling_algos_image036.png, "Boolean Operations"}
|
||||
|
||||
From the viewpoint of Topology these are topological operations followed by blending (putting fillets onto edges created after the topological operation).
|
||||
|
||||
@@ -2043,8 +2011,7 @@ TopoDS_Shape S = BRepAlgoAPI_Cut(A,B);
|
||||
|
||||
*BRepAlgoAPI_Section* performs the section, described as a *TopoDS_Compound* made of *TopoDS_Edge*.
|
||||
|
||||
@image html /user_guides/modeling_algos/images/modeling_algos_image037.png "Section operation"
|
||||
@image latex /user_guides/modeling_algos/images/modeling_algos_image037.png "Section operation"
|
||||
@figure{/user_guides/modeling_algos/images/modeling_algos_image037.png, "Section operation"}
|
||||
|
||||
~~~~~
|
||||
TopoDS_Shape A = ..., TopoDS_ShapeB = ...;
|
||||
@@ -2072,8 +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.
|
||||
|
||||
@image html /user_guides/modeling_algos/images/modeling_algos_image038.png "Filleting two edges using radii r1 and r2."
|
||||
@image latex /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."}
|
||||
|
||||
In the following example a filleted box with dimensions a,b,c and radius r is created.
|
||||
|
||||
@@ -2107,8 +2073,7 @@ TopoDS_Shape FilletedBox(const Standard_Real a,
|
||||
}
|
||||
~~~~~
|
||||
|
||||
@image html /user_guides/modeling_algos/images/modeling_algos_image039.png "Fillet with constant radius"
|
||||
@image latex /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"}
|
||||
|
||||
#### Changing radius
|
||||
|
||||
@@ -2136,8 +2101,7 @@ void CSampleTopologicalOperationsDoc::OnEvolvedblend1()
|
||||
}
|
||||
~~~~~
|
||||
|
||||
@image html /user_guides/modeling_algos/images/modeling_algos_image040.png "Fillet with changing radius"
|
||||
@image latex /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"}
|
||||
|
||||
@subsection occt_modalg_6_1_2 Chamfer
|
||||
|
||||
@@ -2152,8 +2116,7 @@ Add(dist, E, F)
|
||||
Add(d1, d2, E, F) with d1 on the face F.
|
||||
~~~~~
|
||||
|
||||
@image html /user_guides/modeling_algos/images/modeling_algos_image041.png "Chamfer"
|
||||
@image latex /user_guides/modeling_algos/images/modeling_algos_image041.png "Chamfer"
|
||||
@figure{/user_guides/modeling_algos/images/modeling_algos_image041.png, "Chamfer"}
|
||||
|
||||
@subsection occt_modalg_6_1_3 Fillet on a planar face
|
||||
|
||||
@@ -2276,8 +2239,7 @@ if (SolidMaker.IsDone())
|
||||
Result = SolidMaker.Shape();
|
||||
~~~~~
|
||||
|
||||
@image html /user_guides/modeling_algos/images/modeling_algos_image042.png "Shelling"
|
||||
@image latex /user_guides/modeling_algos/images/modeling_algos_image042.png "Shelling"
|
||||
@figure{/user_guides/modeling_algos/images/modeling_algos_image042.png, "Shelling"}
|
||||
|
||||
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:
|
||||
|
||||
@@ -2338,8 +2300,7 @@ else {
|
||||
}
|
||||
~~~~~
|
||||
|
||||
@image html /user_guides/modeling_algos/images/modeling_algos_image043.png "DraftAngle"
|
||||
@image latex /user_guides/modeling_algos/images/modeling_algos_image043.png "DraftAngle"
|
||||
@figure{/user_guides/modeling_algos/images/modeling_algos_image043.png, "DraftAngle"}
|
||||
|
||||
@subsection occt_modalg_7_4 Pipe Constructor
|
||||
|
||||
@@ -2353,8 +2314,7 @@ TopoDS_Shape Profile = ...;
|
||||
TopoDS_Shape Pipe = BRepOffsetAPI_MakePipe(Spine,Profile);
|
||||
~~~~~
|
||||
|
||||
@image html /user_guides/modeling_algos/images/modeling_algos_image044.png "Example of a Pipe"
|
||||
@image latex /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"}
|
||||
|
||||
@subsection occt_modalg_7_5 Evolved Solid
|
||||
|
||||
@@ -2385,8 +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.
|
||||
|
||||
@image html /user_guides/modeling_algos/images/modeling_algos_image045.png "Shapes with partially shared edges"
|
||||
@image latex /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"}
|
||||
|
||||
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.
|
||||
|
||||
@@ -2572,11 +2531,9 @@ if (thePrism.IsDone()) {
|
||||
}
|
||||
~~~~~
|
||||
|
||||
@image html /user_guides/modeling_algos/images/modeling_algos_image047.png "Fusion with MakePrism"
|
||||
@image latex /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"}
|
||||
|
||||
@image html /user_guides/modeling_algos/images/modeling_algos_image048.png "Creating a prism between two faces with Perform(From, Until)"
|
||||
@image latex /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(From, Until)"}
|
||||
|
||||
@subsubsection occt_modalg_9_1_2 Draft Prism
|
||||
|
||||
@@ -2629,8 +2586,7 @@ MKDP.Perform(200);
|
||||
TopoDS_Shape res1 = MKDP.Shape();
|
||||
~~~~~
|
||||
|
||||
@image html /user_guides/modeling_algos/images/modeling_algos_image049.png "A tapered prism"
|
||||
@image latex /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"}
|
||||
|
||||
@subsubsection occt_modalg_9_1_3 Revolution
|
||||
|
||||
@@ -2740,8 +2696,7 @@ MKPipe.Perform();
|
||||
TopoDS_Shape res1 = MKPipe.Shape();
|
||||
~~~~~
|
||||
|
||||
@image html /user_guides/modeling_algos/images/modeling_algos_image050.png "Pipe depression"
|
||||
@image latex /user_guides/modeling_algos/images/modeling_algos_image050.png "Pipe depression"
|
||||
@figure{/user_guides/modeling_algos/images/modeling_algos_image050.png, "Pipe depression"}
|
||||
|
||||
@subsection occt_modalg_9_2 Mechanical Features
|
||||
|
||||
@@ -2801,8 +2756,7 @@ aform.Perform();
|
||||
TopoDS_Shape res = aform.Shape();
|
||||
~~~~~
|
||||
|
||||
@image html /user_guides/modeling_algos/images/modeling_algos_image051.png "Creating a rib"
|
||||
@image latex /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"}
|
||||
|
||||
@subsubsection occt_modalg_9_2_3 Gluer
|
||||
|
||||
@@ -2886,17 +2840,13 @@ However, there some restrictions in HLR use:
|
||||
* Infinite faces or lines are not processed.
|
||||
|
||||
|
||||
@image html /user_guides/modeling_algos/images/modeling_algos_image052.png "Sharp, smooth and sewn edges in a simple screw shape"
|
||||
@image latex /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"}
|
||||
|
||||
@image html /user_guides/modeling_algos/images/modeling_algos_image053.png "Outline edges and isoparameters in the same shape"
|
||||
@image latex /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"}
|
||||
|
||||
@image html /user_guides/modeling_algos/images/modeling_algos_image054.png "A simple screw shape seen with shading"
|
||||
@image latex /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"}
|
||||
|
||||
@image html /user_guides/modeling_algos/images/modeling_algos_image055.png "An extraction showing hidden sharp edges"
|
||||
@image latex /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"}
|
||||
|
||||
|
||||
The following services are related to Hidden Lines Removal :
|
||||
|
Reference in New Issue
Block a user