Loft is not forming all the way

As you can see from the top of the loft it is not closing all the way. If someone can help me fix and show me how to correct this I would greatly appreciate it. :smile:

Dance Studio.gh (35.9 KB)

Form.3dm (113.5 KB)

Here is the code and Model

missing

I can’t open your R6 .3dm file anyway in R5. But the problem is easy to fix. Right-click the ‘O’ (Options) input to Loft and check “Closed loft”.

loft

1 Like

Form5.3dm (111.4 KB)

Hello sorry about that

I already answered the question and have no intention of installing the plugin.

I checked off closed loft and this error occured

  1. Loft failed, don’t know why.

Oh. Now that I can see the Rhino file, this isn’t a closed loft at all. You need to flatten the input to Join to achieve a “Closed Brep”.

But the missing fragment happens earlier in the code, at SrfSplit and before Scale that gets you the outer surface. The yellow fragment is left out. By the way, note the redundant Area and Sort components (disabled).

Why? It looks like a sharp edge in the surface at that point, on the left edge of this fragment.

sorry for the multiple questions, as you can see I am very new to grasshopper, but my next question is how do I loft that missing piece to match the already existing closed brep.

Thank you!

Can you fix the surface to remove that creased edge? Not sure that scaling and lofting that fragment will work out to get the “Closed Brep”. As you can see with the ‘Tree/List Viewer’, its index value is 99. Hey, I just noticed the slider ‘9’ value plugged into the ‘W’ (Wrap) input to List Item to get the largest surface? That’s unusual…

I already deleted the files and shut down GH/Rhino for today. Good luck.

Lol we will see! I will try to get it.

  1. Loft failed, don’t know why.

Can’t look at your file now but from experience you usually get this error if you have a duplicate curve or if your start and end curve are the same (in which case you should delete the end curve and use the closed curve option).

1 Like

I contoured the surface, added the top edge curve (flipped direction!), rebuilt the curves and lofted them to smooth the base surface:

Dance_Studio_2019Nov29a

That fixed the creased edge and eliminated the fragment, but two of the holes still broke the edge. Fixed that by adjusting the Divide Curve ‘N’ (Count) slider from 6 to 7, though 5 also works.

Replaced an extremely slow Area component with a Srf SL cluster I wrote for this very purpose. It sorts surfaces based on sum of edge lengths instead of area so is much faster. You can edit the cluster to see how it works.

Dance_Studio_2019Nov29a2

Changed another slow Area component getting the Scale ‘C’ (Centroid) to use the original (smoothed) lofted surface instead of the one with holes. Much faster.

Dance_Studio_2019Nov29a3
Dance_Studio_2019Nov29a.gh (35.3 KB) (“bad” surface internalized, no need for Rhino file)

Modified settings:

Contour ‘D’ interval set to 4.7 (more curves to loft)
Divide Curve ‘N’ set to 6
Scale ‘F’ for Voronoi NURBS curves set to 0.9 (smaller, more space between holes)
Scale ‘F’ for holed surface set to 1.05 (thinner shell)


Dance_Studio_2019Nov29b.gh (33.5 KB)

1 Like

Sorry for just gtting to you today but I thank you so much!!!

Area is much faster in R6 than R5 (because it is multi-threaded) and if you want I’ve attached a Fast Area script component which used R6 newer GetArea method which doesn’t compute a centroid (faster). Sometimes you do need an area calc.


FastArea.gh (2.1 KB)

Here is that one Multi-Threaded so it can be faster.


FastAreaMT.gh (2.0 KB)

1 Like

hi @Michael_Pryor
Is it possible to write a component in c # that is fast centers as well as the area calculated in the tool above?
@Mahdiyar

private void RunScript(List<Brep> breps, ref object A, ref object B)
{
  var areas = new double[breps.Count];
  var centroids = new Point3d[breps.Count];
  System.Threading.Tasks.Parallel.For(0, breps.Count, i =>
    {
    var amp = AreaMassProperties.Compute(breps[i], false, true, false, false);
    areas[i] = amp.Area;
    centroids[i] = amp.Centroid;
    });
  A = areas;
  B = centroids;
  }

Ehsan.gh (556.7 KB)

2 Likes