Still time for one more before Christmas.

A while ago I wrote a Cab builder plugin.

You simply enter a few dimensions for the size, curve height and overhangs and it automatically generates a box with a curved roof.

You simply enter a few dimensions for the size, curve height and overhangs and it automatically generates a box with a curved roof.

So that part is easy. I took the dimensions from the plan, as mentioned in the pervious blog post, and filled in the form (dimensions in metres)

Ta-da! A cab with a lovely curved roof in a few seconds.

*Then I hit a problem.*Being a bit of a stickler for straight edges, I couldn’t think of an accurate way to move the points that make up the roof edge to match the plan.

Shown below (I applied a translucent material to the roof so the plan could be seen)

Ideally the points needed to be "sheared" or I could shift them by hand – but that could lead to inaccuracies.

Then I had an idea – I vaguely remember back to my days of experimental physics at university. There was a method of finding the best straight line through a set of points of one axis was known accurately, which the X axis (left/right) is in this case.

A bit of a search threw up the

**Least Squares method**– http://www.che.udel.edu/pdf/FittingData.pdfI put this algorithm into a small program that takes a set of selected points, a fixed axis and a variable axis which then processes them into a straight line.

The result is a new operation button for 3D canvas.

From the plan view, I dragged the points, restricting them to Z axis only movement (hold down the Z key)

(I did exaggerate the zig zag for illustrative purposes, normally I would be a bit more accurate when shifting points)

(I did exaggerate the zig zag for illustrative purposes, normally I would be a bit more accurate when shifting points)

Select the points and run the operation, selecting the "Align Z, X fixed" option.

The result is a mathematically straight line – no human error.