Just a query and wondering if anybody knew.

I have 4 circles in a sketch measured over 140mm in a straight line. I place a line in between each and make them all equal. How does Solidworks do that sum? Surely one of the lines is not equal to the other two but it's so small and insignificant it doesn't matter. Also which line does it choose to be smaller?

As I said just a query. This is not going to make or break my design. Only became aware because the sketch became over defined and I thought that might be the reason before realising it was something else. This is probably one of the first things software programmers smoothed out and I'm just being really slow.

SolidWorks uses Seimens D-Cubed constraint solver (2D Dimensional Constraint Manager (D-Cubed 2D DCM): Siemens PLM Software ). I do not know how it works (I sent away for an explanation just now). But I'm pretty comfortable guessing that each constraint you add gets dumped into a system of equations, according to a set of rules. I don't know what the rules are, but, to use your example:

Line1.Length = 140mm

Line1.Length = Line2.Length

Line1.Length = Line3.Length

The lines are probably stored as two points, related by the constraints you've placed on them based on linear equations.

I believe that SolidWorks would iterate to the answer, because some equation constraints are non-linear. In the case of linear constraints, the iteration would hit the answer in one flop. Solving simultaneous equations is pretty well-documented on the internet.

To get to your specific question, 1/3 would be stored to 1/3 to machine precision, which is usually about 10^-17. I believe machine precision, and matrix conditioning, is the basis of the high and low size limits on SolidWorks features. The solution to anything /3 would be deterministic for an analytic solution, which should mean that the same answer would be stored for each line, which would be 1/3 +/- machine epsilon. For non-linear constraints, the solver would iterate until the error in each length became smaller than some predetermine threshold, which would be larger than machine epsilon. In this case, because the answer isn't analytic, it would probably be slightly different for each line. But the machine doesn't choose which is shorter. They just are where they are when the machine decides they are all close enough.

All just an educated guess. I'll update this thread when Seimens gets back to me with actual info.