Constrained filling (PLATE)

Quaoar

Administrator
Staff member
Regarding constrained surface filling, would you have some pointer on the theory? I found this:


Is similar approach used in OCCT?
Good question. I cannot say that my experience with constrained filling in OpenCascade is entirely positive. However, that might be because I misused things. Have you tried it already? How does it feel?

Thanks for the paper. Actually, I guess, if you wanna find some roots of this functionality, it would be something from CISIGRAPH company that was acquired by Matra back in the nineties (here is one conference proceedings where you'll find something, but not that much: http://quaoar.su/files/papers/surface_modeling/Freeform_Tools_in_CAD Systems_Josef_Hoschek_(Ed.).pdf, p. 102 "Filling" in CISIGRAPH'S presentation by J. Lang). People who were involved in the development of this STRIM software (that brought all advanced surface design methods to OpenCascade) are now gone, and there's nobody to ask (I tried to contact Andre Lieutier, the creator of the Plate algorithm, once but did not get any response). One guy who was at the roots of the library (H. Legrand) and with whom I had a lucky chance to work had retired a couple of years ago.

But Matra Datavision had its own scientific department and lots of functionality was developed from scratch with their know-how. That's why it's not easy to find some paper on the internet. It might be that such a paper was never published and never left the office room. And then happened something that always happens when a company shuts down: the stuff was simply thrown away.

For me, revisiting the surface modeling tools of OpenCascade is an extremely interesting yet horribly hard exercise. We have to deal with tons of "highly mathematical" legacy code and watch out to use things properly. But that's probably the only way to give all these functions a new breath. Maybe we should start another thread to discuss all our discoveries.
 
Last edited:

A-U

Active CAD practitioner
In my limited experience (simple use cases) it worked fine. But I hear it can result in ill-behaved surfaces with too many points. That is the motivation behind my question.

I looked at the Plate_Plate code and I must say I've seen more readable things. At the very bottom they are solving some kind of linear system. I *assume* that is is some kind of constrained least squares thing.
 

Quaoar

Administrator
Staff member
I'll try to find some papers I got from the French guy that might be of some help to understand the method. They were originally in French but luckily my sister was kind enough to translate them into English :)
 
  • Like
Reactions: A-U

blobfish

CAD community veteran
Good question. I cannot say that my experience with constrained filling in OpenCascade is entirely positive. However, that might be because I misused things. Have you tried it already? How does it feel?
I looked at some of the filling code and found some obvious bugs. I was able to get some simple results.
occt
 

A-U

Active CAD practitioner
This looks like a interesting paper too - I think the concept used is roughly equivalent. It is almost tempting to implement oneself.
 

Attachments

  • Variational Surface Modeling.pdf
    113.1 KB · Views: 13

Quaoar

Administrator
Staff member
Here is the technical report on the Plate algorithm of OpenCascade: http://quaoar.su/files/papers/cascade/alr96346_fren.pdf

It's more of a historical value but let me share it as a step towards recovering the lost basics of the kernel. If there's a hero who would like to take over the scientific research around OpenCascade, this reading might be quite inspiring (although the English there is poor and this version more looks like a draft). I inherited it from one old colleague and I feel it might be disclosed (I just removed customers' names) as otherwise, it will be just lost. Apparently, most of the research coming from CISIGRAPH was diffused and largely lost, and that's not good.
 
  • Like
Reactions: A-U

Jojain

CAD practitioner
Here is the technical report on the Plate algorithm of OpenCascade: http://quaoar.su/files/papers/cascade/alr96346_fren.pdf

It's more of a historical value but let me share it as a step towards recovering the lost basics of the kernel. If there's a hero who would like to take over the scientific research around OpenCascade, this reading might be quite inspiring (although the English there is poor and this version more looks like a draft). I inherited it from one old colleague and I feel it might be disclosed (I just removed customers' names) as otherwise, it will be just lost. Apparently, most of the research coming from CISIGRAPH was diffused and largely lost, and that's not good.
If this hero finds some french papers I could think about translating them in English
 

Quaoar

Administrator
Staff member

Jojain

CAD practitioner
Awesome. Could you give a hint of what's written here: http://quaoar.su/files/papers/cascade/CAM00403.jpg?

This is a letter from A. Lieutier (the inventor of Plate) he attached to the paper by D. Jackson about tolerances in Parasolid.

Then, speaking of Plate, there's this untranslated text: http://quaoar.su/files/papers/cascade/A. Lieutier - Ameliorations et Extensions de l'algorithme Plate.zip
I'm out for the weekend I'll take a deeper look tomorrow night/ beginning next Week
 

Quaoar

Administrator
Staff member
@Jojain no rush, and thank you in advance for your efforts. Hopefully, we could reverse engineer this algorithm at some point in the future and end up with a decent constraint-based filling algo for the open-source community :D
 

Jonathan

CAD community veteran
@Quaoar the hand writing is pretty hard to decipher..

As part of a "in-depth" study on "robust algorithm design based on limited precision arithmetic" with ambitious goals, in the long run, I found these two articles that can to provide short-term service to developers. (especially that of Daniel J.) who describes the tolerance methodology of the boolean operator of PARASOLID
 

Jojain

CAD practitioner
I started the translation here :

It's probably a bad translation so if there is part not clear don't hesitate to point it out. When the paper is talking about PowerFill / Powermorph and STYLER I don't understand what it is about, I assume it was tools of their clients or something but it's not even clear for me even if it's written in French.

@Jonathan if you want to help you are welcome.

I'll try to continue the translation when I got time, it is a bit longer than I thought
 

Quaoar

Administrator
Staff member
I started the translation here :
That's awesome! A good start and nice reading already.

... and STYLER I don't understand what it is about, I assume it was tools of their clients or something but it's not even clear for me even if it's written in French.
To my knowledge, STYLER was a design module of Euclid CAD that was acquired by Dassault.
 

Quaoar

Administrator
Staff member
I think it would make sense to unite all documents about Plate into a single paper with all references and the knowledge we could extract from the algorithm itself. Then, there is this PlateFE modification which is the approximation-based version of Plate. It is not available in open source and another challenge would be to modify Plate so that it approximates the final surface right away on the B-spline basis. It should also make it possible to approximate huge amounts of points.
 

Quaoar

Administrator
Staff member
@Jojain I took time to redraw the image that explains how classes are composed together. Here's the svg.
 

Attachments

  • Plate_drawing_01.zip
    4.4 KB · Views: 8

Jojain

CAD practitioner
@Jojain I took time to redraw the image that explains how classes are composed together. Here's the svg.
Thanks I've added on github.
Sadly github markdown doesn't support latex formula so for now I shamelessly made screenshots of formulas in the .png. That could be improved 😅
 
Top