# Easiest approach for Biangulation in Rhino

Hi all,
I’m an beginner in Rhino and CAD in overall.
I know my way around drawing and modelling but that’s about it.

My current challange is to find the easiest way to create a drawing based on data of an AB measurement, I believe in good english it’s called a Biangular measurement.
This type of measurement is often used to recreate 2D drawings of larger objects as pools like in my example.
First of all the start by creating 2 fixed points near the object to measure, and measure the distance between these two points which is length AB.
They make marks around the pool every couple of centimeters or inches and measure the distance to this point from point A and from point B. Once all points have been measured the make circles with a radius A and B for each point and the location of the marks will be one of the 2 intersections of the 2 circles.

I’m able to recreate the shape in Rhino, creating 60 layers and using each layer to draw circles A and B of these points. Then place single points on these intersections and draw an interpolated line through these points to get the final shape.

I have the feeling i’m way overcomplicating things and that there must be an easier way to do this, maybe even with scripts or plugins. Unfortunately I have no clue about programming so I must rely on your knowledge. Pool AB measurement.dxf (2.3 MB)

Hi @n.vermeulen,

this should not be to hard to script, can you upload the the table you used to create your example file as a .csv?

Also it seems the position of the Pool in 3d Space is arbitrary, meaning it is just defined by the random placement of the two Points `A` and `B` with a fixed distance between that, is that right?

Please find the .csv attached, I hope it’s alright like this.
Indeed, position is like you describe arbitrary.
Last point will indicate from which value we start using the right intersection instead of the left intersection.

All we need from the data is the size and shape of the pool edge. This will manually be edited to create a pool cover or liner based on these dimensions.

EDIT: sorry, unable to attach .csv. I’ll look for a solution.

If .csv does not work, you can also just upload as a .txt

Pool example.txt (662 Bytes)

I just realised Point A and Point B are also Part of the measured curve? At least thats what you did in your example file

Anyways, here is a sample grasshopper definition working on the .txt file you uploaded. Try it out and see if it works for you (You will have to re-specify the path to your .txt file with the data for the definition to work, as your path will be different as on my pc):

ab_measurement.gh (22.3 KB)

Hi Lando,
Yes, In my example I did include point A and B as well, but now I think about it and they don’t need to be included.
Thanks a lot for your effort, it’s awesome.
I got something to study and play with now. Thanks again.

Hi @n.vermeulen I’ve used a technique similar to @lando.schumpich in the past to great effect. One edge case you might run into is when the circles don’t quite intersect. Using closest point for those will at least give you a data point.

If you’re doing this out in the field, I’d suggest taking your measurements from more than 2 reference points. It acts as a way to check the measurements you took. IE if the point you get from all the pair of reference points is close, you measured things correctly. Also, this measurement method varies in precision depending on the location of the measurement point to the reference points, so averaging the solution from the different pairs may give you better results.

Having the multiple points also allows you to automate the selection of the points from the circle intersections. For example, if you take measurements from 3 reference points, you’ll get 6 points from the intersection of the circles. 3 of those should be extremely close to each other and the rest are the solution you don’t care about. You can automate the selection of the correct points from this.

I used a simple 30USD laser rangefinder. I put pipes of known diameter over my reference points and got the measurement from the point of interest to the reference pipes. Over a distance of about 20m I was able to get ~10-20mm accuracy.

Maybe this help

points.gh (13.2 KB)

points.gh (15.2 KB)

Thanks for your input, the laser rangefinder is indeed a nice addition to the old school tapemeasurer which is… well, not very accurate.
The 3rd ref point makes sense but is not needed in this case as high accuracy is not really an issue. The measuring technique has been used for over 15years with success by this guy so he doesn’t really want to change this. He now has a digital measuring device where Rhino was included in the package and still gets a lot of work from his colleagues who do these AB measurements so I was wondering how we could speed up that process combining the old-school measurement and new-school Rhino.

Lando’s file was very usefull except I found out that interpolating the curve not always gives the best result. Thanks to that file I now understand more of how Grasshopper works and I was able to make polylines instead of an interpolated curve so I’m very happy.

What would be needed to also incorporate point A and B ? This is not always the case as sometimes point A and B are beside the pool so it would be good If I can make a couple of different templates.

@Seghier Khaled, also thank you for your effort. I’m going to study this one as well however at first sight it seems that all of them all mirrored or flipped in a way.