Skip to content

Intersect_Mathematical.ghx BrepPlaneIntersection Issue #18

Description

@Guanda0120

I found that the BrepPlaneIntersection part may not generate the same result as original Grasshopper. Original Grasshopper generate one line. And gh-sharp-master may generate two or more. I found we can join curves after BrepPlane to fix this problem.
The Commond Code BrepPlaneIntersection of in gh-sharp-master/src/Intersect_Mathematical.ghx is as follow:

private void RunScript(Brep B, Plane P, ref object C, ref object POut)
  {
    //Component written by @bava-kumaravel
    //Solve intersection between a brep B and an infinite plane P and
    //return list of section curves C and list of intersection points POut

    //Define arrays to hold the section curves and intersection points
    Curve[] curves = new Curve[0];
    Point3d[] points = new Point3d[0];

    //Define tolerance as the Model Space Absolute Tolerance
    double tol = doc.ModelAbsoluteTolerance;

    //Perform intersection
    bool success = Rhino.Geometry.Intersect.Intersection.BrepPlane(
      B, P, tol, out curves, out points);

    //Outputs
    if(success){
      C = curves;
      POut = points;
    }

My Code is as follow

private void RunScript(Brep B, Plane P, ref object C, ref object POut)
  {
    //Component written by @bava-kumaravel
    //Solve intersection between a brep B and an infinite plane P and
    //return list of section curves C and list of intersection points POut

    //Define arrays to hold the section curves and intersection points
    Curve[] curves = new Curve[0];
    Point3d[] points = new Point3d[0];

    //Define tolerance as the Model Space Absolute Tolerance
    double tol = doc.ModelAbsoluteTolerance;

    //Perform intersection
    bool success = Rhino.Geometry.Intersect.Intersection.BrepPlane(
      B, P, tol, out curves, out points);

    // Join Curves
    if (success && curves.Length > 1) 
    {
          curves = Curve.JoinCurves(curves, tol);
     }

    //Outputs
    if(success){
      C = curves;
      POut = points;
    }

In addition, I would like to express my sincere gratitude to Professor Luis for their assistance in my programming learning journey. Your courses have been extremely beneficial to me.

IssueBrepPlaneIntersect.zip

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions