Вопросы от читателей, часть 2
Удивительно, но нас читают и за кордоном. Воистину, гугл-транслятор способствует международному общению.
Once you have a face, you can get its geometry via BRep_Tool::Surface(). Notice that in OpenCascade there is a clear separation between geometry and topology. The topology (TopoDS packages) gives only the structure, while geometry (Geom and Geom2d packages) brings up the form. BRep_Tool utility allows you switching from topology to geometry.
A kind of traditional feature recognition based on Boundary Representation (B-Rep) can benefit from the usage of Attributed Adjacency Graph. You can find the original article by Joshi, 1988, explaining the concept. The idea is shortly as follows.
You first build the AAG structure storing the neighborhood information for the faces. Each arc of this graph represents a neighborhood relation between the connected faces. With the arc you can associate your custom data, the attributes. The proven good idea is to mark each arc with concave / convex flag which gives you more information about the model. Here you need to perform some analysis to classify the dihedral angles on convexity. In blog there is a dedicated record explaining how one can do that. After that, you can use the AAG instead of the initial B-Rep to check your rules. Each node of the graph represents a face, so you can always check its type, etc.
OpenCascade is capable of reading STEP AP242 with geometric dimensions and tolerances. For visualization of PMI, there is no open source solution in OpenCascade. There is only a commercial component to visualize annotations, PMI, etc.
In OpenCascade there is no any intelligent (like in ACIS) face removal algorithm. Apparently, you may remove a face, but the gap will not be automatically filled (except for specific cases, e.g. suppression of machining holes drilled in interior area of faces). To implement some basic shape editor on the top of OpenCascade, you will definitely have to spend some time (months of job, if not years).
Well, what can I say? Good luck!