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…
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