Assembly3, A2plus, Assembly4? Get united!

Discussion about the development of the Assembly workbench.
chrisb
Posts: 19044
Joined: Tue Mar 17, 2015 9:14 am

Assembly3, A2plus, Assembly4? Get united!

Postby chrisb » Sat Oct 12, 2019 9:44 pm

Currently we have at least these three Assembly workbenches. And none of these deserves yet to be called "The FreeCAD Assembly Workbench".

@realthunder,kbwe, zolko: You have proven that you are great programmers, but I'm sure you will really be admired if you talk and listen to each other, listen to ickby, Werner, and other gurus, and then unite your forces in order to create "The Assembly".

It may be difficult to abandon well programmed functions and beloved concepts, but it will not get better if you do so in a year or so. For the FreeCAD community it would be phantastic to see you walk into one direction!
realthunder wrote:ping
kbwbe wrote:ping
zolko wrote:ping
User avatar
Zolko
Posts: 411
Joined: Mon Dec 17, 2018 10:02 am

Re: Assembly3, A2plus, Assembly4? Get united!

Postby Zolko » Sat Oct 12, 2019 10:53 pm

This doesn't sound like a very scientific approach to me.

What are the problems we want to solve ? I'd rather suggest to list some typical use-cases, and try to solve them with the available tools. Then we can talk about the relative merits of different proposals. There are other people doing funny quasi-assembly stuff that you didn't list. I'm not even sure that 1 solution to rule them all is the best possible outcome.

Would you — and everybody who feels concerned — try to list use-cases and typical scenarios for an assembly workbench ?
try the Assembly4 workbench for FreCAD v0.19
install with Tools > Addon Manager > Assembly4 — simple tutorial here
realthunder
Posts: 1214
Joined: Tue Jan 03, 2017 10:55 am

Re: Assembly3, A2plus, Assembly4? Get united!

Postby realthunder » Sat Oct 12, 2019 11:23 pm

Well, I consider myself an open minded guy. I actually incorporated some of Zolko's idea into asm3 with the 'Placement' constraint, and I supported his asm4 as well. I actually plan to take a look at a2plus solver when I have time. It's just that there are other more important things to do first.
Try Assembly3 (latest version 0.10.2) along with my custom build of FreeCAD at here.
And if you'd like to show your support, you can donate through patreon, liberapay, or paypal
catman
Posts: 81
Joined: Fri Jan 11, 2019 10:42 pm

Re: Assembly3, A2plus, Assembly4? Get united!

Postby catman » Sat Oct 12, 2019 11:51 pm

Zolko wrote:
Sat Oct 12, 2019 10:53 pm
some typical use-cases,
Maybe it could help to set up a bit more realistic test case. This will bring the use cases all by itself. I am talking about a device with a few hundred parts using all kind of mechanical items. One thing could use an existing open source design of a 3D printer. Contains parts for many work benches (Part, PartDesign, TechDraw, Fasteners, Draft/Image (e.g. stickers), Gear, SheetMetal, Path, KiCadStepUp, Flamingo, Rendering, Exploded Assembly maybe more). You could put it in a fancy room using Arch, of course.

You have lots of interlocking mechanisms wating to see if we could sufficiently scale Realthunders realtime solver to move everything interactively of if we need to mix in Zolkos great apporach using LCS based asembly. It would be an superb example to verify if FreeCAD is already capable of keeping such a thing together. It would be a great help for newcomers to see how to structure such a full project.
It should also be as valuable for TechDraw. To see if it is really complete to get a standard set of drawings for all parts conform to the standard in a manageable way.

looking at the length of dicussion threads in assembly I am sure it would provide a base for all use cases found in there 8-). An if something is missing, we just add a something new, like flexible cabling :shock:

just an idea...
Version: FreeCad V0.18 and V0.19 trials
OS: Ubuntu18.04/16.04,Win7
BassMati
Posts: 73
Joined: Sat Oct 06, 2018 11:39 am

Re: Assembly3, A2plus, Assembly4? Get united!

Postby BassMati » Sun Oct 13, 2019 1:17 am

Such a large project is fine for benchmarking, and perhaps as test case - provided that the test results can be verified automatically. I guess, nobody is keen to check a really large assembly for correctness by visual inspection...

Newbies will most likely prefer very small projects, with emphasis on small aspects of a design. At least I would, as I am quickly overwhelmed by a large, complex example.

I am currently working on a larger design, but concentrate on a small fraction of the technology, Realthunder's Link, and expressions to define the relationships between objects in the design. Works surprisingly well, even on my slow machine (Core m3, 4 GB RAM, SD memory card, onboard grafics, Win10).

When done, I'll try to recreate the design with Assembly Constraints, just to see if and how the solver engine kills performance. Then again with Zolko's Assembly 4 approach, which I regard similar to what I'm currently doing. Can't tell much about Assembly 1 and 2(+), only played a little bit with it, but got frustrated, mostly because lack of experience with freecad.

If asked for my two cents, I'd suggest to
- let the different assembly workbench projects stabilize,
- then evaluate their strengths and weaknesses (ease of operation, functionality, performance with large designs, stability (with respect to design changes (topo naming…)),
- then discuss how to proceed.

I would be happy to see _a couple_ of assembly workbenches, each with its own viable approach, but all compatible, and based a shared code base. Then we can choose the technology that best fits the project.
chrisb
Posts: 19044
Joined: Tue Mar 17, 2015 9:14 am

Re: Assembly3, A2plus, Assembly4? Get united!

Postby chrisb » Sun Oct 13, 2019 6:01 am

Zolko wrote:
Sat Oct 12, 2019 10:53 pm
This doesn't sound like a very scientific approach to me.
I did not want to stipulate how you achieve the goal, and of course the community is invited to join. As you mention a scientific approach: very good idea, to collect abstract requirements first, which could well be accompanied by concrete examples. This may push personal preferences into the background.
There are other people doing funny quasi-assembly stuff that you didn't list.
kisolre is a highly rated forum member, I appreciate his contributions very much; and I sure did not want to exclude him from this discussion.
kisolre wrote:ping

I'm not even sure that 1 solution to rule them all is the best possible outcome.
You may be right, yet I hope that a common base can be found on top of which we may have different flavours.
Would you — and everybody who feels concerned — try to list use-cases and typical scenarios for an assembly workbench ?
I admit that I cannot contribute very much yet, because I'm not familiar with other systems and have until now built my "Assemblies" within a single file only, using Part containers. This is an approach similar to ppemawm's models.
I had hoped for "The Assembly" before I start.
realthunder wrote:
Sat Oct 12, 2019 11:23 pm
I actually incorporated some of Zolko's idea into asm3 with the 'Placement' constraint, and I supported his asm4 as well. I actually plan to take a look at a2plus solver when I have time.
I'm happy to hear that, because without such open minds it's difficult to create open software :D .

It's just that there are other more important things to do first.
That's, of course, well understood. I have seen all these requests following up the Big Merge.
kisolre
Posts: 1360
Joined: Wed Nov 21, 2018 1:13 pm

Re: Assembly3, A2plus, Assembly4? Get united!

Postby kisolre » Sun Oct 13, 2019 7:20 am

Just my two cents of semicmprehencible thoughts and probably a little rant :)

I think that the general public forgets that FreeCAD is not a monolith application to perform a single task but more of a collection of tools to operate on a solid geometric data. Which must be robust, suitable for a lot of different tasks but not unneccessary complex. OCC, BREP, Coin, Python were slected as most suitable at the time. And we are stuck with them unless a complete redesign from the ground up happens (as Blender 2.8). Everything else is on top of that. It would be nice to have a working and polished assembly workbench but it should not exist just to have it. It should fit a need -use cases, peoples understanding of what is actually possible and how it is achieved.
You have an idea for Asm3, you need a link object, you make that happen.
You introduce LCS, you have an idea for Assembly4, you make it.
You have an idea to use sketcher solver, you introduce it to the community, but that is as far as you want to go - thats it.

It is all about use cases and users. We all want assembly workbench but actually manage to do our projects without one. Some can actually create one but do they need it in the long run? Will they continue to support and manage it? Will it be understandable so someone can pick it up and continue the work if the original developer loses interest, incentive, goes to a deserted island to become a monk?

And the rant... Why dont all objects that have Placement have also Attachment? If their placement should be deriver from a parrent object (like a Part container) it can always Deactivate its children Attachment. In my experiment with sketcher as assembly solver I should not have to use Draft clones but the bodies directly. I also noticed that I can clone Part containers but that does not duplicate geometry so cant use that to circumvent Part's missing attachment.
User avatar
Zolko
Posts: 411
Joined: Mon Dec 17, 2018 10:02 am

Re: Assembly3, A2plus, Assembly4? Get united!

Postby Zolko » Sun Oct 13, 2019 9:20 am

BassMati wrote:
Sun Oct 13, 2019 1:17 am
I am currently working on a larger design, but concentrate on a small fraction of the technology, Realthunder's Link, and expressions to define the relationships between objects in the design.
...
Then again with Zolko's Assembly 4 approach, which I regard similar to what I'm currently doing.
Yes, this sounds familiar. Do you have some code so I can have a look ?
try the Assembly4 workbench for FreCAD v0.19
install with Tools > Addon Manager > Assembly4 — simple tutorial here
User avatar
Zolko
Posts: 411
Joined: Mon Dec 17, 2018 10:02 am

Re: Assembly3, A2plus, Assembly4? Get united!

Postby Zolko » Sun Oct 13, 2019 9:26 am

chrisb wrote:
Sun Oct 13, 2019 6:01 am
I have until now built my "Assemblies" within a single file only, using Part containers. This is an approach similar to ppemawm's models.
ppemawm wrote:
Sat Oct 12, 2019 6:40 pm
I cannot yet see how this works with top down modelling. So far, the master sketch approach works quite well for me especially for articulating mechanisms.
the master sketch approach is also what I use with Assembly4. You draw a master sketch in a part, you attach by MapMode several LCS to relevant vertexes and lines of the sketch, and you link parts with their own LCS to the LCS on the master sketch. It's quite exactly what kisolre does, except that he places clones of parts (or bodies) in the same file, whereas in Assembly4 the "clone" is an App::Link.
try the Assembly4 workbench for FreCAD v0.19
install with Tools > Addon Manager > Assembly4 — simple tutorial here
chrisb
Posts: 19044
Joined: Tue Mar 17, 2015 9:14 am

Re: Assembly3, A2plus, Assembly4? Get united!

Postby chrisb » Sun Oct 13, 2019 9:50 am

Just to make clear what I want and what I don't want: I don't want to suppress different workbenches, but I don't want to see that several capable programmers invest time in basically the same functions.

I believe in the inequation 1/1 > 4/5+3/4+1/2 + 1/10 + ...