Divide surface in a set direction

I have a surface, which is a roof with some cut outs, I need to add trusses, for which i am trying to divide the surface. If i choose DivideSurface component, it is choosing an inclined direction to divide the surface in U and V direction. as shown below in Blue and Red lines.

The question is, is there an option to choose the direction in which the surface can be divided. for example, i need the surface to be divided as shown below in Blue and Red Lines.

I have attached the grasshopper file after internalizing the data. Thanks in advance for the support.

Internalised_File.gh (460.3 KB)

Hey @Raqueeb_Ali,

The answer is yes - more than one option. However, looking at your second image with the ‘desired’ result: is your grid intended to be ‘curved’ or ‘radiating’ or are you just trying to change the direciton of the the division lines?

In the meantime, I include a couple of examples here:
Internalised_File.gh (481.5 KB)

If just intend to specify division direction, you can use contour:

If you’re trying to use a guide curve you can use something like this as a starting study method:

Note:
Start and end points for the guide spline are internalized so they can be moved manually, while the midpoint is just the average surface point - nonetheless all these point locations can also easily be re-established both on the surface itself or on its bounding rectangle
Depends on what you want.

Best,
RC

1 Like

This can be slow so I added a 10 second Data Dam. (red group) The two sliders in blue groups affect rotation and distance between planes.



roof_divide_2024Feb15a.gh (477.2 KB)

1 Like

Dear @René_Corella and @Joseph_Oster thanks both of you for the reply, both the solutions work for me. The solution with Via contours is best suited for me as I can use it divide the curves and use it as chords. Thanks again both of you.

1 Like

Hah, those are both rather bizarre methods. The trouble with the first method using MD Slider is that the vertical angle of the contour reference plane changes so the distance between contour lines also changes, independent of the ‘Distance’ slider. In other words, the distance between intersections is unpredictable and can’t be set. To some extent, that is also true for the second method.

To me, precision is more important than speed. To that end, I added the white group to adjust the position of the X and Y planes, added separate ‘DistX’ and ‘DistY’ sliders to set the distance between planes on each axis and added ‘X’ and ‘Y’ axis labels (purple group).


roof_divide_2024Feb16a.gh (476.3 KB)

1 Like

I feel you, Joseph - it’s okay. I like playing with geometry. I could have provided something strict as well. Please don’t think others aren’t capable of coming up with your level of solutions. I deal with enough ‘precision’ at work and I always crave going back to play. It’s fun. Precision keeps you constrained and limited. I wouldn’t mind if @Raqueeb_Ali changed their mind and chose you as the correct solution - your work is great and superior :wink:

WHAT :question: This post is completely inappropriate. :-1:

1 Like

Thanks @Joseph_Oster , Actually, this gives me more flexibility to divide at different intervals for both directions, which I need to control the number of divisions in both direction depending on the spans. But as in curves, I am not able to locate points associated with each cut plane as a group of points/Curves, Intend to use each cut plane as a Truss for this roof (move the same curve below, divide them and connect the points to form truss members) something like below image.

in the method, @René_Corella gave, I could get the intersection points of the curves(multiple curves (MCX) component) but I am not able associate the points to each curve and then join the points.


I am very new to Rhino and grasshopper, please don’t mind if these are trivial questions.

but thanks again

1 Like

No biggie - it’s possible to associate after the MCX.

Thanks for clarifications - your questions aren’t trivial - and that’s precisely what I meant by choosing a playful approach - usually new GH users don’t necessarily explain the whole goal, so you can’t solve for all things when providing help, especially if the person is in the initial stages. But that’s the beauty of this forum! Joseph can now take over!

Just keep in mind that if the goal is to make the trusses in the real world, our solutions are kind of pointless! :exploding_head:

Best!

1 Like

I added something quickly but was puzzled with the result
 :thinking:

Until I realized the effect of the holes in the roof on the data tree structure, so added the Untrim plane intersections (gray group). It’s possible to take this one step further and get a “trimmed” roof without holes
 but I’m not sure it would be much better.


roof_divide_2024Feb16b.gh (488.4 KB)

These are the plane intersection curves with holes in the roof. As you can imagine, it messes up the data tree results.

1 Like

I think it is better after all. Sometimes you don’t know until you try.



roof_divide_2024Feb16cc.gh (492.8 KB)

1 Like

There is more
 :slightly_smiling_face:

I decided it would be good to show the points on the edge of this surface. Then found in that process that the intersection curves were no longer splitting the surface as expected. Missing surface fragments:

So used a different method, SplitMul (Split Brep Multiple), that unfortunately is slower.




roof_divide_2024Feb16d.gh (496.2 KB)

The labeled points correspond to the ‘Point List’ text panel (gray group). There is an anomaly due to the surface shape; at the top left, there are two red points (0,1) and then a gap in the surface followed by three orange points (0,1,2). But that’s easy to correlate with the text panel list.

1 Like

And more!

Again, for fun, to help, not to compete with Joseph.

In the attached, I’ve done a second pass to address point order per each of the contour directions d1 and d2. This, without being exactly sure on what order you should have, though that’s an easy change, so feel free to specify later. Nonetheless, number tags are there.

Again, d1 and d2 for contour directions, each with their distance so they’re not the same as before:

I’ve also sped things up a bit, avoiding direct intersection with the actual surface from the start, relying on 2D curve contouring first:

From there, boundary conditions are also addressed:
bdr3

At the end of the script, you’ll find the tags for both contour directions:

If needed, you can reverse the order:


order

Lastly, the only thing {intentionally} not addressed is cleanup at surface holes - I simply don’t know if you’re after that or not, just like I don’t know the overall ‘depth’ of this project and many other things :slight_smile:

image

'Happy to help with that part if it matters.

Here’s the file:
Internalised_File3.gh (485.5 KB)

Cheers!

1 Like

Many thanks @Joseph_Oster for all the support, really appreciate the help. This looks a bit advance to me, I will understand these operations node by node and let you know. Thanks again.

Still more
 Hard to see the top of the mountain when you’re climbing, until you reach the top. :sunglasses:

Added white branch labels corresponding to the ‘Point List’ text panel.


roof_divide_2024Feb16ee.gh (492.6 KB) UPDATED!

I hid the planes point list as it was distracting, but it’s still there.

P.S. Oh dear, I inadvertently bypassed the Data Dam, slowing down response to rotation and adjustment of planes. Fixed it in version 'Feb16ee’. Sorry about that!