View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0027459 | Community | OCCT:Modeling Algorithms | public | 2016-05-04 06:38 | 2022-04-25 18:24 |
Reporter | Vico Liang | Assigned To | |||
Priority | normal | Severity | crash | ||
Status | closed | Resolution | no change required | ||
Platform | Windows | OS | VC++ 2013 | ||
Product Version | 6.9.1 | ||||
Target Version | 7.7.0 | ||||
Summary | 0027459: Boolean fuse crash | ||||
Description | Boolean fuse two solids Body.brep and Cap.brep, the crash stack as below: KernelBase.dll!000007fefdc5b3dd() Unknown msvcr120d.dll!000007feddabc366() Unknown TKernel.dll!Standard_ConstructionError::Throw() Line 10 C++ TKernel.dll!Standard_Failure::Reraise() Line 153 C++ TKernel.dll!Standard_Failure::Reraise(const char * const AString) Line 136 C++ TKernel.dll!Standard_ConstructionError::Raise(const char * const AString) Line 10 C++ > TKBO.dll!BOPTools_AlgoTools2D::MakePCurveOnFace(const TopoDS_Face & aF, const Handle_Geom_Curve & aC3D, const double aT1, const double aT2, Handle_Geom2d_Curve & aC2D, double & TolReached2d) Line 677 C++ TKBO.dll!BOPTools_AlgoTools2D::Make2D(const TopoDS_Edge & aE, const TopoDS_Face & aF, Handle_Geom2d_Curve & aC2D, double & aFirst, double & aLast, double & aToler) Line 585 C++ TKBO.dll!BOPTools_AlgoTools2D::CurveOnSurface(const TopoDS_Edge & aE, const TopoDS_Face & aF, Handle_Geom2d_Curve & aC2D, double & aFirst, double & aLast, double & aToler) Line 226 C++ TKBO.dll!BOPTools_AlgoTools2D::PointOnSurface(const TopoDS_Edge & aE, const TopoDS_Face & aF, const double aParameter, double & U, double & V) Line 181 C++ TKBO.dll!IsInside(const TopoDS_Shape & theHole, const TopoDS_Shape & theF2, Handle_IntTools_Context & theContext) Line 850 C++ TKBO.dll!BOPAlgo_BuilderFace::PerformInternalShapes() Line 737 C++ TKBO.dll!BOPAlgo_BuilderFace::Perform() Line 248 C++ TKBO.dll!tbb::internal::parallel_for_body<BOPCol_Functor<BOPAlgo_BuilderFace,BOPCol_NCVector<BOPAlgo_BuilderFace> >,int>::operator()(const tbb::blocked_range<int> & r) Line 163 C++ TKBO.dll!tbb::interface7::internal::partition_type_base<tbb::interface7::internal::auto_partition_type>::execute<tbb::interface7::internal::start_for<tbb::blocked_range<int>,tbb::internal::parallel_for_body<BOPCol_Functor<BOPAlgo_BuilderFace,BOPCol_NCVector<BOPAlgo_BuilderFace> >,int>,tbb::auto_partitioner const >,tbb::blocked_range<int> >(tbb::interface7::internal::start_for<tbb::blocked_range<int>,tbb::internal::parallel_for_body<BOPCol_Functor<BOPAlgo_BuilderFace,BOPCol_NCVector<BOPAlgo_BuilderFace> >,int>,tbb::auto_partitioner const > & start, tbb::blocked_range<int> & range) Line 251 C++ TKBO.dll!tbb::interface7::internal::start_for<tbb::blocked_range<int>,tbb::internal::parallel_for_body<BOPCol_Functor<BOPAlgo_BuilderFace,BOPCol_NCVector<BOPAlgo_BuilderFace> >,int>,tbb::auto_partitioner const >::execute() Line 128 C++ tbb_debug.dll!tbb::internal::custom_scheduler<tbb::internal::IntelSchedulerTraits>::local_wait_for_all(tbb::task & parent, tbb::task * child) Line 463 C++ tbb_debug.dll!tbb::internal::arena::process(tbb::internal::generic_scheduler & s) Line 117 C++ tbb_debug.dll!tbb::internal::market::process(rml::job & j) Line 495 C++ tbb_debug.dll!tbb::internal::rml::private_worker::run() Line 276 C++ tbb_debug.dll!tbb::internal::rml::private_worker::thread_routine(void * arg) Line 229 C++ [External Code] | ||||
Steps To Reproduce | void BOPTools_AlgoTools2D::MakePCurveOnFace (const TopoDS_Face& aF, const Handle(Geom_Curve)& aC3D, const Standard_Real aT1, const Standard_Real aT2, Handle(Geom2d_Curve)& aC2D, Standard_Real& TolReached2d) { Standard_Real aTolR, aT; Standard_Real aUMin, aUMax, aVMin, aVMax; Handle(Geom2d_Curve) aC2DA; Handle(GeomAdaptor_HSurface) aBAHS; Handle(GeomAdaptor_HCurve) aBAHC; Handle(Geom_Surface) aS; // BRepAdaptor_Surface aBAS(aF, Standard_True); aUMin=aBAS.FirstUParameter(); aUMax=aBAS.LastUParameter(); aVMin=aBAS.FirstVParameter(); aVMax=aBAS.LastVParameter(); aS=aBAS.Surface().Surface(); aS=Handle(Geom_Surface)::DownCast(aS->Transformed(aBAS.Trsf())); GeomAdaptor_Surface aGAS(aS, aUMin, aUMax, aVMin, aVMax); // aBAHS=new GeomAdaptor_HSurface(aGAS); aBAHC=new GeomAdaptor_HCurve(aC3D, aT1, aT2); // //when the type of surface is GeomAbs_SurfaceOfRevolution if (aGAS.GetType() == GeomAbs_SurfaceOfRevolution) { Standard_Real aTR; // aTR=Precision::Confusion();//1.e-7; if (TolReached2d > aTR) { aTR=TolReached2d; } // ProjLib_ProjectedCurve aProj1(aBAHS, aBAHC, aTR); BOPTools_AlgoTools2D::MakePCurveOfType(aProj1, aC2D); aTolR = aProj1.GetTolerance(); } else { ProjLib_ProjectedCurve aProjCurv(aBAHS, aBAHC);// 1 BOPTools_AlgoTools2D::MakePCurveOfType(aProjCurv, aC2D); aTolR=aProjCurv.GetTolerance(); } // if (aC2D.IsNull()) { ProjLib_ProjectedCurve aProjCurvAgain(aBAHS, aBAHC, TolReached2d);// 2 BOPTools_AlgoTools2D::MakePCurveOfType(aProjCurvAgain, aC2D); aTolR = aProjCurvAgain.GetTolerance(); // if (aC2D.IsNull()) { Standard_Real aTR=0.0001; ProjLib_ProjectedCurve aProj3(aBAHS, aBAHC, aTR);// 3 BOPTools_AlgoTools2D::MakePCurveOfType(aProj3, aC2D); aTolR = aProj3.GetTolerance(); } } // if(aC2D.IsNull()) { Standard_ConstructionError::Raise("BOPTools_AlgoTools2D::MakePCurveOnFace : PCurve is Null"); } | ||||
Tags | No tags attached. | ||||
Test case number | |||||
related to | 0032947 | new | Modeling Algoritms - BO fuse produces wrong result |
|
Body.brep (4,088,840 bytes) |
|
Cap.brep (442,637 bytes) |
|
Initial behavior of this case is not reproduced. Now result can be built, but with some problems: Draw[62]> bfuse r Body Cap Warning: Some sub-shapes of some of the argument become connected through other shapes and the argument became self-interfered Warning: Unable to orient the shape correctly Warning: Some of the edges passed to the Face Builder algorithm have not been classified and not used for faces creation Warning: Some of the faces passed to the Solid Builder algorithm have not been classified and not used for solids creation Draw[63]> checkshape r On Shape faulty_1 : BRepCheck_SelfIntersectingWire On Shape faulty_2 : BRepCheck_UnorientableShape Shape faulty_1 on shape faulty_2 : BRepCheck_SelfIntersectingWire On Shape faulty_3 : BRepCheck_SelfIntersectingWire On Shape faulty_4 : BRepCheck_UnorientableShape Shape faulty_3 on shape faulty_4 : BRepCheck_SelfIntersectingWire Faulty shapes in variables faulty_1 to faulty_4 I think, that this issue can be closed and new issue can be reported with new description of problem. Picture with current result is attached. |
|
Screenshot 2022-04-22 102812.png (51,424 bytes) |
|
I close this issue. The main problem (crash) is absent. The problem with algorithms will be processed in scope of separate issue 0032947. |
Date Modified | Username | Field | Change |
---|---|---|---|
2016-05-04 06:38 | Vico Liang | New Issue | |
2016-05-04 06:38 | Vico Liang | Assigned To | => msv |
2016-05-04 06:38 | Vico Liang | File Added: Body.brep | |
2016-05-04 06:38 | Vico Liang | File Added: Cap.brep | |
2016-10-28 17:03 |
|
Target Version | 7.1.0 => 7.2.0 |
2017-07-21 11:34 |
|
Target Version | 7.2.0 => 7.3.0 |
2017-12-05 17:01 |
|
Target Version | 7.3.0 => 7.4.0 |
2019-08-12 16:37 |
|
Target Version | 7.4.0 => 7.5.0 |
2020-09-14 22:56 |
|
Target Version | 7.5.0 => 7.6.0 |
2021-08-29 18:53 |
|
Target Version | 7.6.0 => 7.7.0 |
2022-04-21 10:45 |
|
Assigned To | msv => ifv |
2022-04-21 10:45 |
|
Status | new => assigned |
2022-04-22 10:27 |
|
Assigned To | ifv => azv |
2022-04-22 10:27 |
|
Status | assigned => feedback |
2022-04-22 10:27 |
|
Note Added: 0108102 | |
2022-04-22 10:29 |
|
Note Added: 0108103 | |
2022-04-22 10:29 |
|
File Added: Screenshot 2022-04-22 102812.png | |
2022-04-22 11:32 |
|
Relationship added | related to 0032947 |
2022-04-22 12:19 |
|
Time allocated | 21.4.2022: 4 h. => set |
2022-04-25 18:24 |
|
Assigned To | azv => ifv |
2022-04-25 18:24 |
|
Status | feedback => closed |
2022-04-25 18:24 |
|
Resolution | open => no change required |
2022-04-25 18:24 |
|
Note Added: 0108170 |