For all issues regarding the Forums use, please, refer to the Forum Rules.

Our Solutions

Need professional assistance?
Consider our:

Support Offerings

 

Need to speed up your development?
Have a look at our:

Samples & Tools

 

Need some functionality extending standard OCCT capabilities?
Check out our:

Adv. Components

BRepOffset_Offset and degenerate edges

Mauro Mariotti's picture
Forums: 

The following method

void BRepOffset_Offset::Init(const TopoDS_Face& Face,
const Standard_Real Offset,
const TopTools_DataMapOfShapeShape& Created,
const Standard_Boolean OffsetOutside,
const GeomAbs_JoinType JoinType)

manages the cases when the surface has a degenerate edge with V = VMin or V = VMax,
but not the similare cases for U!
I have a case when the degenerate edge is at U = Umin, which is wrongly treated as V = VMax; then an exception is raised because GeomAPI_ProjectPointOnCurve fails.

I cannot believe it.
Does it expect a parameter exchange before, to simplify the coding?

This is the call stack:
> TKOffset.dll!BRepOffset_Offset::Init(const TopoDS_Face & Face={...}, const double Offset=-10.000000000000000, const TopTools_DataMapOfShapeShape & Created={...}, const unsigned int OffsetOutside=0, GeomAbs_JoinType JoinType=GeomAbs_Arc) Line 567 C++
TKOffset.dll!BRepOffset_Offset::BRepOffset_Offset(const TopoDS_Face & Face={...}, const double Offset=-10.000000000000000, const TopTools_DataMapOfShapeShape & Created={...}, const unsigned int OffsetOutside=0, GeomAbs_JoinType JoinType=GeomAbs_Arc) Line 417 + 0x2a bytes C++
TKOffset.dll!BRepOffset_MakeOffset::BuildOffsetByArc() Line 1397 + 0x3d bytes C++
TKOffset.dll!BRepOffset_MakeOffset::MakeOffsetShape() Line 707 + 0xd bytes C++
TKOffset.dll!BRepOffsetAPI_MakeOffsetShape::Build() Line 78 C++
TKOffset.dll!BRepOffsetAPI_MakeOffsetShape::BRepOffsetAPI_MakeOffsetShape(const TopoDS_Shape & S={...}, const double Offset=-10.000000000000000, const double Tol=0.0010000000000000000, BRepOffset_Mode Mode=BRepOffset_Skin, const unsigned int Intersection=0, const unsigned int SelfInter=0, GeomAbs_JoinType Join=GeomAbs_Arc) Line 55 + 0xa bytes C++

Regards.
Mauro