Zolko wrote:this can be felt: Part and PartDesign — which are the fundamental building-blocks of a CAD system — are broken. Releasing a 1.0 version with such a situation would be close to lying.
That's an absolute exaggeration!
The Part workbench was there before PartDesign and was implemented as a general purpose system. The PartDesign workbench was then implemented on top of Part with a more streamlined workflow in mind. It adds a lot of automatisms but also restrictions compared to the Part workbench. And because it is more restrictive it's automatically inconsistent in a certain way. So, things are in no way broken.
And the users were always discouraged to mix up Part and Part Designs functions too much. In the future we will have to see what to do with the Part workbench once the PartDesign offers all basic functions. AFAIK JRiegel's plan was to hide it (maybe add an option so that people can re-activate if desired).
Btw, I once had access to a commercial CAD application which consisted of many modules. There it was also possible to model a surface in one module which couldn't be reused in other modules. The application was about 50,000 Euro per license and its name was Catia V5.
And the problem is not only that this functionality is limited and broken, but that the process to lead to this situation is also broken: why wasn't this intercepted during merging ? Why wasn't the developer who proposed the 2nd implementation — whichever it was — been told that a similar function already existed, and he should improve that one instead of rewriting a new implementation, with some important features missing ?
Maybe because it was the grand master himself who started the development? At that time it was discussed and agreed to have the more streamlined Part Design functions.
Zolko wrote:What would worry me much more: if PartDesign is indeed orphaned, who knows the code well enough to add those functions to PartDesign ? There are many small things in PartDesign that need to be fixed, who is able to touch that code ?
I wouldn't say it's orphaned. Since the PartDesignNext branch was merged to master I did a lot if bug fixing there and added also a handful of new features. At the time when PartDesign was developed in a separate branch I was not part of this team but in the meantime I understand the code good enough (but for sure not entirely) to add some new features. IMO, the main reason that the PartDesign workbench hasn't evolved much in the last years is that there was no agreement between the involved developers and some pro-users (with a lot of background knowledge from commercial CAD systems) on how certain functions should behave.
Zolko wrote:How did the become the copyright holders ? How are they making decisions ? Where is it documented ?
At the beginning the copyright notice only included Jürgen Riegel. After some years of contribution he decided to add my name too. Then after a few years after Yorik joined and contributed we decided to add him, too. That's the whole history. Until that time there have been only a handful of people who contributed to the project. It was around 2010 when FreeCAD started to become mature enough to do useful things with it. And that was the time when more and more people joined the project.
wsteffe wrote:But this mine is just an other digression from the most important point: The FreeCAD project needs a project leader with a clear vision of the project goals and of the road to get there.
How did the German chancellor Helmut Schmidt once say? People with visions should go to the doctor.
So, in conclusion, if the the goal of FreeCAD is to mimic the life evolution it may retain the current numbering scheme (0.18, 0.19 to arrive to 1.0 after a few hundreds of years). But I hope that a person with a clearer vision will emerge (probably trough a fork) and that he will drive (in a reasonable time frame) the FreeCAD code to a point where it may be considered the "production-level software" described by Zolko.
I think that, for visualization purpose, it would be easier to use the V3d_Viewer class which is part of the OpenCascade library instead of relying on an external package like Coin3D or OpenSceneGraph. V3d_Viewer (see https://www.opencascade.com/doc/occt-7
. ... iewer.html), together with AIS_InteractiveContext, is designed to work on OCC objects providing also the selection mechanism needed in any CAD environment.
I don't know when you started to work with OCCT. I made my first experiences 20 years ago with version 3.x when it was still a proprietary product and together with JRiegel we were working on an in-house product. At that time the viewer was simply not capable of handling huge data structures, especially meshes with e.g. > 500,000 triangles.
And at the very beginning of FreeCAD we also used this viewer but it turned out that we had to move to something more powerful. We decided to go for Coin3d -- an OpenInventor reimplementation. Alternatives were Coin3d, OpenSG and maybe OpenSceneGraph (I don't remember how mature it was at that time) but Coin3d was the most advanced system at that time.
wsteffe wrote:I really do not understand why the FreeCAD developers wanted to reinvent the wheel (with an unecessary conversion from OCC objects to a different kind of representation) instead of using the visualization tools available in the Opencscade library, which is already linked to and extensively used by the FreeCAD code.
It's rather the other way round. Coin3d offered a lot of more features you never got with OCCT (unless you implemented all this on your own). The one and only advantage of the OCCT viewer over Coin3d I remember was that it had a ready highlighting/selection system. But the effort to get something similar with Coin3d was not that much.
And why do you think that other projects like Salome additionally use the vtk viewer? Because the OCCT viewer was so great?
I think in the meantime the OCCT viewer has improved -- maybe since the developers decided to also use vtk? I don't know.
I can just tell you that in OCC a presentation can be assigned (as an attribute) to a label of the OCAF data structure.
The latter is a tree like structure where each label is associated with an object (in example e body/part/subassembly..) and may
have several attributes.
That was another big limiting factor at that time. Everything was fine as long as you used pre-defined types but as soon as trying to register own types everything became very complicated with an intransparent plugin system. After spending several years without real progress we decided to go our own way with our own document structure and with our own visualization using Coin3d.
wsteffe wrote:It is you (not me) which departed from a constructive discussion by saying that you do not care about the CAD market needs because you and most other FreeCAD developers are just coding for their personal fun.
Look at the title of this thread. It is about the version numbering of future releases which was kept in a friendly and constructive manner until Zolko and you joined it. It was mainly you both who have turned the whole discussion in a destructive manner full of subliminal accusations and debasing attributes. Now you got a reply in the same manner and you start to complain about this. Sorry, but this is simply childish behaviour.
I just would like to see a faster progress and I expressed my thought that a clear and shared vision of what the FreeCAD architecture is supposed to be would help this process.
When looking at the history of EmCAD
then you haven't contributed to it for more than 3 years. So enough time to have participated here in a constructive manner if things don't go fast enough for you.
Btw, have you ever worked on an open-source with more people involved than yourself? Do you really think you can force people to work on certain areas they don't really understand/need/whatsoever? Once you start with this you cannot look fast enough and a community project turns back into a one-man show.
So, you have to be happy with the people who join and offer their spare time to work on functions they want to see improved. If you want professional structures then at some point you have to pay the people.
Zolko wrote:so he approved the merging of PartDesign::Pad when Part::Extrusion already existed ?
No. There was the old PartDesign that was done by JRiegel. Starting at around 2012 its successor PartDesignNext was done in a separate branch developed by a handful of people. Before it was ready JRiegel left the project and the code was orphaned until ickby decided to rebase it. I then merged the reworked branch which was a consensus decision.
wsteffe wrote:The difficulty in having a constructive discussion between wmayer and realthunder on the merits and drawback of LinkStage3 is a clear example of the communication problem affecting the FC project.
Realthunder asked me exactly once to have a look at the Assembly stuff. And I also started to have a quick look on the code but then I was forced to stop it again because a more important issue emerged: many Linux distributions started to kick out Qt4 from their repositories and all dependent projects too. So, I decided to push forward the Qt5 migration and also continue with the Python3 port as maintenance of Python2 will stop in foreseeable future.
And seriously what else do you expect from me? I have to check the majority of PRs, fix bugs listed in our bug tracker, make sure that FreeCAD compiles on a wide range of different platforms with different versions of libraries, participate on several development discussion, help newcomers to get their things done who use the FreeCAD API, look through the results of code checkers regularly offered by saso to improve code quality, ... while for several years I have nearly no time any more to implement the stuff that I am interested in.
So, I don't have the time to also go in parallel through a huge PR with from what I have read more than 100,000 lines of code changes.