Sometimes we want to do things that are completely opposite to canonical recognition, i.e., to convert nice analytical shapes to splines. There are several circumstances when you might need such a trick. What I could recall from practice is the following:

  1. Data exchange. After spending several weeks (if not months) modelling turbine blades with their hubs and shrouds, I realized that some surfaces (especially offset surface) were completely broken (Fig. 1). The “fix” was to represent the faulty geometries with splines.
  2. Lack of robustness in modelling algorithms for the special analytic cases. As you might know, a typical CAD engine…

This article is mostly a recording of the corresponding CAD programming lesson we published on our youtube channel. In this series, we cover the basic aspects of the geometric modelling discipline and give an introduction to the OpenCascade library from a practical perspective.

Introduction to OpenCascade and CAD modelling engines.

Today let’s speak about the modelling kernels in general and the position of OpenCascade on this market.

Some interesting CAD kernels.

OpenCascade is not alone, and if we list all other CAD kernels, we will get just a handful of libraries, which deserve some discussion, all written in C/C++ language. ACIS and Parasolid are…


Well, it took quite a while for the new release to come. As promised, I was waiting for the recent number of downloads to reach the previous release figure. And then waited even more, because the number of new features was not satisfying enough. I was also thinking to surround these dry and boring release notes with some comments so that it becomes more like a status update. That’s the idea I stole from Chris Taylor and his Kanoogi gaming platform.

You can download Analysis Situs 1.0.0 on its landing page as usual.

CI/CD

Yep, we have it now. Only for…


In the previous article, we emphasized the importance of modeling with clean and concise 3D primitives. To put it short, prefer analytical shapes whenever possible if you are going to recognize any features or pass your shape through the direct editing algorithms, such as push/pull.

Non-analytical surface types for the drilled holes.

Too often though, we have to deal with someone else’s data that’s composed of all sorts of excessive splines. To give such models a new breath of life, the analytical geometries should be recovered back from their freeform counterparts. It is generally wise to give analytical recognition a shot whenever you’re scanning your model for…


Is there anything in common between the Computer-Aided Design and game development industries? Can we, as the CAD devs, learn from the gamedev community?

I have never been quite interested in the gaming industry per se. However, CAD and gaming seem to share a common backbone, which is apparently computer graphics and, to some extent, simulation. Another remarkable aspect of games is the efficiency in using computational power. To have a high FPS, you cannot afford to write inefficient code. Not surprisingly, gamedev is full of best practices, tricks, and secrets on how to make the best out of your…


Quick note: Contact us if you’re looking for a sheet metal unfolding algorithm.

In our previous articles, we covered different aspects of a sheet metal unfolding algorithm. We started off by giving a brief overview of the principle and software packages implementing it. The second part was more mathematical. We explained how to unroll cylindrical bends without deformations using the approximation utilities of the OpenCascade open-source library. The third part was mainly devoted to applying a K-factor for obtaining realistic bend compensation elongations.

Surprisingly enough, the unfolding algorithm is a deep subject. To confess, I did not see much complexity…


In the OpenCascade kernel, you have certain flexibility in the organization of a topology graph for your model. In particular, it is possible to reuse boundary elements, for example, by replicating the same face many times in a CAD part with different transformation matrices. While such a possibility may look flexible and is, indeed, useful in certain circumstances, it opens the door for tricky issues which are hard to debug. …


It sometimes happens that your B-Rep or mesh model contains inverted faces, i.e., the faces whose normal vectors are pointing in a wrong direction with respect to the bounded material. We have devoted a couple of blog posts to that issue already (see here and here), but so far it was not straightforward to see if your geometry suffers from such sort of defects or not. In the next version of Analysis Situs, the inverted faces & facets will get your attention right out of the box: we now render all such problematic entities in red color.

Analysis Situs keeps going to give you an open CAD platform for prototyping engineering software without any bit of commercial code inside. Stay tuned.


In our early paper devoted to feature recognition, we described a simple approach for finding isolated holes, pockets, and general cavities using the Attributed Adjacency Graph and some other heuristics. It appears that not so many tools exist which can serve as a basis for developing this sort of algorithms. Our Analysis Situs contributes to the feature recognition field by making some basic data structures and heuristics (such as dihedral angles) publicly available. At the same time, some questions remain, and in this blog post, the following question is answered (reformulated for brevity by me):

“How can I reproduce the…


Contour Capture

These days I was debugging an old modeling code aimed at the extraction of a piece of a two-manifold B-rep shell by a user-specified contour (Contour Capture algorithm). The code does imprinting, i.e., it geometrically and topologically fuses a contour with a shell as its first stage. The algorithms like that are pretty standard in the modeling systems. It is hard to imagine a geometric kernel that does not allow trimming shape by a loop of edges. The OpenCascade kernel is no different in this regard. It provides the so-called General Fuse operation, which can intersect topological entities with each…

Analysis Situs

Open-source CAD platform: analysissitus.org

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store