Roads in Grasshopper

Hey Guys,
I decided to improve my roads definition I did a while. And I have some questions regarding fillet and optimisation.

  1. How to make it work faster? I believe my problem is solid operation at the end. Any suggestions?

  2. Some sides of roads too small to have two fillets. And it looks wrong. Is there away to ignore small segments and make normal fillet? See sketch

  3. How to make chamfered edges for plots?

Thank you

Roads_01.3dm (3.1 MB) (30.8 KB)

Hi Roman,

  1. You can grab your desired outlines of the surfaces and create planar sufaces or patches- instead of boolean/spliting.

2.What you can do for the fillet problem, is set a tolerance for edge size, and when the edge length cannot fit two fillets of your desired radius, you can merge the two points of that side into the center point between them. Then you can fillet your parcel as if it was a triangle instead of a trapezoid with un-filletable corners.

  1. Not sure?

Hope this Helps.

Thank you @michelchabaneix 1 and 2 sounds good will try

  1. Still can’t find a simple way to split curves and created boundaries without using split components?

Yeah was not too sure about this one, You will have to research on how to recreate a mesh from points and outlines. Instead of splitting. Maybe someone else can help on this one.

I think I found a solution, will post tomorrow from office

Ok so I am using curve intersection to get missing parts of plots or roads and then join curves together to get a desired boundary (streets and plots). So I don’t need to use Brep intersection or Split components.

Plots are working great. I am trying to apply same logic to street. But I have to join curve correctly in correct tree structure so when boundary component applied I will have correct surfaces.

It is basic data trees matching problem , but I am stuck, can any take a look?

I have three trees with 5, 5 and 38 branches. 32 brunches should become 5 again.
The reason why there are 38 is because of Curve to Curve intersect component.

The good new it is so much faster ))

Roads_01.3dm (4.2 MB) (30.7 KB)

So what it currently does is wrong…

I think this is it…Some solid operation had to be used, but it didnt come out expensive at the end… (33.4 KB)

Thank you @Jakinta I managed to fix it as well. Without solid operations :wink:
I just had to simplify my trees, ))) to match data correctly.
The only rule to this definition is roads centrelines can not intersect with it self. Then Loft doesn’t work properly.

Next step is to find a way to simplify curves, so I can fillet all corners ? Any ideas how?


Roads_01.3dm (3.8 MB) (41.2 KB)

1 Like

Roads_01 (2) (44.1 KB)

What is it? ))

Hi @Jakinta. No I thought about a problem where you have roads close to each other and fillet doesn’t have enough space to be performed on both sides.

I was thinking a bout away to remove small edges and fillet between curves which have enough length for a fillet radius.


Still fighting with it. There should be an easy way. Like collapsing close points ?
I can probably:

  1. explode all curve
  2. Sort them by arcs and strait lines
  3. Simplify strait segments
  4. Joint everything back

But it is a long way for a simple problem