Here comes a challenge of drawing an ellipse on a plane defined by 3 points and the ellipse should pass through 2 of the 3 points. With the ellipse drawn, a quarter of the ellipse is made a sweep.

**The Math**

Point 1, point 2 and point 3 define a plane. Locate point O as the center of the ellipse. The ellipse is drawn through point 2 and point 3 or point 3 and point 1.

**3 Points Adaptive Component**

Create 3 points and make them adaptive points. Join the points with reference lines. Create reporting parameters L1, L2 and L3 for line 12, line 13 and line 23. Create a surface from the reference lines. Make the surface invisible.

Create an angle parameter Ang. Set a formula Ang = acos((L1 ^ 2 + L3 ^ 2 – L2 ^ 2) / (2 * L1 * L3))

**Center of Ellipse**

Now how to locate point O which has to be oriented the same as the surface?

If a point is hosted by reference line 12, it is not oriented the same as the surface. If a point is hosted by the surface and moved to edge 12, it is oriented right. However the point is displaced from reference line 12 as point 2 moves.

If a point is placed on the edge 12 of the surface, it is oriented the same as the surface and it always stays on the edge. Say this is point P. Now to locate another point O, set yz plane of point P as work plane, place a point (O) on point P. Offset point O by parameter OS. Set a formula for OS = L3 cos (Ang). Move point P to collide with point 2.

Now point O is located with line 3O being the altitude of the triangle. Set xy plane of point O as the work plane, draw an ellipse (reference line). Parameterize the major and minor axes with A and B.

Set a formula for B = L3 sin (Ang). As from the Math above, if Ang > 90°, A = L1 + |OS|. Set a conditional statement for A = if(Ang > 90°, L1 + abs(OS), OS)

**A Quarter of the Ellipse**

Try to make a partial ellipse on the ellipse, place 2 points on the ellipse, join the 2 points with a spline. However, it is a straight line.

Select the ellipse and create a void surface. Place 2 points on the edge of the ellipse surface, join the 2 points with a spline. The spline is now following the ellipse.

**Sweep of the Spline**

Place a point at the midpoint of the spline. Set the plane of the point as work plane, draw a circle. Parameterize the radius of the circle with R. Create a sweep.

The sweep needs to form a quarter of the ellipse. That means the endpoints of the spline need to be at Normalized Curved Parameter = 0 and 0.5 respectively (edge as half ellipse), making the sweep from point 2 to point 3.

However, as explained in the Math above, if Ang > 90°, the sweep should start from point 3 to point 1. That means the endpoints of the spline need to be at Normalized Curved Parameter = 0.5 and 1 respectively.

Select the start point of the spline, set the Normalized Curved Parameter as “Sweep Start”. Select the end point of the spline, set the Normalized Curved Parameter as “Sweep End”. Put a formula for Sweep End = Sweep Start + 0.5. Set a conditional statement for Sweep Start = if(Ang > 90°, 0.5, 0).

So how can this family be used?

Pingback: Weekly Roundup – 2015.28 | The BIMsider·

Can you share the family of this? I’ve been trying to make it but doesn’t work…

Please wait. Will set up download links later.