Creating cutting lines on the curved surface

Hello,

I have a conical / freeform surface (see attached image). I would like to panelize this surface starting from the bottom edge.

Goal:

  • The bottom row panels must have exact net dimensions:

    • 2438.4 mm width

    • 914.4 mm height

  • There must be a 25 mm gap between panels.

  • The gap value must be parametric (controlled with a slider).

  • As the panels go upward, they are allowed to shrink (this is unavoidable due to the surface geometry).

  • However, the bottom row must match the exact specified dimensions.

Problem:

I used Divide Curve to generate the panels. While I can get close to the desired size, I cannot:

  1. Achieve the exact 2438.4 mm width at the bottom row.

  2. Properly generate a consistent 24 mm gap between panels.

  3. Control the gap parametrically.

  4. Control panelization based on exact physical lengths rather than division count.

I am able to panelize the surface in general, but I am struggling with:

  • Maintaining exact bottom panel dimensions

  • Creating and controlling parametric gaps

What would be the correct Grasshopper approach for this?

Cuttingline on surface.gh (64.2 KB)

Hi,

Your grasshopper file has so much going on it is not runnable at an acceptable speed. To save people who would like to help you from wasting too much time, please upload a Rhino file with just the surface in it.

You might want to consider this sort of simplification yourself while problem solving your issues. It helps when your PC can keep up with your brain!

Regards
Jeremy

Hi Jeremy I really don’t understand why the file is so heavy and difficult to open. I apologize for this. You can find the Rhino file attached.

surfacefromgh.3dm (819.6 KB)

So your surface is a mesh which means the bottom edge is a polyline with a series of short straight lines connected together. Do you want your panels to follow that polyline strictly or do you want your panels to follow a circular arc fitted through the mesh edge?

My panel does not follow the mesh lines because the mesh is in a very messy situation. Starting from the part you will see in my panel’s screenshot, I want it to be in the dimensions I mentioned above (2438.4 mm width, 914.4 mm height), and I want there to be a gap between these dimensions.

I have attached the surface I obtained using the mesh circles and the starting point of the panels. You can find the Grasshopper file of the divided surface I created earlier.

TrueSurfaceWithPoint.3dm (108.8 KB)

SplitedSurface.gh (393.9 KB)

Is that the curve length or are you measuring it straight across?

I apologize for the mistake. It should be the length of the curve, meaning the length visible when looking at the geometry from the outside. When the curve is opened, the length will increase even more.

If you want a regular pattern, your dimensions don’t add up. The base circle circumference is 100609.505mm. That isn’t a multiple of 2438.4 + 25…

Thank you for the information. The pattern will be the same up to a point, but to maintain the 2438.4 mm measurement, it will proceed in a 2438.4+25 mm gap pattern. When the circle is complete, the remaining row will be smaller than this measurement, and the pattern will be eliminated there.

This is just an example; it doesn’t matter where it’s small, but I need to get a panel that’s as accurate as possible.

I think @jeremy5 point was that if you have a circle with fixed circumference (A), you can’t divide it into equal sections of specific length X with specific gap Z. If X is fixed then Y must change. You can’t have X and Y a fixed size if you want equal distribution. If you want that then your main shape (A) must change size to match those fixed sizes.

Yes, I understand what you mean, you’re right, but it doesn’t have to be the entire circle. I can compromise on that point. Because when we divide the diameter of the circle into the required width, we get a result of 41.2. I can get 40 panels of the size I want and 1 panel that is larger than I want, right?

Circumference, not diameter, and you forgot the 25mm gap. You actually get a result of 40.84, so you can have 40 panels + 1 short panel.

Yes, I couldn’t figure out how to break this pattern like this.

I had a play with your panelling issue and came up with an example of how a conic surface could be panelled according to your criteria.


JSpanelling.gh (48.2 KB)

However, life being short, I did make some simplifications. The main one being that I worked with a simple conic without the cut-outs and indentation you have. Also, I’ve started with a nurbs surface, not mesh.

I’ve also used this as an opportunity to tidy up the drawing: moving the base of the cone to the origin and squaring it up so the axis is a true vertical and the seam is square on to the viewports. This doesn’t affect the workings of the script but does make me happy.

I don’t know how helpful this will be but, if nothing else, it is always good to see someone else’s interpretation of a problem - if only to reassure yourself that you’ve already found a better way!

Regards
Jeremy

Hi Jeremy

Thank you so much for your help — it’s been incredibly insightful. Honestly, you’ve shown such an elegant way of approaching this. If you saw how long and complicated the scripts I was using to achieve the same result were, you wouldn’t believe it!

However, I’ve run into one issue. When I use the start point , centre point you specified and input the cutting surface, I end up getting the result shown in the screenshot. I haven’t changed anything in the script, so I’m not sure why this is happening. Do you have any idea what might be causing this?

I’m adding the points and surface just in case.

Points and surface.gh (2.6 KB)

Points and surface.3dm (39.3 KB)

Hi,

Sorry, having said that moving to origin wouldn’t affect operation I fell into the trap of using standard XY planes in some of the clusters.

I’ve pulled the Centre location through to modify them and you should now get the correct result. Here’s the updated file:
JSpanellingFarOut.gh (54.8 KB)

Regards
Jeremy

Hi Jeremy Thank you so much. I’ve gained a new perspective that is much healthier and faster.