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

0029481: Implementation of the Feature Removal algorithm

Implementation of the 3D model De-featuring algorithm intended for the removal of the unwanted parts (or features) from the model consisting of solids. The features can be the holes, protrusions, gaps, chamfers, fillets etc.
The algorithm removes all possible requested features from the shape and builds the new shape as a result. The input model is not modified.

On the API level the algorithm is implemented in the class *BRepAlgoAPI_Defeaturing*. The actual features removal is performed by the low-level algorithm *BOPAlgo_RemoveFeatures*.

Documentation of the new classes.
Implementation of the DRAW commands for working with new algorithm.
Test cases for the new functionality.

Changes in other algorithms used by De-featuring algorithm:
- Provide history support for the solids in *ShapeUpgrade_UnifySameDomain* algorithm;
- Implementation of the mechanism to merge History of any Algorithm with standard history methods such as IsDeleted(), Modified() and Generated() into *BRepTools_History*.
This commit is contained in:
emv
2018-02-06 08:48:27 +03:00
committed by bugmaster
parent 9e04ccdcf8
commit d9ca2e0cb1
112 changed files with 4212 additions and 39 deletions

View File

@@ -5844,6 +5844,7 @@ The following topics are covered in the eight sections of this chapter:
* Transformations of shapes: translation, copy, etc.
* Topological operations, or booleans.
* Drafting and blending.
* Defeaturing.
* Analysis of shapes.
@@ -7322,6 +7323,43 @@ buildevol
~~~~~
@subsection occt_draw_defeaturing Defeaturing
Draw module for @ref occt_modalg_defeaturing "3D Model Defeaturing" includes the command to perform the operation and the commands to access the history of shapes modifications.
@subsubsection occt_draw_defeaturing_op removefeatures
*removefeatures* command performs the removal of the requested features from the shape.
Syntax:
~~~~
removefeatures result shape f1 f2 ... [-nohist] [-parallel]
Where:
result - result of the operation;
shape - the shape to remove the features from;
f1, f2 - features to remove from the shape;
Options:
nohist - disables the history collection;
parallel - enables the parallel processing mode.
~~~~
@subsubsection occt_draw_defeaturing_hist rfmodified, rfgenerated, rfisdeleted
To track the history of a shape modification during Defeaturing the following commands can be used:
* <b>rfmodified</b> Shows the shapes modified from the input shape during Defeaturing.
* <b>rfgenerated</b> Shows the shapes generated from the input shape during Defeaturing.
* <b>rfisdeleted</b> Checks if the shape has been deleted during Defeaturing (i.e. has no trace in the result shape).
Syntax:
~~~~
rfmodified : rfmodified c_modified shape
rfgenerated : rfgenerated c_generated shape
rfisdeleted : rfisdeleted shape
~~~~
@subsection occt_draw_7_9 Analysis of topology and geometry
Analysis of shapes includes commands to compute length, area, volumes and inertial properties, as well as to compute some aspects impacting shape validity.