Is it Possible to Create A More Efficient SurfaceToSolid Command Using Dynamo?

Hi, I’ve been reading through Anton Huizing’s book on Dynamo, and something caught my eye in it about Dynamo geometry and its space being a lot like a separate program that just integrates with Civil3D.

With that said something I’ve been trying to do for fun for quite awhile is create a solid from a very large surface, to eventually convert into a .stl so I can 3d print it, particularly a contour map of my city. Originally I’ve tried multiple times without success to do Civil3D’s SurfaceToSolid command, which attempts to convert your TIN surface into a 3D shape that I can then export to a .stl. I can get this to work on small surfaces, but I, and many others, run into problems when getting to larger surfaces. Ideally I want to keep as much detail as possible, so I would like to avoid removing a lot of points. When making the solid, C3D will either crash or fail to make the solid (or sometimes blue screen me due to maxing out my RAM).

I have two surfaces, the first surface/boss to battle and make into an object is just a measly 42,120,904 points. This one rarely crashes my computer when making the solid, but it does fail to generate a solid after 2 hours of processing. The big behemoth surface that I eventually would love to convert is 89,637,714 points.

After failing several times with C3D, I thought maybe it’s just C3D’s way of processing isn’t capable of dealing with this many objects/points. But I then thought maybe Dynamo could work, as it’s model space is separate with its own geometry.

I tried creating this graph which converts the surface into triangles of Dynamo Geometry, then convert it to surfaces and then combine those surfaces. Lastly, I add a bit of depth to it. Once that’s done I use Dynamo’s .stl export option.

This works on smaller surfaces, but I still run into crashing issues as it tries to generate too much geometry.

Does anyone have any suggestions to making this more efficient? Or a different recommendation for my end goal? Thanks!

At its core the geometry engine is the same as the one used by Civil 3D, so it likely will struggle the same way.

Your best bet will be to use the mesh tools in a mesh editor (I would recommend the same one you use for your sclicer), but you might try the nodes in Dynamo to start with.

  1. Extract the mesh
  2. Scale it down
  3. Build the support structure (fill the volume below the surface)
  4. Export that to a file

Lastly, while I appreciate the desire to keep as much detail as you can, the scale of the print will limit the details to the level your printer can produce. If your maximum resolution is 1/2 of a millimeter and you are printing 1:200 scale then any detail smaller than ~0.1 meters will be lost anyway, so you’ve spent some time processing data the printer is going to discard anyway. So I recommend you work out what the ‘minimum print dimension will be’ and cull down points accordingly.

Thanks Jacob, appreciate the suggestions for a fun project like this one. You make a great point about the resolution relative to the scale of the print, I hadn’t considered that. I’ll try scaling down the model a bit and try some mesh nodes.