Old Workflow refactoring

Discussion about the development of the Assembly workbench.
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
jmaustpc
Veteran
Posts: 11207
Joined: Tue Jul 26, 2011 6:28 am
Location: Australia

Re: Old Workflow refactoring

Post by jmaustpc »

DeepSOIC wrote:Ah, well, don't listen to me, I'm just a guy having some fun with a 3d printer :P . I think I've already put too much IMHO here.
:)

And I am just a poor unfortunate guy who does not even own a 3d printer :cry:

But I guarantee I do have something you do not have....I have a ding in my car where my wife hit a kangaroo! :D

It might sound cruel, but roo's are really, really, stupid, and they can move up to something like 60km/hr, they tend to jump out in front of you and do the stupidest things...after a while you just get annoyed by them.


now back to assembly!
I don't claim to know enough to make an informed decision, I was just repeating what I thought Juergen and others had said a few years back. Basically something along the lines of "the assembly changes are so fundamental that there will have to be a change in files, and work flow, meaning people will have use old non-assembly FreeCAD if they want to use old files and work flows, and that old files would need to be imported and converted to Assembly FreeCAD", or something along those lines. As a user of FreeCAD, I would be happy to accept that if I had to, although its of course not ideal.

Back then there would have been a lot less user work and users and hence less frustration, but a long time has now passed...so perhaps the situation is now different.

:)
triplus
Veteran
Posts: 9471
Joined: Mon Dec 12, 2011 4:45 pm

Re: Old Workflow refactoring

Post by triplus »

I think the same thing needs to happen as it did with external linking support and therefore getting to the final decision could take time.
ickby
Veteran
Posts: 3116
Joined: Wed Oct 05, 2011 7:36 am

Re: Old Workflow refactoring

Post by ickby »

The part design workbench offers a streamlined workflow for creation of solids. It should not do everything, just solid creation, but that in a very efficient manner. The body is the solid and the features are a way to create it, work on it. This is the philosophie, everything should be geard toward that. Going away from this will only create a tremendous amount of confusion. Having part design features in the body, the part or at the documents top level completely kills the simplicity for no real use. I know what you guys are aiming at, but here I must set a red line: it is not going to work for the arbitrary user, it is too confusing. With the switch to parts and bodies we decided to introduce new concepts which of course have their own set of limitations, but now we should make sure we keep it consistent to not again lose the advantages.
deepSOIC wrote:Is it enough to say that I need them for my projects?
The general purpose is the same as it is in PartDesign: attaching sketches, referencing them for axes, referencing them from Sketcher... I hope you don't say you are about to ditch Part workbench.
I think they are going to be very useful in Arch, too. EDIT: for example, the current interface for placing Section is quite horrible.
No part stays :) I also see your reasoning. However, I stay with my opinion: part design features only in bodies! Therefore one could bring the datum features to the part workbench and then add a special version to part design which always adds the datum to the body, like it is currently done for sketches. Your arch example is a good point for my view: it would be strange to need to go to part design to have a datum in arch. Or to make arch dependent on part design.
I think if we clearly present the advantages to users, they will stick to bodies without any enforcement from FreeCAD. This can be made as a don't-show-again pop-up when trying to place a new sketch, for example.
This will create a monster of mixed designs and a hell for the support guys here at the forum. I repeat myself, keeping it straight is important.
Suggestions? Drop it and tidy up the migration?
One thing I really want to be taken care of is the ability to make small changes to existing designs. I can imagine the amout of frustration, where I would have to go through the migration, probably a painful process, to merely add a small pocket to a piece.
I'm not against that, I'm only against being able to mix the old files with a part or a body. To offer some kind of "legacy mode" seems reasonable, but there should not be no way to add a part/body to an old document. One can additional think of a new feature which brings old documents into a body by grouping the whole document beneath it (or a subset of connected components). This could be the first feature in a new body. Than, through the work you have done, one can edit all the old features in this legacy object and still add new things in the normal body workflow.

There will be some pain going to the new worflow, yes. But it is way more pain supporting both for the future, imagine all the "why can't I use this design in assemblies" questions. We should have this pain now, one time the hard way.
Fat-Zer wrote:why?
I hope that I made it clear: PartDesign features only beneath a body everything else gets confusing.
triplus
Veteran
Posts: 9471
Joined: Mon Dec 12, 2011 4:45 pm

Re: Old Workflow refactoring

Post by triplus »

My opinion could change but we could simply make old .fcstd files not compatible with new versions of FreeCAD NEXT and stop putting effort in that.

P.S. For old .fcstd files there will still be final FreeCAD legacy version available and can be used in foreseeable future to work on existing .fcstd files.
User avatar
DeepSOIC
Veteran
Posts: 7896
Joined: Fri Aug 29, 2014 12:45 am
Location: used to be Saint-Petersburg, Russia

Re: Old Workflow refactoring

Post by DeepSOIC »

ickby wrote:but there should not be no way to add a part/body to an old document.
This sounds absolutely horrible to me. How are we supposed to tell that a file is old? How are other workbenches supposed to work in this situation? To me, it sounds like you are trying to isolate partdesign from everything else completely, right :| ?
ickby wrote:There will be some pain going to the new worflow, yes. But it is way more pain supporting both for the future, imagine all the "why can't I use this design in assemblies" questions. We should have this pain now, one time the hard way.
We either have to do it (the burden of all files isn't going to vanish, never; the later = the worse), or.. a suggestion: make this partdesign a whole new workbench. New set of objects, new types. Rename old PartDesign to LegacyPartDesign, hide it by default, and let it support the old workflow, the way it is. Introduce tools to transfer designs to new structure (it can even be done by people, with Python, and after the merge). Then, some time later, kill the old workbench.

If that's not an option, I agree with tanderson69 and triplus:
triplus wrote: we could simply make old .fcstd files not compatible with new versions of FreeCAD NEXT
Fat-Zer
Posts: 176
Joined: Thu Oct 30, 2014 10:38 pm

Re: Old Workflow refactoring

Post by Fat-Zer »

ickby, To be honest I was a bit frustrated, angry and whatever with your first post in the thread...
I agree that there should be an object which encapsulates the part design workflow for a single object and the body behaved quite well in such role. But I don't think people must be nailed to use it unless it really necessary or doesn't break any usecases (current it does so a lot).
I can accept the reason «Not to confuse the users» and some philosophical stuff... I pretty agree with that. But I still think that it would be better to let the user choose whether he want some smart multy or not.

On the other hand things which are not acceptable from my point of view include at least:
  • Break backward compatibility of files.
  • Make everyone unconditionally migrate their old files to new workflow (whatever smart the converter will be it won't handle all usecases IMO)
As a compromise here is a semi flow chart/state diagram of how to handle new/old workflow as I see it:
freecad-partdesign-workflow.png
freecad-partdesign-workflow.png (17.21 KiB) Viewed 1875 times
The old workflow forbids adding of bodies/parts, may be datums. And enables any old-style use of part design features.
The new one vice-versa: Enables bodies but commands will refuse to add features outside of bodies.

But I also would like to see some "expert" or "migration" mode which will allow to use both workflows at the same time (mix bodies and free part design features as it now in the current old workflow branch) it may be totally necessary than migrating some complex files with lots mixes of part/partdesign features (mostly any current file).

Note that in any case as for current design there will be no way from keeping a user from inserting a feature outside of a body with python or some tricky operations, or even just accidentally... So this must be handled correctly in code everywhere, otherwise there definitely will be at least errors or even crashes.
triplus
Veteran
Posts: 9471
Joined: Mon Dec 12, 2011 4:45 pm

Re: Old Workflow refactoring

Post by triplus »

What happens with objects modelled in Part WB and potentiality in PartDesign CURRENT? Could this objects be used to create assemblies?

Or will that only work with objects modelled in PartDesign NEXT?
User avatar
DeepSOIC
Veteran
Posts: 7896
Joined: Fri Aug 29, 2014 12:45 am
Location: used to be Saint-Petersburg, Russia

Re: Old Workflow refactoring

Post by DeepSOIC »

I think, there should be a way to add Part-workbench objects to PartDesign's Parts. It can be done with python, now.
Fat-Zer
Posts: 176
Joined: Thu Oct 30, 2014 10:38 pm

Re: Old Workflow refactoring

Post by Fat-Zer »

IMHO in advance they should be able to be added to Part objects, but not bodies...
ickby
Veteran
Posts: 3116
Joined: Wed Oct 05, 2011 7:36 am

Re: Old Workflow refactoring

Post by ickby »

ickby, To be honest I was a bit frustrated, angry and whatever with your first post in the thread.
I apologize if I was a bit harsh, I did not intend to frustrate anyone. But I must also note that the whole new PartDesign idea exist for years, people have on and off worked on it for years, expecting to just step in and change fundamental things without any discussion is prone to lead to strong reactions. But let us keep this aside and try to come to a good technical solution.

Fat-Zer, what you have shown in your graph is pretty much what I tried to describe with words earlier, I like this. (But I suppose the Yes/No must be interchanged on the "Does document have Bodies" field?)
I think, there should be a way to add Part-workbench objects to PartDesign's Parts. It can be done with python, now.
Parts are not a PartDesing thing, they are a general thing, and the idea is to automatically add all part stuff to the active Part. There should be not real modeling outside of Parts anymore. It is not yet clear how for example arch and draft will handle this, but in general everything is expected to be in a Part, like for example Catia or SolidWorks handle this. PartDesign bodies are only one kind of things inside the Part next to many others.
Note that in any case as for current design there will be no way from keeping a user from inserting a feature outside of a body with python or some tricky operations, or even just accidentally... So this must be handled correctly in code everywhere, otherwise there definitely will be at least errors or even crashes.
Yes, but in python you can always do anything crazy. Python is expert mode, so this is ok. Accidently of course is not ok and must be considered a bug.

About expert/migration mode we can have a discussion, as long as there is a barrier for the normal user to get into this mode.
a suggestion: make this partdesign a whole new workbench. New set of objects, new types. Rename old PartDesign to LegacyPartDesign, hide it by default, and let it support the old workflow, the way it is. Introduce tools to transfer designs to new structure (it can even be done by people, with Python, and after the merge). Then, some time later, kill the old workbench.
That is actually also not that bad and worth a thought
Post Reply