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

0028828: Modeling Algorithms - New functionalities of BRepFilletAPI_MakeChamfer algorithm

Two new functionalities have been added in BRepFilletAPI_MakeChamfer:
- constant throat (the section of chamfer is isosceles triangle, its height is constant in all sections - this is the "throat" of the weld);
- constant throat with penetration(the section of chamfer is right-angled triangle, the first of two surfaces (where is the top of the chamfer) is virtually moved inside the solid by offset operation, the apex of the section is on the intersection curve between moved surface and second surface, right angle is at the top of the chamfer, the length of the leg from apex to top is constant - this is the "throat" of the weld).

- New abstract classes BlendFunc_GenChamfer and BlendFunc_GenChamfInv have been added;
- Class BlendFunc_Chamfer is now descended from BlendFunc_GenChamfer, class BlendFunc_ChamfInv is now descended from BlendFunc_GenChamfInv.
- New class BlendFunc_ConstThroat is descended from BlendFunc_GenChamfer, new class BlendFund_ConstThroatInv is descended from BlendFunc_GenChamfInv.
- New class BlendFunc_ConstThroatWithPenetration is descended from BlendFunc_GenChamfer, new class BlendFund_ConstThroatWithPenetrationInv is descended from BlendFunc_GenChamfInv.
- Class ChFi3d_ChBuilder has now mode of chamfer that can be ClassicChamfer, ConstThroatChamfer and ConstThroatWithPenetrationChamfer.
- Two new DRAW Test Harness commands "chamf_throat" ant "chamf_throat_with_penetration" have been added for the second mode of ChBuilder.
- The interface of DRAW Test Harness command "chamf" changed for symmetric case.
This commit is contained in:
jgv
2017-06-14 16:28:15 +03:00
committed by apn
parent 364c88864b
commit 1d54b80764
83 changed files with 5471 additions and 1510 deletions

View File

@@ -55,10 +55,9 @@ void BRepFilletAPI_MakeChamfer::Add(const TopoDS_Edge &E )
//=======================================================================
void BRepFilletAPI_MakeChamfer::Add(const Standard_Real Dis,
const TopoDS_Edge &E,
const TopoDS_Face &F)
const TopoDS_Edge &E)
{
myBuilder.Add(Dis, E, F);
myBuilder.Add(Dis, E);
}
@@ -162,12 +161,20 @@ void BRepFilletAPI_MakeChamfer::SetDistAngle(const Standard_Real Dis,
//================================================================
void BRepFilletAPI_MakeChamfer::GetDistAngle(const Standard_Integer IC,
Standard_Real& Dis,
Standard_Real& Angle,
Standard_Boolean& DisOnFace1) const
Standard_Real& Dis,
Standard_Real& Angle) const
{
myBuilder.GetDistAngle(IC, Dis, Angle, DisOnFace1);
myBuilder.GetDistAngle(IC, Dis, Angle);
}
//=======================================================================
//function : SetMode
//purpose :
//=======================================================================
void BRepFilletAPI_MakeChamfer::SetMode(const ChFiDS_ChamfMode theMode)
{
myBuilder.SetMode(theMode);
}
//=======================================================================

View File

@@ -62,9 +62,8 @@ public:
//! Adds edge E to the table of edges used by this
//! algorithm to build chamfers, where
//! the parameters of the chamfer are given by the two
//! distances Dis1 and Dis2; the face F identifies the side
//! where Dis1 is measured.
//! the parameters of the chamfer are given by
//! the distance Dis (symmetric chamfer).
//! The Add function results in a contour being built by
//! propagation from the edge E (i.e. the contour contains at
//! least this edge). This contour is composed of edges of
@@ -73,7 +72,7 @@ public:
//! series of faces being located on either side of the contour.
//! Warning
//! Nothing is done if edge E or the face F does not belong to the initial shape.
Standard_EXPORT void Add (const Standard_Real Dis, const TopoDS_Edge& E, const TopoDS_Face& F);
Standard_EXPORT void Add (const Standard_Real Dis, const TopoDS_Edge& E);
//! Sets the distances Dis1 and Dis2 which give the
//! parameters of the chamfer along the contour of index
@@ -87,9 +86,19 @@ public:
Standard_EXPORT void GetDist (const Standard_Integer IC, Standard_Real& Dis) const;
//! Adds a fillet contour in the builder (builds a
//! contour of tangent edges to <E> and sets the two
//! distances <Dis1> and <Dis2> ( parameters of the chamfer ) ).
//! Adds edge E to the table of edges used by this
//! algorithm to build chamfers, where
//! the parameters of the chamfer are given by the two
//! distances Dis1 and Dis2; the face F identifies the side
//! where Dis1 is measured.
//! The Add function results in a contour being built by
//! propagation from the edge E (i.e. the contour contains at
//! least this edge). This contour is composed of edges of
//! the shape which are tangential to one another and
//! which delimit two series of tangential faces, with one
//! series of faces being located on either side of the contour.
//! Warning
//! Nothing is done if edge E or the face F does not belong to the initial shape.
Standard_EXPORT void Add (const Standard_Real Dis1, const Standard_Real Dis2, const TopoDS_Edge& E, const TopoDS_Face& F);
//! Sets the distances Dis1 and Dis2 which give the
@@ -122,7 +131,10 @@ public:
//! gives the distances <Dis> and <Angle> of the fillet
//! contour of index <IC> in the DS
Standard_EXPORT void GetDistAngle (const Standard_Integer IC, Standard_Real& Dis, Standard_Real& Angle, Standard_Boolean& DisOnFace1) const;
Standard_EXPORT void GetDistAngle (const Standard_Integer IC, Standard_Real& Dis, Standard_Real& Angle) const;
//! Sets the mode of chamfer
Standard_EXPORT void SetMode (const ChFiDS_ChamfMode theMode);
//! return True if chamfer symetric false else.
Standard_EXPORT Standard_Boolean IsSymetric (const Standard_Integer IC) const;