MantisBT - Open CASCADE
View Issue Details
0026740Open CASCADE[OCCT] OCCT:Modeling Algorithmspublic2015-10-01 15:572019-09-04 12:11
nbv 
msv 
normalminor 
assignedopen 
 
[OCCT] Unscheduled 
0026740: Modeling Algorithms - Incorrect result of blend operation in "blend simple X4" test case
Theoretically, curve l must tangent line AB in point C (see master_result.png attached picture). Therefore, it is necessary for resulting shape to have a vertex in point C in order to be valid. This vertex is absence.

More over, if we insert this vertex in the place C then the part of the current result from A to C must be absence (i.e. the filet must be made for red highlighted edge in source_shape.png file only).
test blend simple X4
No tags attached.
related to 0026675closed bugmaster Open CASCADE Eliminate normalization of coordinates in ApproxInt package 
related to 0026907assigned jgv Open CASCADE ChFi3d_Builder algorithm uses old Boolean operations: wrong processing of shapes with seam and degenerated edges 
related to 0028575assigned emv Open CASCADE Removal of the old Boolean Operations algorithm - BRepAlgo_BooleanOperation 
related to 0026655new msv Open CASCADE ChFi3d_Builder algorithm fails to build fillets if some input edges connect with seam edges 
png master_result.png (17,059) 2015-10-01 15:57
https://tracker.dev.opencascade.org/
png source_shape.PNG (31,930) 2015-10-01 15:58
https://tracker.dev.opencascade.org/
Issue History
2015-10-01 15:57nbvNew Issue
2015-10-01 15:57nbvAssigned To => msv
2015-10-01 15:57nbvFile Added: master_result.png
2015-10-01 15:57nbvAssigned Tomsv => nbv
2015-10-01 15:58nbvFile Added: source_shape.PNG
2015-10-01 16:14nbvNote Added: 0046377
2015-10-01 16:16nbvRelationship addedrelated to 0026675
2015-10-01 18:01msvStatusnew => assigned
2015-10-01 18:25nbvNote Added: 0046385
2015-10-01 18:26nbvNote Edited: 0046385bug_revision_view_page.php?bugnote_id=46385#r11793
2015-10-02 09:32nbvNote Added: 0046387
2016-10-25 19:04msvTarget Version7.1.0 => 7.2.0
2017-06-15 11:06nbvRelationship addedrelated to 0026907
2017-06-15 11:06nbvRelationship deletedrelated to 0026907
2017-06-15 11:06nbvRelationship addedrelated to 0026655
2017-07-21 11:04msvTarget Version7.2.0 => 7.3.0
2017-12-05 17:09msvTarget Version7.3.0 => 7.4.0
2017-12-08 11:57nbvRelationship addedrelated to 0029359
2018-03-05 10:52nbvRelationship addedrelated to 0026907
2018-03-05 10:52nbvRelationship addedrelated to 0028575
2019-08-12 19:08msvAssigned Tonbv => msv
2019-08-12 19:13msvTarget Version7.4.0 => Unscheduled
2019-09-04 12:11kgvSummaryIncorrect result of blend operation in "blend simple X4" test case => Modeling Algorithms - Incorrect result of blend operation in "blend simple X4" test case

Notes
(0046377)
nbv   
2015-10-01 16:14   
A few words about validity the result in terms of BRepCheck algorithm.

Draw[]> explode result f
Draw[]> explode result_3 e
Draw[]> xdistef result_3_5 result_3
#Max distance = 0.0025028007416767954

Edge rr_3_5 is not valid in terms of same-parameter (it is valid in terms of BRepCheck algorithm because it has big tolerance). I.e. its 2D- and 3D-curve are not matched each other. As result, 2D-curve of result_3_5 does not tangent rr_3_2 edge (despite it must do it).

Consequently, the validity of the result is pure chance.

I tried to make more precise filet-edge with change some parameters of IntWalk_PWalking algorithm (function ChFi3d_ComputeCurves(...), line "IntWalk_PWalking IntKK(S1,S2,tol3d,tol3d,fleche,Step)"). As result, I obtained an edge with maximal distance between 2D- and 3D-curve approximately 1.0e-13. After that, BRepCheck algorithm returns "BRepCheck_SelfIntersectingWire". The main reason is the vertex is absence (see bug description).
(0046385)
nbv   
2015-10-01 18:25   
(edited on: 2015-10-01 18:26)
Other remarks.

1. Firstly, the intersection edge (result_3_5 in previous message) is found as result of GeomInt_IntSS algorithm between two cylinders. It returns two intersection line, which are connected in point C. However, ChFi3d_Builder does not apply it to make fillet. Therefore, it rebuilds intersection line with IntWalk_PWalking algorithm and obtains single line as result.

2. If we insert this vertex in the place C then we will obtain filleted face between C and B only (see master_result.png and bug description). For obtaining result shown in the picture master_result.png we should add another edge to the arguments of "blend" DRAW-command. On the current MASTER this operation leads to exception.

(0046387)
nbv   
2015-10-02 09:32   
I have checked described situation on OCCT 6.7.0 and have obtained as same as result.