Modelling an actual Mountain



I’m trying to model a real life mountain site. I have a CAD file (which I exported into Rhino) that includes a bunch of curves (both closed and open, seperated into different layers). These curves are the mountain’s outline. In a different layer, are text objects which indicate the height of the site at that location.

I thought of a few ways of approaching this. The first one was to move the curves vertically according to the heights specified, then loft them together. (Or alternatively, making planar surfaces out of them and draping over them).

The problem with this is that a single curve can be at different heights at different points. To overcome this, it’s possible to manually adjust every control point. Since each curve has 200+ control points and there are 50+ curves, this solution would take a good week to do.

I was wondering if anyone has any other suggestions or scripts that could help me with this?


(Brian James) #2

Hi Bar,

Without seeing the actual curves I’m not sure if this approach will have enough detail for you but try Patch. As long as the first curves (bottom one and top one) is not one of the open ones, you should get one smooth patch surface by selecting all the curves in unison. You can set the patch density in the Patch options dialog that pops up too.


Basically NURBS surfaces don’t respond well to chaotic topographic data. Patch is one solution, but you will probably find that it smooths things too much - you will not be able to use enough control points to get something reasonably accurate. Generally meshes are used to create 3D topographic models.

In order to create any kind of 3D model from contour line data (curves), the curves still need to be at their proper height in the file. How you get them there is one problem. Once that’s done you have a couple of choices - you can try with Rhino’s native MeshPatch command with the contour line data to create a topographic mesh model; or you could use Grasshopper with the Delaunay component.

Once you have the mesh model, if you really need a NURBS model, you can use the command Drape to drape a NURBS surface over the mesh. This will produce a more accurate surface than Patch. You can control the number of UV points with the Drape command line options.

However, I don’t quite understand what your input data is like…[quote=“bshabtai, post:1, topic:1376”]
The problem with this is that a single curve can be at different heights at different points. To overcome this, it’s possible to manually adjust every control point.

This seems to indicate that the input data Is not just planar contour lines with a theoretical height… Can you post a sample of the data?



Thank you guys for the help so far.

I proceeded with the following approach: I made planar surfaces out of all my curves, and then used Drape to get a surface with the desired shape.

This gives an alright shape, but it’s not accurate according to the heights I have. Mitch: I have a bunch of curves, and along each curves I have text object that indicates the height of the curve that point. The curves are not supposed to be planar. For example, imagine a circle, where the north side of it is 5 meters above ground, the east and west are 3 meters above ground and the south side is on the ground. I just don’t see a quick way to adjust the curves to the right heights, besides moving the control points individually and that is inaccurate and will take awy too long.

I think I’m going to go ahead with what I have, since I have a deadline soon. But if you have any suggestions, I’d be interested in hearing them.



Do the points where the text are located accurately represent the place where the height is supposed to be? If so I have a script that will make Rhino point objects from the text at the height indicated by the text. Then you can run MeshPatch on the points.



Unfortunately not. I was given a pretty badly organized CAD file, so the texts were just thrown around randomly next to curves. I could only guess which text corresponded to which curve. Thanks for the offer though.