Whow, that is great. So a part seems to be similar to a Creo part.saso wrote: ↑Tue Jan 09, 2018 4:54 pmIt is just wonderful to see and learn from both of your experiences, NormandC and freecad-heini-1, in modeling such things!
I took the model from freecad-heini-1 and placed it inside a part (just create a part, select everything and drop it inside) with no problem, I think in the past this did not work that smooth, must be some of the latest commits from Werner
Great, and nice to see that this is possible meanwhile.saso wrote: ↑Tue Jan 09, 2018 4:54 pmI then created two more parts, one I made by just selecting the first part and make a copy, also went very smooth. The second one I created a new empty part and a PDN clone of the final array from the first part and placed the clone in the new part. Changing the array size in the first part keeps the clone nicely parametric, also no problems (except for the colors, but maybe that is even better like this so individual parts / clones can be colored differently). In the end I just moved the individual parts a bit with the transform tool.
I see no reason why we need bodies. You can sketch on different datum-planes or other faces, can redefine in which direction a pad or pocket should go, symmetry, two sides, and it's possible to map a sketch on a other face, so there is no need for a body, from my point of view.saso wrote: ↑Tue Jan 09, 2018 4:54 pmWhat I want to show is that Parts can work quite well and that the actual problem we have with them is that datum planes should not be inside bodies but inside parts (in last weeks I was arguing the same things but from the point of view when working with bodies). I think this example now nicely shows this problem (bug) also when not working with bodies inside parts.
I will repeat this again, bodies should "live" inside parts, they should be used for part solids construction (other non solid geometry should go directly under the part, as we see in this example), bodies should not have their own origins and datum planes but should use the ones from their parent part.
Again, since it is relevant for this example, datum planes should not be inside bodies but inside parts. I hope that with this examples now also others can see how, if we fix this things with bodies (moving origins and datum planes out of bodies in to the parts) things will work much better.
But I also understand the original idea why one would want to have the bodies behave like if they have their own origin (to freely move / position them inside the assembly with the transform tool). Bodies can be used inside parts in mainly two ways, first to create individual solid bodies that are positioned to each other and can reuse each other shapes and second to create individual "sub" solid geometry so that they can then be marge together with the bodies boolean tools in to a single more complex part. Specially in the first case, where you use them to create individual solid bodies one might want to be able to move them inside the assembly, but how this is done in other parametric cad's is that first those bodies are saved from the original multi body part in to individual parts (with this they now get their own origins) and then this parts are imported in to the assembly. Of course this extra step is need only in the case when one wants to move them separately in the assembly, else the original multi body part can be placed in the assembly directly. From my understanding the only (at the moment) parametric cad that does not need to do this extra step (first saving bodies to individual parts) and still have such a workflow is onshape, because it is not working with files but has everything saved in a database. Here is the nice thing with FreeCAD we are (will be) also able to save the bodies in to new parts without saving them in to extra new files Well In some cases maybe saving them to new files will be preferred (but this is IMO in most cases an unwanted step) and in FreeCAD users will be able to also do this and so have the freedom to decide for them self what is best for their needs.
Please try me new adwanced file:saso wrote: ↑Tue Jan 09, 2018 4:54 pmhttps://mega.nz/#!6IJCDJyQ!-_WEo5U_FrQ5 ... MFvAaDXUHs
Thank you for this information.saso wrote: ↑Tue Jan 09, 2018 4:54 pmPS: @freecad-heini-1 take care when creating two (or one) dimensional arrays, if you set the number of elements in all directions they will be created in all directions even if you set then distance in some directions to 0,00 cm (you final array has 3x3x3, but should be 3x1x3). Such things can make the arrays take much much logger to create then it should. Polar arrays should probably also be just 1x1x1...
I understand but the issue seems to important for me not to talk about it and this looked like a good example to demonstrate it, of course it can be moved to a new topic...
I am sorry but I cannot agree. This is not like with some other issues where things are just not implemented yet. This is like if we would be designing a car and made something that in general looks and works like a car but we realize at the end that we have put the wheels on the roof and then decide to just ignore this and move on. Ignoring issues like this is what will in the end delay things, you can try to drive that car and you can try to teach others how to drive it, however sooner or later you will probably have to realize that it is just not how it should be. If anyone has a clear vision how it should work the way it is implemented now I would love to hear and understand it.
Thank you dad.NormandC wrote: ↑Fri Jan 12, 2018 4:04 am@ saso and freecad-heini-1: this is not the place to question how PartDesignNext should work. Bance has created this topic to get help on a design, you are hijacking his topic.
Besides, PDN has been in master for almost 2 years. It was first created 5 years ago, then picked up again 3 years ago. Back then was the time to speak up, now it's too late. Do you want v0.17 to be postponed another 5 years? I don't.
I'm no developer, but what you are asking for is quite possibly scrapping the whole PartDesign concept that needed years of planning and implementation.saso wrote: ↑Tue Jan 09, 2018 4:54 pmI will repeat this again, bodies should "live" inside parts, they should be used for part solids construction (other non solid geometry should go directly under the part, as we see in this example), bodies should not have their own origins and datum planes but should use the ones from their parent part.
No, you have not demonstrated that point, not by a long shot. In your file there are no Bodies, sure, you don't have any solids either. You think bodies having an origin is the problem; how is that, exactly? Please elaborate. Because in your file, it does not even apply.saso wrote: ↑Tue Jan 09, 2018 4:54 pm(...) the actual problem we have with them is that datum planes should not be inside bodies but inside parts (in last weeks I was arguing the same things but from the point of view when working with bodies). I think this example now nicely shows this problem (bug) also when not working with bodies inside parts.
Thanks Normand. The problem is that in German language this was never clear documented, so users are guessing of the new PDN concept. Some of them think that a fc-part is similar to Creo part and bodies are similar to Catia body.
And again, the main problem is the lack of knowledge for many users, because of missing documentation.NormandC wrote: ↑Sun Jan 14, 2018 4:42 amI get the feeling you want to change how PartDesign Bodies work because you are grasping at functionality that has yet to be introduced; or because PartDesign is temporarily no longer playing nice with other workbenches (I'm sure this will be addressed in the future without putting the axe to Body's origin!) I also think that much confusion has been brought by naming the new general purpose container "Part". Here's what ickby wrote about it:
Just to show how the underlying structure can be complex, and possibly be over our heads (mine in any case ), I'm linking these topics: https://forum.freecadweb.org/viewtopic.php?t=15490
Most of us are. As for your reference to other CAD programs like CATIA and Creo, and how they compare to PDN and Part and Body: I wouldn't know, I've never used them. I have seen screenshots of CATIA posted here by a couple of forum members, that's it. My experience is with mid-range parametric CAD programs: Solid Edge (been working with it 11 years), SolidWorks and a little of Autodesk Inventor.
It is my understanding that most developers hate to write documentation. It requires time. They'd rather use the few hours they can dedicate to coding rather than documenting. Experienced users should try to pick up the task. Of course, we need to learn and understand how it works first. It's our conundrum. The chicken or the egg?
FreeCAD's own Assembly workbench was first developed by jriegel. His last contribution was 2 years ago in his own branch; I don't even know if it was merged in master. Even before then, ickby made a 3D constraint solver for it. But he's since focused his work on PDN, until it is mostly finished, work on assembly cannot resume. Assembly is intricately linked to PDN; in the past 2 years, ickby's had to make further changes to PDN specifically for the Assembly workbench. There may be more needed changes.
See this is quite a dangerous comment, because if you are not 100% sure (or at least quite sure ) that this is true and if there is not an absolutely clear vision how this would work in an overall concept of parts and assemblies, then this brings nothing but confusion to both the users that are trying to understand this and also to developers that try to realize users ideas and wishes.
Catia, NX, Solidworks, Soildedge, Inventor, Onshape and Fusion 360, all have the concept of bodies inside parts, while it is true that some manage them more automatically and others manually (giving users more responsibility but also more control over them) and some also name them differently, in their basic principles however they ALL work the same.
And it was in this conversation where he said that his main focus was on the Assembly, that he did only the basic on parts and PDN, enough to make them work for his assembly and that someone else will have to work on the real PDN and part stuff.
Because even two months ago I did not have the knowledge and understanding, that I have now, to make such claims. Over the last months I was getting increasingly annoyed by the fact that everyone seems to have their own understanding of what Parts and Bodies are and how they are supposed to work with Assemblies, possible pulling the future of FreeCAD in to very different, incompatible directions. I was however mostly annoyed with myself not able to understand the different concepts and visions, so I went and have spend most of my free time in the last two months to try and understand this...NormandC wrote: ↑Sun Jan 14, 2018 4:42 amFirst, as I hinted previously, I'm annoyed that you are coming up with these misgivings about PDN now, when 0.17 is finally about to come out. The PDN code was merged to master almost 2 years ago, in April 2016, and development builds were almost immediately available. Why couldn't you test it and make up your mind during that time?
Quite the opposite, I believe in the existing Parts and Bodies and I am trying to help to make them work... PartDesign is all about Bodies and Bodies are all about solids, it is the Part that should bring everything together for use in assemblies: solids from PartDesign bodies, geometry from PartWB and DraftWB, geometry from SurfaceWB and CurvesWB and others,... Part in FreeCAD is just the same as Part in any other parametric cad that works with Parts and Assemblies.
Well, since I am not suggesting any new functionality and not even to remove anything, my hope is that this changes would actually not take that much time. And if my understating is correct, that this changes will be need eventually, then even if this would postopne the release for a month or two it would be IMO worth it. But while I do code a bit, it is indeed beyond me to understand how much work this would take.
This is exactly how I also feel about it and the reason why I am a bit more pushy at the moment on this. There are other topics and ideas that I would like to discuss and I am happy to wait with them for later, but I do feel that it would probably be much better and easier to change this now. But I am not saying that we should do this because I say so, my wish for this discussion is mainly for everyone to get a better understanding of this concepts and to clearly understand the reasons why I believe this should be changed.NormandC wrote: ↑Sun Jan 14, 2018 4:42 amLet's say the changes you propose are approved, and they make it in 0.18 or who knows how many more releases after that; what does happen to all the files that have been created before? They'll be hosed, is what they'll be. Making a migration tool for it will be a major headache, it's already one for the switch from 0.16 to 0.17; not to mention using up valuable developer resources.
Well, yes and no, in general you could still use PartDesign to create solids, but if you would want to use datum planes to construct them and/or want to use them in assemblies then yes, you would have to place them in a Part, but this is exactly how they work also in all other parametric programs. The thing you have to realize is that in mid-range programs the concept of bodies is somewhat hidden from the user (but they are there!), this programs manage the bodies more or less automatically for the user, so for example, if you have a single solid inside a Part, no bodies will be shown to the user (in reality, there is already one body but is hidden) and only when you design your part so that it has several solids, it will automatically show bodies for this different solids. One could argue that this is more simple for the user but on the other hand one could also say that this also gives the user less control over bodies. I actually don't care that much about this if bodies should me managed in FreeCAD more automatically or manually, my point on this is that we already have a mostly working implementation of bodies (PartDesign is all about bodies and nothing else), it is indeed the more "manual" way of working with them and that is IMO ok.NormandC wrote: ↑Sun Jan 14, 2018 4:42 amAlso, removing the origin from the Body means that it would be obligatory to put a Body inside a Part container. This adds an unnecessary level for most of the parts that will ever be created in PartDesign. 90% of the parts I design in my day job (if not more) are single contiguous solids. I do not want such an obligatory step if unneeded. Having a single Body in my document fills the needs of most parts.
This discussion about separate part files is IMO at this stage totally irelevanten, users will be able to store Parts in to separate files or have them all inside just one file. This concept was planed for FreeCAD from the the beginning, see https://www.freecadweb.org/wiki/Assembl ... management and I think it is a good one for FreeCAD since FreeCAD is used by very different users and not all will need or want to use parts and assemblies. This does however show that we cannot manage our Parts as transparently to the user as other parametric programs do, but in those the user has no chose but to use part and assembly files for everything.NormandC wrote: ↑Sun Jan 14, 2018 4:42 amI'm thinking ahead on this, hoping dedicated file extensions will be created at some point (*.FCPart, *.FCAsm, *.FCTDrw, *FCArch...). An *.FCPart made in PartDesign would only have a single Body at the top of the tree, and it could be automatically created when creating a new file. An assembly file would link to external Part files, which is how Assembly2 and any parametric CAD program works.
Ok, you are sort of right that I have not demonstrated everything with that example, the thing however is that I was having most of this discussions before with freecad-heini-1, in other topics and I am happy that I was able to demonstrate this to him in a way that he was able to see at least the possibility that FreeCAD Part is in general the same as Part in any other parametric cad program. And I am still trying to make him and others to really believe in itNormandC wrote: ↑Sun Jan 14, 2018 4:42 amNo, you have not demonstrated that point, not by a long shot. In your file there are no Bodies, sure, you don't have any solids either. You think bodies having an origin is the problem; how is that, exactly? Please elaborate. Because in your file, it does not even apply.saso wrote: ↑Tue Jan 09, 2018 4:54 pm(...) the actual problem we have with them is that datum planes should not be inside bodies but inside parts (in last weeks I was arguing the same things but from the point of view when working with bodies). I think this example now nicely shows this problem (bug) also when not working with bodies inside parts.
No, my feeling is that Juergen had a more or leas clear vision of this concepts (at least if I understand it correctly that most of the PDN and Assembly that ickby is now working on was actually first designed by him and also the basic design documentation like this one https://www.freecadweb.org/wiki/Assembly_Basic_Tutorial is also from him) because they are IMO quite clear and straightforward and that everyone else is since, more or less just trying to blindly guess and make sense from it. Note that my understanding of this is also quite new, my point however is that this things should not be as confusing and unclear to us as they seem to be from the past discussions, because in their basic principles they work absolutely the same way in all parametric cad programs. FreeCAD Parts and Bodies are not that specialNormandC wrote: ↑Sun Jan 14, 2018 4:42 amI get the feeling you want to change how PartDesign Bodies work because you are grasping at functionality that has yet to be introduced; or because PartDesign is temporarily no longer playing nice with other workbenches (I'm sure this will be addressed in the future without putting the axe to Body's origin!) I also think that much confusion has been brought by naming the new general purpose container "Part".
This is absolutely how I also see and understand FreeCAD Parts...