realthunder wrote: ↑Sun Dec 30, 2018 12:18 pm
A solver is required, if there is any 'part' positioned by multiple constraints.
yes, "IF". But in the real world, in 90% of cases (probably closer to 99%) you don't need a complex solver, a part is positioned at a particular position. The assembly knows where the part is supposed to go (that's the target LCS), and the part knows where it is supposed to be attached (that's the attachment LCS).
Furthermore, you can also have 2D solvers in the assembly, where a complex Sketch represents some kinematics, and you place various LCSs on key points of the sketch. Then, if you attach parts to those target LCS, you can move the parts around by changing the parameters in the assembly's sketch. This is often more reliable and useful than having an empty assembly, placing parts, constraining them, checking that none are over- or under-constrained, making sure that you don't accidentally destroy geometries used for the constrains....
How is the proposed 'local coordinate system only assembly' going to solve this, where the same 'part' has requirements to met on more than one 'local coordinate system'?
Not sure to understand, but the idea is to have many LCS in the assembly, and many LCS in the part. The LCS in the assembly correspond to places where parts — or sub-assemblies — are going to be placed, and the LCS in the part correspond to the different attachment possibilites that the part has. Think of a wheel that can be attached on both sides of its axis, that's 2 LCS. Or if you want to attach a bicycle wheel centred, that's 3 LCS.
In fact, FreeCAD's AttachEngine is used for this purpose.
That's an information I didn't know, thank-you. Could you please give more info on that ? Supposed, for example, that I have an assembly, a part, each having 2 LCS, and I want to attach — using your App::Link framework — the part by one of its LCS to the assembly, twice, once on each LCS. Would it be possible to do it today ?
A solver's job is to find a solution that satisfy all the requirements simultaneously.
Yes, and all 3D CAD systems have a particular solver: mate 2 LCSs, one in the assembly and one in the part. So, even if you want to create a sophisticated solver that can work with partial constraints — parallelism, distance, coaxiality... — you'll have to make a solver for LCS only attachments.
Whet we're talking here is to solve that particular problem first, that's all.