Help with controlling lofting and/or examining a loft


#1

Hi, I am new to Rhino so I apologize if this has been answered or if the solution is obvious.
I need to loft hundreds of organic arbitrary shapes which have been collected on parallel planar pairs.
So, e.g. I need to loft curve A on plane 1 to curve B on parallel plane 2; these are both closed curves.
Is there a mechanism built into Rhino or as a plugin, that can examine a loft and tell me the length of the longest loft
line connecting curve A to curve B? Better still, can it highlight such connecting lines longer than a user-specified number?
Or even better, is there a further parameterized loft add-on that lets me control the maximum length of loft line from curve A to curve B. Please note that simply adjusting the seams at loft time to (in part) control the length of loft lines is not sufficient by itself. These are arbitrary curves and I need to make the lofts machinable; thus I either need to limit the longest connecting lines from curve A to curve B or else limit the max angle used by such lines in a loft. I hope this make sense.
Any expert input would be greatly appreciated.
Thanks!


(Pascal Golay) #2

Hi jmv- can you please post an example file with a few pairs of curves?

-Pascal


#3

Hi Pascal, can I upload a 3dm file, or only an image of it? I don’t see where to upload a 3dm into this forum.
Sorry, new here.


(Pascal Golay) #4

Yeah, you may not be allowed to upload right away- - anti spam, and all that. Please send it to tech@mcneel.com, Att’n Pascal.

thanks,

Pascal


#5

Thank you, email has been sent.


(Steve Baer) #6

On the toolbar where you make a post or reply to a post there is a button that says to upload an image. This actually supports all sorts of file types including 3dm files. We are working on cleaning this up.


#7

Thanks Steve, that worked too, uploaded.
[Loft Example.3dm][1]
[1]: https://www.filepicker.io/api/file/ecNQ84dtRzqMSUlL1T4V


(Pascal Golay) #8

Hi Jed- you can certainly get decent control over the isocurve directions, the hard part is the ‘hundreds of pairs’ part. To control this you’d make a line at some convenient location between the two curves maybe using the Near and Perp osnaps- the line does not need to fall on the end point of the curve. Then Sweep2 this line on the curves- you’ll see that some areas are way off, direction wise, and some are pretty good- use the AddSlash button to add control along the rails where ever the isocurve direction is the most wacky. This is somewhat slow because of the density and complexity of the curves but you can get there with maybe half a dozen ‘slashes’ in your example… I do not know a good way to automate this process. Loft has no similar control.

Loft Example_PG.3dm

-Pascal


(Pascal Golay) #9

Sorry, I thought Jed had tried this and it failed due to his new-to-the-forumness. I guess that restriction is gone now, if it was ever there other than in my mind. Good deal.

-Pascal


#10

Pascal, You did it! Great solution and better (more control) than alternatives I was thinking of. My PC was able to process the sweep and subsequent slashes in about 1-2 seconds each, so no problem. Very Nice; thanks!


#11

So, just to final check, is there an “Object Description” for the final Sweep2 surface that can tell me what the max sweep angle or max sweep length is? I can “eyeball” it to some degree, but it would be nice to have a real numeric for this.
Thanks for your help!


(Pascal Golay) #12

Hi Jed, nothing exists for that … it would be possible to make a RhinoScript or Python script that could analyze the isocurves angle relative to some direction - I suppose the normal direction of the curve planes. I’m not sure how much typing that would take or how efficient it might be. Am I correct that what you are looking for is isocurve deviation from a specific direction? It seems like it could get complicated since the ribbon itself is only generally parallel to the direction between the curve planes.
Length is much more straightforward to check, in fact you can even do this in a hackaround way right in Rhino:

  1. ExtractWireFrame from the surface.
  2. Invert Hide, maybe to eliminate other possible curves to measure.
  3. SelShortCrv - set the length to the maximum isocurve length you can tolerate.
  4. Invert.

What is selected will be all the long direction isocurves (irrelevant) and the short direction ones that are longer than your minimum, which would be the ones you are interested in I guess.

But a script would be much faster, I’ll see if I can make something quickly.

-Pascal


(Pascal Golay) #13

@jmv2, here is a quick script you can try to check isocurve lengths against a max length.

To use the script, extract and save the .rvb file from the attached zip archive, then drag and drop the saved rvb over an open Rhino V4 or v5 window. This will load the script, set it up to load on startup in the future and register the alias

IsoLength

that will run the script much like a regular command. An alias can be typed or added to a toolbar button or keyboard shortcut (F-key).

It will check isocurve lengths of linear surfaces like your ribbons for length against the number you set, and duplicate the ones that are too long, paint them red and select them. It is possible to check isocurves more regularly/evenly than the displayed isocurves, but since these Sweep2 surfaces are fairly dense in isocurves as a rule, it seemed like the quick and dirty way might be sufficient.

-Pascal

IsoLength.zip


(Pascal Golay) #14

@jmv2,OK, so as usual, I included a typo in my script… please try this one instead, sorry.

-Pascal

IsoLength (2).zip


#15

Hi Pascal, just got done testing your manual steps. It worked very nicely! A lot more accurate than “eyeballing” every curve. I can’t believe you already wrote the script; I will check that out right after dinner here. THANKS FOR THE AWESOME SUPPORT!!! :slight_smile:


(Pascal Golay) #16

One other thing I forgot to mention - the dot that the script places marks the longest isocurve.

-Pascal


#17

Dang. That is awesome. Script is perfect for my use. I cannot believe the level of support here, simply stellar!
Thanks Pascal!


#18

Thanks Pascal, the script is golden!


(Pascal Golay) #19

OK! cool. You are welcome, I’m glad it helps.

-Pascal