Open looooo opened 7 years ago
@looooo thank you for this proposal, which makes sense. But it's a long development process.
the current oce master is 0.18.2-dev (0.18 and 0.18.1 has been released). Both 0.18 and 0.18.1 are binary compliant with occt 691. It's important to understant that oce and occt are not exclusive, the question is not to choose one rather than the other. The difference between oce and occt is just the timeline, i.e. oce has a delay over occt release cycle. In an ideal world, everytime occt releases a new version, a new oce version should be released a few days or weeks after. But it's a painful work ;
the current master branch, 0.18.2-dev is intended to receive bugfixes over latest 0.18.1 release. 0.18.2 might not be ever released, if no one contribute any additional patch ;
it's possible to create a new branch, named 'occt710', including a oce-0.19-dev that is fully binary compliant with occt710. There are 3 steps : first copy/paste occt710 (just a few minutes), then apply the set of patches we have at oce (I would say from 150 to 200), solve conflicts etc. And the last one ensure it buids on most platforms.
There's no need to create another repository for a new occt fork ; use oce, which is already an occt fork, to upload occt710 and apply patches. It has been created in this purpose.
there have been several major changes from occt69 to occt7, it's not sure that our patches can be applied, may be it would be better to restart from scratch as you suggest ;
porting smesh to oce-0.19 (occt710) should be quite easy (latest salome720 is based upon occt7) ;
porting pythonocc to oce-0.19 will take more time.
My current plans are:
port smesh to 8.2.0 (i.e. extract smesh from latest salome8.20 release). This is a WIP (branch https://github.com/tpaviot/smesh/tree/review/salome-smesh-820). It still doesn't compile on windows and osx, been tryin
support netgen531. This is the netgen version officially supported by salome. @trelau tested netgen61 and 62, found some issues. Many people work at salome, skilled mesh engineers, my opinion is to trust them and to move up to netgen6 when they officially support it ;
integration smesh-8.2.0 into pythonocc ;
After that, move the underlying oce version (slowly move up all that stuff to occt-710).
If someone decides to go on with occt710 into oce, the previous plan might be changed.
Based on my experience with netgen 6.2, I agree with your plan to stick with 5.3.1 if it makes the SMESH integration easier (there are numerous patches I applied manually to 6.2). I actually experienced similar meshing issues with netgen 4 and 5 as I did 6. It seems there are some things that could be improved with the core meshing algorithm, although I couldn't replicate the issue on a small enough scale to try and isolate it. I think the main difference in the netgen 6 versions are more on the solver and Python interface side, but the core meshing algorithms are almost the same.
@trelau did you applied the netgen531 patch from the salome community ? see https://git.salome-platform.org/gitweb/?p=plugins/netgenplugin.git;a=blob;f=src/NETGEN/netgen53ForSalome.patch;h=ccd4e8c93a10df652300e72a1eec875fafb0b4bc;hb=HEAD
As you can see there are many changes over the codebase.
FYI I decide to create a new repository netgen4smesh, including the original netgen531, the previous patch, and a build system/ci.
@tpaviot I believe I applied the 531 patch netgen 6.2 from the latest version of SMESH I experimented with which was 7.7.1.
@tpaviot @trelau thanks for your fast reply.
But it's a long development process.
While it maybe is a long development process, setting up a future oce branch based on occt7.1.0 wouldn't be a really big thing.
first copy/paste occt710 (just a few minutes), then apply the set of patches we have at oce (I would say from 150 to 200), solve conflicts etc. And the last one ensure it buids on most platforms.
While the first step should be quite easy, applying the patches is maybe a bit more of work. My suggestion is to do the first step as soon as possible, and applying the patches one by one. It would be nice if you can setup a branch for the latest occt.
support netgen531. This is the netgen version officially supported by salome. @trelau tested netgen61 and 62, found some issues. Many people work at salome, skilled mesh engineers, my opinion is to trust them and to move up to netgen6 when they officially support it
FreeCAD is now using a patched version of salome to be able to use netgen6.2 (development) and occt7.1. Maybe it is possible to port some changes back to the origin project. A common salome-smesh base would simplify our lives a lot. But to get there it's necessary to also update oce to a newer occt. The sooner a version of occt7 based oce is available, the sooner we can start working on this. Creating a occt7.1 branch on oce would be a first step
@looooo occt7.1 integration into oce repository: WIP
Just found this issue and read everything but can't say I completely understood it :)
I'm still working on getting FreeCAD 0.17 to build with this fork of smesh... https://github.com/FreeCAD/FreeCAD/pull/1407
bump
FreeCAD has a smesh version included. We have adopted the latest netgen. For conda everything is currently based on occt7.1.0. My personal view is that your approach to have smesh in an external repo is much better than ours where we include all the smesh sources directly in the code. I would like to bundle forces towards an external smesh based on the latest sources. The main problem in my eyes is the divorced oce-library. While python-occ and this smesh-version use oce FreeCAD has adopted occt. Would it be possible to create a simple fork of occt7.1.0 as a oce18-dev and adopt the necessary diff from older oce-versions slowly? Having the same base (oce based on occt7.1.0) would decrease the maintaining work. (FreeCAD also slowly moves towards conda-packaging, and we have a occt-version available with conda-forge: https://anaconda.org/conda-forge/occt/files) Somehow it would make much sense to have only one oce/occt.
So my suggestion is to:
As there are not many people working on all these difficult libraries, I think it would make much sense if we could bundle our forces and work towards a common oce/occt base. As I do not have any insights into your development plan, I would like to know which points you agree with, and what the current plan for oce, python-occ and smesh is. Maybe we can find some common points...