Grasshopper

algorithmic modeling for Rhino

Hello, I have just a simple question. 

I want to create a planar surface from a closed curve and I found out that I should use Brep.CreatePlanarBreps(curve). But I am not clear how to write the code in C#.

private void RunScript(Curve x, ref object A)
{
Brep a= new Brep.CreatePlanarBreps(x);
A = a;
}

But the error is Brep.CreatePlanarBreps() is a method but is used like a type. Also, can someone explain the method and type? 

Views: 2112

Replies to This Discussion

This Method returns an Array.

In order to understand the reasons input a closed polyline (or curve) that intersects with itself > what happens?

Brep[] arrayOfBreps = Brep.CreatePlanarBreps(Crv); (were Crv is a List or an individual Curve)

Brep oneOfThem = arrayOfBreps[someIndex]; (where someIndex < arrayOfBreps.Length)

Or: List<Brep> listOfBreps = Brep.CreatePlanarBreps(Crv).ToList();

Or ... if you are sure that we are talking for ONE planar output (but better safe than sorry):

try{ someBrep = Brep.CreatePlanarBreps(Crv)[0];} (declare someBrep as public and/or private)

catch{Print("Adios Amigos");}

BTW: the orthodox way is:

DataTree <Brep> breps = new DataTree<Brep>();

for (int i = 0; i< crvList.Count;i++){

  Curve c = crvList[i];

  string log;

  if(c.IsValidWithLog(out log) && c.IsPlanar() && c.IsClosed){

   try{

       Brep arrayB= Brep.CreatePlanarBreps(c);

       breps.AddRange(arrayB, new GH_Path(i));

      }

   catch{ Print("Some issue with Method at: {0},i);}

  }

  else Print("Not Valid or non planar or not closed at: {0} [log: {1}]", i, log);

}

For instance:

Attachments:

Thank you so much! That really helps me to understand it!

BTW: "split" the if clause that checks the IsClosed. IsPlanar and IsValidWithLog into 3 different clauses > that way you'll be informed explicitly what's wrong. Ttry the IsClosable thingy as well.

Why? well ... always TAKE FOR GRANTED that something is wrong with regard your input(s): rule N1 in programming.

BTW: Try/Catch is a rather crude approach for handling exceptions ... but who cares?

As an exercise: experiment on curves that intersect (see SDK) with others and/or are contained (see SDK) inside other curves (but that actually [general case] requires a primitive kind of cluster analysis).

Here's some visual indications upon the proposed "challenges":

RSS

About

Translate

Search

Videos

  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service