Solver Issues

Discussion about the development of the Assembly workbench.
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
nonlimited
Posts: 14
Joined: Thu Dec 01, 2011 10:00 pm

Re: Solver Issues

Post by nonlimited »

Hello!

I finally found the time to test your changes.
Again using the same freecad file as I have submitted.

Lets start with
Issue 2)

The problem has been fixed as long as I lock one object (in this case the plate) in position (with the lock constraint).
Then the solver will find a solution for the angle contraint (in my case 45°).

If one object is not locked, it still fails if I exactly use the situation from the freecad-file provided. There will be no error, but the cylinder does not get rotated against the plate.

Issue 1)

Trying to align the cylinder against the two side faces of the plate still does not work. I have uploaded a screenshot of what happens.

Image
The faces still do not touch.

However, it partially works. If I set an offset != 0, than the cylinder gets an extra offset to the corresponding face. (Additionally to the gap you see on the screenshot). I can imagine that this is related to some radius vs. diameter problem or such.

On top of that the solver does not seem to distinguish between the face-directions. It makes no difference if I select "equal" or "opposite".

I hope that you can reproduce my problems.
ickby
Veteran
Posts: 3116
Joined: Wed Oct 05, 2011 7:36 am

Re: Solver Issues

Post by ickby »

Hello,

thanks for your feedback. The angle issue is a bit of a mystery. I can reproduce it, but need to investigate further.

the cylinder-plane alignment actually does work correctly, it just gives not the expected result. This problem has two valid solutions, and you get the unwanted one. (Imagine the faces as infinite planes, then you see it's correct). However, as the starting point is way closer to the other solution it should have found this one first. I will investigate why this is not the case.
User avatar
r-frank
Veteran
Posts: 2180
Joined: Thu Jan 24, 2013 6:26 pm
Location: Möckmühl, Germany
Contact:

Re: Solver Issues

Post by r-frank »

ickby wrote:Hello,

thanks for your feedback. The angle issue is a bit of a mystery. I can reproduce it, but need to investigate further.

the cylinder-plane alignment actually does work correctly, it just gives not the expected result. This problem has two valid solutions, and you get the unwanted one. (Imagine the faces as infinite planes, then you see it's correct). However, as the starting point is way closer to the other solution it should have found this one first. I will investigate why this is not the case.
Hello Stefan.

FYI, in Solidworks 3D, if alignment (for example tangential) leads to two possible results, you get a check box where you can decide which solution you want.

Roland
Deutsche FreeCAD Tutorials auf Youtube
My GrabCAD FreeCAD-Projects
FreeCAD lessons for beginners in english

Native german speaker - so apologies for my english, no offense intended :)
nonlimited
Posts: 14
Joined: Thu Dec 01, 2011 10:00 pm

Re: Solver Issues

Post by nonlimited »

ickby wrote:This problem has two valid solutions, and you get the unwanted one.
Thanks für the eye-opener! Visual sensation has a big impact on one's own plausibillity... :|

Anyways. If both constraints are just set to "parallel", then there are even four possible solutions. However, it usually converges to the solution shown in the picture, no matter of what starting conditions I provide.

This ambiguity should be solveable by applying the right face normals. If I would set both contraints to be "equal", then the solver actually should move the cylinder inside the plate.

I tried this and it gets even more strange: If I set one of the alignment-contraints to be "equal", then the cylinder will rotate such that the cylinder's axis will be parallel to the plate.

Image

In this case the highlighted contraint is also the one beeing set to "equal".
Post Reply