Embedding assembly in FreeCAD's various uses

Discussion about the development of the Assembly workbench.
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
User avatar
adrianinsaval
Veteran
Posts: 5544
Joined: Thu Apr 05, 2018 5:15 pm

Re: Embedding assembly in FreeCAD's various uses

Post by adrianinsaval »

Could this be sped up with a JIT compiler or something like that? Is the resource heavy part of the algorithm solving a system of equations? Is that done entirely in python or is it handled by a library?

About sketcher: my understanding is that there is some analytical constraints but most rely on a numerical method, I've seen threads were tolerances for the sketcher solvers are mentioned.
It is true that placement can be analytical, that is the manual assembly approach and kinda Assembly 4's method too, there is just a tiny bit of inaccuracy there due to the limits in the precision of values (this is what I meant when saying computers are inherently inaccurate). As you can imagine assembling with the analytical method is more complex for the user.

Now this is just me rambling but I think the analytical method is not "two way", say I have two arms with pivoting joints and I set one end of the first arm fixed in a position and the second arm attached to the other end of the first. Now the position of the second arm depends on the rotation of the first. If I try to move the second arm it would snap back to the position it was, I can only rotate it and the first arm does not move unless I explicitly ask for it. When using a numerical solver you can move the second arm and the first one can rotate to follow.

Can any of the assembly gurus tell me if this is correct or wrong?
User avatar
Roland
Posts: 333
Joined: Fri Aug 21, 2015 2:20 pm

Re: Embedding assembly in FreeCAD's various uses

Post by Roland »

Dear Assemblers,

Perhaps it helps if I give you this simple example as an illustration of the problem. Attached are 2 models. 1 assembled by A2+ (Merge_A2+) and 1 placed by manually giving the coordinates (Merge_Manual). It is a simple flow problem of 2 coaxial pipes blowing into a box. In both cases I make Part Fuses to create a CFD suitable model. Merge_A2+ contains errors, Merge_Manual is flawless (Part > Check Geometry). The errors can be viewed easily using Clipping Plane. Look at where the pipeflows enter the box.
Attachments
Room.FCStd
(3.37 KiB) Downloaded 26 times
Pipeflow_outer.FCStd
(6.02 KiB) Downloaded 24 times
Pipeflow_inner.FCStd
(3.35 KiB) Downloaded 22 times
Merge_Manual.FCStd
(11.5 KiB) Downloaded 24 times
Merge_A2+.FCStd
(11.96 KiB) Downloaded 22 times
Post Reply