Is a surface conic?

Hi, how to find all conical surfaces at 45deg ?

Surface has a method called Surface.IsCone(double) which does what you’re looking for.

private void RunScript(Surface Surface, double Tolerance, ref object A)
{
  A = Surface.IsCone(Tolerance);
}

IsCone.gh (28.8 KB)

1 Like

Many tanks, It works fine but is it possible to add degrees ?
I only need cones with 45 degrees angle…

private void RunScript(Surface Surface, double Tolerance, double Angle, double AngleTolerance, ref object A)
{
  A = false;
  Cone c;
  if (!Surface.TryGetCone(out c, Tolerance)) return;
  if (Math.Abs(c.AngleInDegrees() - Angle) > AngleTolerance) return;
  A = true;
}

IsCone.gh (37.4 KB)

1 Like

Hi @Mahdiyar

Something unbelievable happen, the main surface is not recognized a cone but the mirrored surface is recognized as a cone… :hear_no_evil:

IsCone… or not.gh (10.7 KB)

    A = false;
    Cone c;
    if (!Surface.TryGetCone(out c, Tolerance) || Math.Abs(Math.Abs(c.AngleInDegrees()) - Angle) > AngleTolerance) return;
    A = true;
1 Like

It works ! Can you explain me ?

c.AngleInDegrees() should always be positive, so I also take its absolute value before subtraction.

1 Like