Mantis Bug Tracker Workflow

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0022379Community[OCCT] OCCT:Modeling Algorithmspublic2011-04-06 11:322017-12-05 17:09
Assigned Tojgv 
PlatformOSAllOS Version
Product Version 
Target Version[OCCT] 7.4.0*Fixed in Version 
Summary0022379: Patch for Extrema
DescriptionPatch from the Forum [^]
Extrema_ExtPS & Extrema_ExtPElS.
"Jane Hu | reply 2011/01/19 18:56
During solving a bug, I notice that in point Extrema code, tolerance check isn't carried over to details, thus boundary points often can't be found in the U V space. I have following patches to correct it. [^]

Please also see [^]
for the surface that shows the problem. pick points along the boundary curve where u is about 0, and trying to find the u, v for the points, you'll see programs gives a wrong (u,v).

Please refer to the following discussion thread for a detail for the problem. [^]

TagsNo tags attached.
Test case number
Attached Files

- Relationships

-  Notes
jgv (developer)
2011-04-08 11:46

Dear Sergey!

I see that proposed changes are very strong and comprehensive, but the problem
is not clarified enough. So it is necessary to add more data and, may be, a
script describing the problem.
jgv (developer)
2011-04-29 15:28

We need at least a script reproducing the bug
szy (administrator)
2011-08-03 17:39

Dear Julia,
I found some reference to discussion around this bug (see copied text below).
Probably it may help.
"Currently I am looking in a bug which tries to evaluate a point on surface boundary curve for it's u,v parameter.

We are calling Extrema_ExtPS, with TolU and TolV given as Precision::Approximation() = 1x10^-6.

Now there are 2 issues:
1. in function
void Extrema_ExtPElS::Perform(const gp_Pnt& P,
const gp_Torus& S,
const Standard_Real Tol)
Tol was hard coded as 1x10^-7, I am ok with it. However, it only was used for distance tolerance check, where in my particular case, U was -1.2490009027033011e-15, which is close (by Tol) enough to be considered as U=0. If following the original path, U < 0, the U have to be added by 2*PI which is far ourside of the current physical torus, hence the function didn't find u and v and closest point for this point on curve situaction. On the other hand, if I assign it now as U=0, it successfully returns a pair of u,v with closest point within tolerance of the original point.

I intend to change the code this way,
314 if(U1 > -Tol && U1 < 0.) {U1 = 0.;}
315 if (U1 < 0. ) { U1 += 2. * PI; }
also for V1 and V2 in this function.

Is there anyone who also looked into this problem and think it's inproper to do this way? Thanks in advance for your advise.

2. this is also related to tolerance issue:
in Extrema_ExtPS::TreatSolution, it called ElCLib::InPeriod, which uses Standard_Real Eps = Epsilon(period) as tolerance for U and V parameter, where my passed in U is 2.44*10^-15 close to Umin, it's still greater than Eps which is 8.8*10^-16, so it gets to add a period of 6.28 and hence can't find it's U,V because of out of boundary. Here my question is:
is there any reason to use Eps as tolerance instead of passed in TolU and TolV?
abv (manager)
2013-07-10 18:12

The patch for OCCT 6.6.0 can be found at [^]

- Issue History
Date Modified Username Field Change
2011-04-06 18:37 bugmaster Status closed => assigned
2011-04-06 18:37 bugmaster Resolution suspended => @0@
2011-04-06 19:09 bugmaster Assigned To bugmaster => szy
2011-04-07 11:48 szy Assigned To szy => jgv
2011-04-08 11:38 jgv CC => szy
2011-08-02 11:31 bugmaster Category OCCT:MOA => OCCT:Modeling Algorithms
2011-08-03 17:39 szy Note Added: 0017900
2011-09-21 14:25 szy Fixed in Version EMPTY =>
2011-09-21 14:25 szy Target Version => 6.5.3
2011-09-21 14:25 szy Description Updated View Revisions
2011-11-25 12:00 szy Description Updated View Revisions
2012-02-09 09:20 abv Target Version 6.5.3 => 6.5.4
2012-10-23 19:32 abv Target Version 6.5.4 => 6.6.0
2013-03-01 21:37 abv Target Version 6.6.0 => 6.7.0
2013-07-10 18:12 abv Note Added: 0025018
2013-12-21 10:13 abv Target Version 6.7.0 => 6.7.1
2014-04-04 18:27 abv Target Version 6.7.1 => 6.8.0
2014-09-26 10:27 abv Target Version 6.8.0 => 7.1.0
2016-10-28 15:33 msv Target Version 7.1.0 => 7.2.0
2017-07-21 11:34 msv Target Version 7.2.0 => 7.3.0
2017-12-05 17:09 msv Target Version 7.3.0 => 7.4.0*

Copyright © 2000 - 2018 MantisBT Team
Powered by Mantis Bugtracker