General solution for equidistant pattern on breps?

I find surprisingly few topics on this when I search, so maybe I’m using the wrong words… what I mean is that the distance between the points/repetitions on the brep should be equal when measured along the surfaces…

Not sure if this is an idealized video, but the Grasshopper clone in Siemens NX seems to handle patterns across breps in a pretty generalized way:

Is there something similar for Grasshopper in Rhino?

99% of all examples I ever see in Grasshopper is with a single surface, and 0% of my CAD models use single surfaces… :slight_smile:

1 Like

this interface is very like grasshopper

Hi @zhuangjia777,

It is a common paradigm in visual programming tools.

1 Like

I’m going to request a trial of the Algorithmic Modeling feature in Siemens NX to see if they really solved it or not, because I find it very weird that nobody even seems to want to go near this in Grasshopper.

Well, just got word about the cost of that Grasshopper-like add-on in NX and even though NX is expensive, the cost for that add-on alone was eye wateringly crazy expensive… so I’m not even going to bother with a trial of it to find out if they really have a general solution or not. :sweat_smile:

Have in mind that NX (but CATIA as well) are used for entirely different purposes than R/GH … by entirely different cliantele … doing entirely different things (like an Airbus or a Boeing or a Mercedes or a Ducati).

Kinda like comparing prices for a Golf GTI (the best affortable “all purpose” sportish car) VS a 911 GT2 (the best track weapon if you can handle 700 bhp).

Oh, believe me, I know. We have about 10 NX seats and a few in Catia still. In fact, I made that exact comparision in another thread here recently. :laughing:

And with that in mind, I still made that comment, so… damn, Grasshopper is cheap.

I also have 3 NX seats and 4 CATIA ones (plus 15 AECOsim) … and you know what? They are really cheap IF you take into account what you can do (and IF you can sell the product). That said I’m in the AEC/BIM market sector (Final level Studies and the likes) … and … well … R/GH can’t actually play ball on that game.

Ok, so I’ve started to look into this again, and haven’t found any solutions yet, but I’ve seen several more examples of what sure looks like the topic of this thread…

I’m beginning to think that you need to project lines across the surfaces and just use points on those lines rather than the surfaces themselves, but I’m not 100% convinced that’s the best approach yet…

Surely there is some projection happening at some point.

In your first video, at minute 4:00 you see each face used separately, then it is instead added a “Sew faces” function (something similar to rhino “Merge surfaces”) to make it a single surface.
This is “easy” with surfaces that have common UV directions and share full edges, like in the video. What happens if I feed that functions a bunch of patches with irregular border?

Then, the “Hexagonal Cell” took a second or two of computation, probably where the projection of the hexagons is happening… and it feels like a lot of steps are happening in the background. But the single “Hexagonal Cell” have few controls.

Doing the same with grasshopper would require more components, but you would also have a more granular control.

Right, but the whole point of this thread is that there’s no such restrictions on breps, as can be seen here:

Those images come from a rhino/grasshopper context (seen in your link).

How much code was used from the top picture to the bottom picture? I don’t know. But don’t expect any CAD to simply fuse many surfaces into one, with correctly aligned UVs, exactly like you are thinking.
It is achieveable, but I would completely bypass the “limit” of working with many surfaces instead of a single one.

For example, that car door:

  • mesh the relevant part of the door, with decent quality. You have a single mesh now.
  • create a small 10cm x 10cm triangular-grid mesh in the center of the door (where the dual of this mesh is the hexagon pattern)
  • with kangaroo make that mesh grow while pulling its vertexes to the door mesh
  • do the dual, now you got hexagons
  • pull to original surface (or the mesh)
  • etc …

This is just one of the possible methods, probably.

Edit: actually the very first picture in your link shows kangaroo indeed (the old version)

But don’t expect a single “Hexagonal Cell” or “Sex faces” component do do all the work for you.
I would gladly see in NX how badly that function fails with actual complex breps.
I’m not wondering the “if” it fails.

hexagons on (75.1 KB)
Just a draft (this is not with the dual thing… )
Start with the “OnMesh” strength at 0 and slowly increase it.

1 Like