In the previous blog post, we discussed how to unfold cylindrical bends precisely. However, praxis puts additional constraints to get precise unfolding. During sheet metal bending, the inner surface of the bend compresses while the outer one stretches. Therefore, somewhere in between, there is a zone separating the tension from the compression. In this zone (called "neutral axis"), the material gets zero distortion. When looking at the folded state of a sheet metal part we view the deformed flat pattern's shape. The following question arises then: which dimensions of a flat pattern produce that folded shape?
One of the essential ingredients of the unfolding algorithm is flattening bend faces. This article explains how to unwrap cylinders (the canonical host surfaces of bends) while preserving all their contours, including carved edges and holes. The unfolding is done without deformations, i.e., not taking K-factor into account. The application of material props is left for future investigation.
With this blog post, we start (or restart?) a series of articles devoted to sheet metal processing. We will cover quite a few things, including sheet metal recognition, unfolding, and treatment of specific features. Like many other geometric modeling applications, this area is not well documented because commercial players do not like to disclose their small dirty secrets. Let's make these things a bit more open.
Why I think direct editing worths the efforts is that it genuinely unlocks shape modification. The cutting-edge CAD software should not ground itself on the intelligence in the data (features and sketches). It should rather be intelligent in its algorithms (feature recognition). The direct modeling field is so deep and exciting that I could not resist sharing a few words on it.
Современные разработчики зачастую не сильно заморочены такими скучными вопросами, как доступные системные ресурсы, например, память. Это, конечно, неудивительно, поскольку вместо привычных в середине девяностых шестнадцати мегабайт, мы имеем теперь 16 гигабайт, и это далеко не предел. В результате, программист перестает заботиться о памяти до тех пор, пока его блаженное неведение не споткнется о грубые реалии конкретного железа, либо среды виртуализации. Простой пример — запуск набора тестов в Docker-контейнере с ограничением памяти в 3ГиБ (привет AWS). В отсутствие менеджера аллокаций и деаллокаций, попытка динамически выделить блок памяти свыше отведенного предела уронит ваше приложение без какой-либо внятной диагностики.
Searching for subgraph isomorphisms has been considered as a general way of a feature matching over the past decades. Although this method is known to possess high complexity, it has remarkable advantages over the rule-based approaches which employ ad-hoc shape interrogation procedures. The primary benefit of the subgraph isomorphism method is its ability to handle custom feature definitions (i.e., the user's features). It is a single common algorithm that operates with whatever feature descriptors represented with their AAG subgraphs. In practice, the availability of isomorphism searching algorithms allows users of a geometric modeling system to specify their features using a formal graph language or simply by interactive picking of feature faces.
There is something weird about the new Qt widget coming with VTK for integration with the GUI of your application. Let's try to recover the old QVTKWidget one. It worked before getting deprecated in VTK 8.2.
I've spent quite a while looking through Pluralsight courses available by a subscription that I happened to get. To confess, I am not a real fan of any distance learning. Too often such a way of studying gives only an impression that you've got some knowledge, while you have not. There is even some psychological explanation to that phenomenon, which one can loosely articulate as a "lack of mass." The point is that any video course per se is not enough. A video course plus practicing are not enough either. What's necessary is all this together plus time, plus different views on the subject, seeing it from different standpoints and even touching some artifacts in-real-life. Only by passing this full journey, making all sorts of mistakes, you might end up with something looking like a real knowledge accompanied by intuition. Well, anyway, there are some video recordings that you might want to start that journey with. Here I'll list some of them. Bear in mind that my perception of these courses is subjective.
Распознавание конструктивных элементов средствами библиотеки OpenCascade можно производить различными способами. Наивный метод состоит в написании кода на C++ для итерации граничного представления модели с проверками геометрических типов. Шагом в светлую сторону является использование формализма теории графов. Этот подход, хотя и ограничен (он хорошо работает лишь для изолированных конструктивных элементов), дает общий метод решения целого класса задач. Остается чисто технический вопрос: как искать подграф в графе?