1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-14 13:30:48 +03:00
Commit Graph

2697 Commits

Author SHA1 Message Date
gka
dbfe78b820 0030591: Exception is raised by command "bopcheck" on the attached shape
Protection to avoid exception if number of vertices is equal to 1 was added.
2019-03-19 14:06:43 +03:00
emv
fde63ce40b 0030522: Modeling Algorithms - BRepBuilderAPI_MakeWire produces different wires depending on the order of parameters
The following improvement has been implemented in BRepLib_MakeWire class to make it more reliable:
1. Quit adding edges of a wire into result if the current edges have not been added. Return NotDone status.

Test case for the issue.
2019-03-18 10:46:27 +03:00
jgv
bdb1db500e 0026717: Error in IntPatch_PrmPrmIntersection: change of local resolution leads to break of walking line
Test case for issue CR26717

Correction of test cases for issue CR26717

Test case for issue CR26717
2019-02-26 07:56:57 +03:00
emv
1e9eac7032 0030490: Modeling Algorithms - Incomplete result of Cut operation
Unify the vertices of the small section edges (part of the commit for #0027448).

Test case for the issue.
2019-02-25 15:36:39 +03:00
nbv
f14997ca27 0029887: Wrong result of CUT operation due to incorrect point-face classification
Using of input tolerance has been eliminated in Geom2dInt_GInter algorithm called from BRepClass_Intersector::Perform(...) method. Now, the input tolerance is used only for check ON-status of classification.

(cherry picked from commit 748c9dc6ae0d6018018fca585b6d8cf511c0dd0b)
2018-06-21 12:16:44 +03:00
ifv
ec8ffa6b9c 0029535: Modeling Algorithms - BRepExtrema_DistShapeShape returns only one solution but the wires have two intersections (for 6.9.1) 2018-03-13 10:47:05 +03:00
bugmaster
58b98ae462 Update test system for OCCT 6.9.1 2018-02-28 10:31:31 +03:00
bugmaster
35b8a5a2cf Update testing system for compatibly test case with master during prepare delivery 2018-02-27 17:15:39 +03:00
emv
e491cf27df 0029387: Incorrect result of cut a face with several shapes
Eliminate normalization of the section curve while making approximation.
Remove section edges having no valid range.
Test case for the issue.
2017-12-25 16:24:52 +03:00
ifv
742483064b 0029162: Geom2dInt_GInter algorithm does not find intersection of ellipse and line 2017-10-17 15:11:09 +03:00
msv
a7d8971008 0029159: Sewing fail when using a maximum tolerance
Force setting truly computed tolerance of the edge if BRepLib::SameParameter has put too large tolerance.
2017-10-13 15:12:53 +03:00
msv
ddafad10ec 0029102: Missing points using GCPnts_QuasiUniformDeflection
Correct the method PerformCurve of GCPnts_QuasiUniformDeflection to get the proper derivative at the end of the current curve.

Improve the Draw commands "crvpoints" and "crvtpoints" so that to work with wires as composite curves.
2017-09-15 10:12:47 +03:00
emv
fedf4bc000 0027441: The method IntTools_Context::IsVertexOnLine incorrectly computes parameter of the point on the curve
Choosing the closest bound to the checking point.

Test cases for the issue.

Updating test cases for the current behavior.
2017-07-03 12:50:43 +03:00
nbv
08bbed78a8 Fix for the issue #28849. 2017-06-16 13:00:42 +03:00
msv
e69d993598 0028830: HalfSpace command chooses the wrong side of the given shell
Improve the algorithm BRepPrimAPI_MakeHalfSpace. Earlier it made projection of the point only on faces. If the nearest point does not conform to normal projection criterion the result is wrong. The fix includes search of projection on edges and vertices. This makes the algorithm robust for half spaces with boundaries.
2017-06-13 15:11:28 +03:00
ifv
a0ae8ca8a0 Commit for #28771 (thickshell produces wrong result, SENR-17-060) 2017-05-29 14:16:52 +03:00
gka
3ab46247a1 Fix for case 180: Error using SnrSplitAlgorithm (691)
Protection to avoid creation of the overlapping edges
2017-05-24 18:30:55 +03:00
emv
fe0a0085cc 0027761: Intersection loops infinitely
The static method CorrectSurfaceBoundaries() in the class IntTools_FaceFace,
which is used for correction of the boundaries of the faces before their intersection,
contains two inconsistent adjustments of the boundaries of the faces based on periodic surfaces.
One of these adjustments has been removed. The remaining adjustment, the one that is based on the
2D bounding boxes of the closed curves, should be sufficient.

Test case for the issue.

(cherry picked from commit 7cb2f40993)
2017-05-23 13:20:30 +03:00
nbv
9c2e67b6da 0028222: Intersection of two cylinders fails
1. The reason of exception has been eliminated.

2. Algorithm in IntPatch_WLineTool::JoinWLines(...) method has been modified in order to forbid join curves in the point where more than two intersection lines meet. More over, joining is forbidden if local curvature in the connection point is too big (see function CheckArgumentsToJoin(...) in the file IntPatch_WLineTool.cxx).

3. Interface of IntPatch_WLineTool::JoinWLines(...) method has been modified in order to reduce number of arguments.

4. Small corrections in IsSeamOrBound(...) static function has been made. Namely, check has been added if two boundaries are in the same period region but are too far each to other (see IntPatch_WLineTool.cxx, IsSeamOrBound(...) function, line # 532).

5. "Reversed" flag has been made local. Now, it is pure local characteristic: the algorithm decides itself, shall we reverse the argument order. This correction makes the algorithm more commutative (see issue #25404). However, IntPatch_WLineTool::JoinWLines(...) method can return non-commutative result.

6. Algorithm of searching small intersection curves has been improved.

7. New methods have been added in Bnd_Range class.

-----------------------------------------

Some test cases have been adjusted according to their new behavior.

1. tests\bugs\modalg_6\bug26310_3
   tests\bugs\modalg_6\bug26310_4
   tests\bugs\moddata_2\bug235
   tests\perf\modalg\bug26310_1
   tests\bugs\modalg_5\bug24915

Logic of these cases has been changed. Mover over, additional check has been added in "bug26310_1" test case. Therefore, its performance will be slower than on the current MASTER.

2. tests\bugs\modalg_5\bug25292*

Scripts have been rewritten in order to make it more readable. Logic of these cases has not been changed.
2017-05-22 17:04:37 +03:00
nbv
1b23c4e0cf 0028009: [Regression vs OCCT7.0.0] Cut produces not valid shape
The algorithm in WorkWithBoundaries::BoundaryEstimation(...) did not take into account opposite directions of cylindrical axes (when the angle between them is obtuse). After the fix it does it.

Small correction of test cases for issue CR28009

(cherry picked from commit c9c7286e56)
2017-05-22 10:14:36 +03:00
nbv
045e1c408a 0027856: Regression vs 6.7.1: General Fuse operation fails to fuse the solids
Method WorkWithBoundaries::BoundaryEstimation(...) has been brought in balance with IsParallel(...) method, which checks if cylinder axes are parallel.

(cherry picked from commit 95f8c6082d)
2017-05-22 10:14:34 +03:00
nbv
493c359ffd Patch including (particular) fixes for the issues #23178, #26586, #27766, #26852 and #24023. 2017-05-22 10:14:33 +03:00
nbv
c31217f83c 0027310: Huge tolerance obtained in the result of intersection of two cylindrical faces
Sometimes start point of the intersection line is in the surface boundary strictly. I.e. the parameter of this point in the surface can be equal to both 0 or 2*PI equivalently. It is important to chose correct parameter value.

The algorithm of prediction is based on monotonicity property (see CylCylMonotonicity(...) function in IntPatch_ImpImpIntersection_4.gxx). Now, this function is used wrongly. The fix improves this situation.

Small optimization in the code.
Creation of test cases .

The logic of returning value by the method BoundariesComputing() has been corrected.

(cherry picked from commit 79997052f1)
2017-05-22 10:14:31 +03:00
nbv
507dd6d579 0026884: Cylinder/Cylinder intersection algorithm throws an exception
Check, if cylinder axes are parallel is made more carefully.
This check is brought to conformity with check if axes are parallel (see constructor AxeOperator::AxeOperator(...) in IntAna_QuadQuadGeo.cxx file)

Test case for issue CR26884

(cherry picked from commit ce48b00930)
2017-05-22 10:14:30 +03:00
nbv
074eb06e7a 0028718: Section result has a break
Fix of the problem.
2017-05-19 15:00:15 +03:00
emv
be81259513 0028683: Wrong result of CUT operation
1. Partial porting of the patches for the issues #0026738 and #0028017:
   Careful treatment of the SD vertices created on the Face/Face intersection stage.

2. Avoid creation of the small section edges.

3. Test case for the issue.

4. Adjusting test cases for current behavior.
2017-04-28 12:08:18 +03:00
ifv
4ea9823777 0028585: Wrong value of area computation
Another processing of NaturalRestriction flag for face in algorithm of BRepGProp* classes.
2017-04-03 11:42:13 +03:00
nbv
4bce57b6e2 Fix for the issue #28491 2017-03-02 12:09:13 +03:00
emv
042532570d 0028189: Result of Boolean operation is non-manifold wire
1. The result of Boolean operation on the arguments of collection type, containers WIRE/SHELL/COMPSOLID, is now also a collection.
The result of Boolean operation on arguments of non-collection types is now a compound containing the splits of arguments directly, without its enclosure into containers.
Thus, if there were no containers, such as WIRE/SHELL/COMPSOLID, in the input arguments there will be no such containers in the result of BOP.

2. The containers of type WIRE included into result should now also (as the SHELLs) have coherent orientation of its sub-shapes.
For that the new method has been implemented (BOPTools_AlgoTools::OrientEdgesOnWire(TopoDS_Shape&)) which reorients edges of the given shape for correct ordering.

3. The duplicating containers, i.e. containers with the contents completely included in other containers, are now avoided in the result of BOP.

4. Documentation has been updated.

5. New test cases for the issue.

6. Adjusting test cases to current behavior.
2016-12-28 15:39:00 +03:00
aml
ac1cbd566d Correction for redmine issue #150 - make wire builder more stable. 2016-10-14 07:34:09 +03:00
emv
9112bc3c6a 0027746: Incomplete result of SECTION operation
1. Partial porting of the fix for the issue #0026560:
Function to compute subshape max tolerance has been added.
Fixed bounding box expanding at Face/Face step of boolean operation.

2. New test cases are created.
2016-08-03 10:58:06 +03:00
azv
239550fbed 0027677: Incorrect CUT of a solid by semi-infinite solid
The problem of incorrect CUT is wrong Pcurve after projection onto cylinder of a small edge orthogonal to cylinder's axis. The result of projection is a line along V direction, but it should be along U.

ProjLib_Cylinder has no specific functionality to build projection in most common case, so it should return "not done" flag to start projection based on curve approximation.

Following changes are done:
1. ProjLib_Cylinder returns isDone=false in the following cases:
  * the projected line is not parallel to cylinder's axis
  * the plane of projected circle is not orthogonal to cylinder's axis
2. Test case added
2016-07-18 15:51:23 +03:00
nbv
f0afe22ee5 Fix for issue #27664 2016-07-14 11:10:36 +03:00
aml
f50f030f2d 0027371: Regression: BRepExtrema works too much slower in 691 (from 670)
Lipschitz constant tuning.
Shubert estimation for minimal value is added.

Test case is added.
2016-04-25 11:44:28 +03:00
gka
c3cb810368 0027151: Exception is raised during performing command "splitshape" in the Test Harness
Tolerance of vertices's of the degenerated edges are increased
to value of tolerance of the splitting vertex for case when splitting vertex was projected on the degenerated edge.
2016-03-11 11:29:21 +03:00
gka
256ac0b9ea 0026619: Tolerances of operands are modified using bop
The fix forces creation of new sub-shapes (vertex, edge) when the tolerance of some sub-shape of an argument is to be increased.

    This new behavior is turned off by default. It can be turned on using two ways:
    1) Setting 'locking' flag of the arguments.
    2) Calling the method SetNonDestructive(Standard_True) of the API classes.
2016-03-11 11:01:47 +03:00
gka
2905f5b657 0027151: Exception is raised during performing command "splitshape" in the Test Harness
Modifications to avoid exception for case overlapped edges was made.
Returned values of the methods LocOpe_SplitShape:AddOpenWire() and LocOpe_SplitShape:AddClosedWire() were modified from void to boolean in order to avoid raising of the exceptions for cases when result wire can not be built.
2016-02-25 16:32:00 +03:00
aml
68d8f06a04 Old signature of method "reset" is restored to avoid problems with backward compatibility. 2016-02-24 13:44:57 +03:00
aml
62f137e4ab 0027162: Draw command "(2d)extrema" incorrectly represent underlying algorithm results
Correct handling of infinity solutions added for Curve / Curve case.
Unused code deleted.
Test cases updated to the new behavior.
2016-02-18 11:58:43 +03:00
aml
6d65d76281 Possibility to freeze Lipchitz constant is added to improve performance. 2016-02-16 07:48:33 +03:00
aml
38c459922e 0027131: [Regression to 6.7] DistShapeShape performance loss
Lipchitz constant approximation and fixes in global optimization algorithm added to improve performance.
Test case added.

Fix backporting:

0026593: Coding rules - revert compatibility of NCollection_CellFilter constructor with old code

Restored old constructor and old behavior where possible.

Minor correction.

0026395: Merge clasees NCollection_CellFilter_NDim and NCollection_CellFilter

Deleted exceed class CellFilterNDim.
Now dimension count used as input parameter in NCollection_CellFilter.

minor corrections.
2016-02-12 07:51:37 +03:00
oan
a6af85dde9 0027119: Regression: Draw command "incmesh" hangs on the attacheced face.
BRepMesh_CircleTool: extend radius of circle by quite small value in order to classify points forming inscribed triangle as lying on it. Do not use PConfusion due to false positive result leading algorithm to hanging.
2016-02-05 15:23:08 +03:00
aml
ff85f6086c 0027114: [Regression to 6.7] DistShapeShape does not find a solution edge-face
Extrema Curve / Surface algorithm changed to perform more accurate search.

test case bug25232_8 - improvement, one additional intersection point is detected now.
test case bug23830 - normal behavior, position of extrema is changed.
Small correction of pro19653 test
test case for original issue added.
2016-02-05 13:35:06 +03:00
apv
8474ba84f8 Small correction of test case bugs/heal/bug26642 due to shape renaming 2016-02-02 12:50:55 +03:00
ifv
72452b111d 0027110: Regression: Draw command "parameters" can not compute parameter on the line.
Useless variable MAXTOLERANCEGEOM is removed in order to allow to place point at any distance from curve/surface.
Algorithm is simplified: particular calculations for analytical geometry are removed, only using of Extrema_... is kept.
2016-02-01 11:02:39 +03:00
nbv
8ebd2632e2 Patch for issue #26841 2015-12-21 13:42:43 +03:00
ski
3b5f0ca372 Small correction of qt samples V6_9_1 2015-09-28 16:04:44 +03:00
gka
6c672f4cd0 0026723: Qt IE sample can not import STEP and IGES files with names containing not ascii symbols
Added conversion of the names of the imported files in the  Utf8 coding
2015-09-25 16:47:56 +03:00
isk
1384cb64c9 Fix samples crash. 2015-09-25 14:16:24 +03:00
bugmaster
d222f955df Changing OCCT version from 6.9.1 beta to 6.9.1 2015-09-24 15:08:19 +03:00