Anonymous | Login 2019-06-16 03:30 MSK Project: All Projects Community Open CASCADE
 My View | View Issues | Change Log | Roadmap

View Issue Details  Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0026509Open CASCADE[OCCT] OCCT:Modeling Algorithmspublic2015-07-31 13:312018-10-28 16:13
Reporternbv
Assigned Toapn
PrioritynormalSeverityminor
StatusverifiedResolutionfixed
PlatformOSOS Version
Product Version[OCCT] 7.0.0
Target Version[OCCT] 7.4.0*Fixed in Version
Summary0026509: Intersection algorithm produces set of curves providing closed contour in 3D-space and not closed contour in 2D-space
DescriptionIntersection algorithm produces set of curves providing closed contour in 3D-space and not closed contour in 2D-space.

The reason of this fact is in incorrect adjusting of some segment (part of full intersection result) going completely along the boundary to the opposite boundary shifted by period.

In other words, the segment must go (in 2D-space) along the U-isoline U=0 but intersector returns this segment along the the U-isoline U=2*PI.

See the attached file Shifted 2D-curve.PNG
Steps To Reproducecircle c1 0 0 0 0 -1 0 75
circle c2 0 0 0 0 -1 0 65
mkedge c1 c1
mkedge c2 c2
wire c1 c1
wire c2 c2
orientation c2 R
mkplane f1 c1 1
prism p1 f1 0 1000 0
trotate p1 0 0 0 0 0 1 180
circle c3 50 500 -2000 0 0 1 50
mkedge c3 c3
wire c3 c3
mkplane f2 c3 1
prism p2 f2 0 0 4000
explode p1 f
explode p2 f
trotate p2_1 0 500 0 1 0 0 -77
trotate p2_1 0 0 0 0 0 1 180

bopcurves p1_2 p2_1 -2d
TagsNo tags attached.
Test case numberbugs modalg_7 bug26509_1, bug26509_2, bug26509_3, bug26509_4, bug26509_5, bug26509_6
Attached Files Shifted 2D-curve.PNG (28,703 bytes) 2018-10-24 11:30
Correct Splitting p-curve.PNG (17,139 bytes) 2018-10-25 11:46

Relationships
 child of 0024905 verified apn Boolean cut produced invalid result

 Notes nbv (developer) 2016-10-25 17:18 The bug is still reproduced on the current MASTER. The result depends on the input tolerance heavily. E.g. mksurf ss1 b1 mksurf ss2 b2 intersect ii ss1 ss2 # The result seems to be OK. intersect ii ss1 ss2 2.0e-7 # WRONG nbv (developer) 2018-10-22 15:19 Dear Mikhail, The result seems to be OK on the current MASTER. msv (developer) 2018-10-22 16:00 Please create test case. git (administrator) 2018-10-23 18:32 Branch CR26509 has been created by nbv. SHA-1: 191d8fbe0f915ce2a21a2004ea1b46cf0133b86d Detailed log of new commits: Author: nbv Date: Tue Oct 23 16:58:59 2018 +0300     0026509: Wrong intersection curve(s) obtained for pair of faces.          Algorithm of processing cases when the intersection curve has a segment along U-boundary of the surface has been improved. git (administrator) 2018-10-24 09:55 Branch CR26509 has been updated forcibly by nbv. SHA-1: 6c558f8e5e4d28efb1a323c7f81918ffca49e821 nbv (developer) 2018-10-24 11:32 Description has been updated according to the behavior on the current MASTER. git (administrator) 2018-10-24 11:34 Branch CR26509 has been updated forcibly by nbv. SHA-1: 68b73dada1dee04764b1612ba24ee3366f809dac nbv (developer) 2018-10-25 11:46 edited on: 2018-10-25 14:30 Since the integration of the fix 0024905, the described problem has not to lead to any problems in high-level OCCT-algorithms. The intersection algorithm between two cylindrical faces (since integration the fix #24915, the logic of Cylinder-Cylinder intersector significantly differs from the logic of intersector between other quadrics) checks the derivative (it can be said without going into detail) of 2D-intersection curve, which starts in the seam. In case shown in the attached picture "Shifted 2D-curve.PNG" this derivative is directed left (out of the boundary U=0; however, the angle between it and the vector {0,1} is about 1.0e-8; i.e. quite small but does not equal to 0). I.e. the algorithm "thinks" that this curve will be out of the face's boundary (U=0) in case if it will be continued. Therefore, it moves the curve to opposite boundary (U=2*PI). In my point of view, this behavior is good and is not needed to be changed. Moreover, in the next case, 2D-curve is divided on two separated parts properly (see "Correct Splitting p-curve.PNG" attached picture): ``` pcylinder cy1 100 500 pcylinder cy2 20 500 trotate cy2 0 0 250 0 1 0 90 ttranslate cy2 200 0 0 explode cy1 f explode cy2 f don cy1_1 cy2_1 av2d; fit bopcurves cy1_1 cy2_1 -2d 2dclear disp c2d1_* 2dfit pcurve cy1_1 ``` git (administrator) 2018-10-25 12:01 Branch CR26509 has been updated forcibly by nbv. SHA-1: c0b814951d7f43bd189dee0c846b14d7bdcdd6a9 nbv (developer) 2018-10-25 15:36 Dear Mikhail, Please review the current state of the branch CR26509. New test cases have been created only. Test results are here: http://jenkins-test-12.nnov.opencascade.com/view/CR26509-master-NBV/ [^] msv (developer) 2018-10-25 15:40 Reviewed. apn (administrator) 2018-10-25 17:15 bugs modalg_7 bug26509_1 - OK bugs modalg_7 bug26509_2 - OK bugs modalg_7 bug26509_3 - OK bugs modalg_7 bug26509_4 - OK bugs modalg_7 bug26509_5 - OK bugs modalg_7 bug26509_6 - OK git (administrator) 2018-10-28 16:13 Branch CR26509 has been deleted by inv. SHA-1: c0b814951d7f43bd189dee0c846b14d7bdcdd6a9