Anonymous | Login | 2021-03-01 19:52 MSK | ![]() |
My View | View Issues | Change Log | Roadmap |
View Revisions: Issue #22642 | [ All Revisions ] [ Back to Issue ] | ||
Summary | 0022642: Refactoring of ShapeFix_Wire::FixIntersectingEdges | ||
Revision | 2012-01-12 18:26 by ssv | ||
Description | This issue has been detected during processing of ACIS22625. Currently ShapeFix_Shape tool performs shape healing for TopoDS Shells with ModifyTopologyMode flag set to 0 in the underlying ShapeFix_Wire tool. In case of self-intersecting input wire this leads to increasing of tolerance for the problematic vertices. As DTE utilizes Shape Healing functionality with some maximum acceptable tolerance, this often leads to the fact that Shape Healing actually does nothing (as the calculated resolution tolerance exceeds the maximum one). This Bug is a proposition to turn ON the ModifyTopologyMode flag for Shell entities (as we have for TopoDS Faces). Such modification, however, leads to necessity of refactoring of ShapeFix_Wire::FixIntersectingEdges method (at least). The following points need to be revised: - Usage of ShapeBuild_ReShape tool must be introduced in FixIntersectingEdges routine. Thus we can replace the truncated edges with equivalent wires in the adjacent faces and keep them consistent so; - Currently existing algorithm demonstrates quite strange behaviour on the problematic face: while first intersection point is processed correctly (vertex is shifted, curve is reparameterized), the second intersection point (actually, with a symmetrical nature) is fixed via tolerance increasing, rather than via vertex shifting. It looks like FixIntersectingEdges algorithm is not well formed to proceed with some specific cases. We can suggest preliminary invocation of ShapeFix_Edge::FixSameParameter on each processed edge before the algorithm starts; - One of the algorithm's execution branches consists in tolerance increasing, notably when the problematic edge cannot be truncated. As well as for ModifyTopologyMode == 0 mode, the resulting tolerance value might become greater than the maximum allowed one. However, algorithm finishes successfully in contrast with similar situation for ModifyTopologyMode == 0; Use the attached brep to reproduce the issue. DRAW commands: DRAWEXE pload ALL restore ss_47.brep f fixshape ff f -l -o -h -m -d -s +i -n checksh ff |
||
Revision | 2011-07-12 18:59 by ssv | ||
Description | This issue has been detected during processing of ACIS22625. Currently ShapeFix_Shape tool performs shape healing for TopoDS Shells with ModifyTopologyMode flag set to 0 in the underlying ShapeFix_Wire tool. In case of self-intersecting input wire this leads to increasing of tolerance for the problematic vertices. As DTE utilizes Shape Healing functionality with some maximum acceptable tolerance, this often leads to the fact that Shape Healing actually does nothing (as the calculated resolution tolerance exceeds the maximum one). This Bug is a proposition to turn ON the ModifyTopologyMode flag for Shell entities (as we have for TopoDS Faces). Such modification, however, leads to necessity of refactoring of ShapeFix_Wire::FixIntersectingEdges method (at least). The following points need to be revised: - Usage of ShapeBuild_ReShape tool must be introduced in FixIntersectingEdges routine. Thus we can replace the truncated edges with equivalent wires in the adjacent faces and keep them consistent so; - Currently existing algorithm demonstrates quite strange behaviour on the problematic face: while first intersection point is processed correctly (vertex is shifted, curve is reparameterized), the second intersection point (actually, with a symmetrical nature) is fixed via tolerance increasing, rather than via vertex shifting. It looks like FixIntersectingEdges algorithm is not well formed to proceed with some specific cases. We can suggest preliminary invocation of ShapeFix_Edge::FixSameParameter on each processed edge before the algorithm starts; - One of the algorithm's execution branches consists in tolerance increasing, notably when the problematic edge cannot be truncated. As well as for ModifyTopologyMode == 0 mode, the resulting tolerance value might become greater than the maximum allowed one. However, algorithm finishes successfully in contrast with similar situation for ModifyTopologyMode == 0; Use the attached brep to reproduce the issue. DRAW commands: DRAWEXE pload ALL restore ss_47.brep sh fixshape fsh sh -l -o -h -m -d -s +i -n checksh sh |
Copyright © 2000 - 2021 MantisBT Team |