how do you approach shrinkwrapping of complex geometry? We have an initial building massing model, which needs to be meshed for a CFD analysis. There are hundreds of individual objects: Breps, meshes, block instances etc. Ideally, we’d take a bounding box and shrinkwrap remesh it.
If your model have gaps, then you have a problem, not only with the shrinkwrapping.
You need the outside volume or also to keep small details like columns?
If the first, why don’t you use the green/pink surfaces and extrude them downward?
It seems you can get a closed polysurface of the volume of those buildings in a couple of minutes of manual work in rhino…
If this problem occours often, then it make sense to find an automatism, but if you need to do this few times, I would do it manually without wasting time on grasshopper.
It would be interesting to see the actual .3dm model, to understand better the situation.
I face this challenge quite often. Currently, I’m doing this manually and it is a pain to go through each time a new drawing arrives. I don’t really have control over the upstream workflow and have to deal with suboptimal models with gaps, various types of geometry etc.
The CFD package uses its own meshing step, but it’s a bit fragile and easily gets tripped with less-than-perfect geometry.
I can’t share this particular file for NDA reasons, but can cook up a simpler version of it and post here on Monday for testing.
@Japhy sounds like awesome news! Any ETA on this feature?
There has been steady work on it and its getting really close. The demos i’ve seen are really doing a great job on just this scenario (open meshes with intersecting meshes). The command looks ready but there are a number of graphical details and such that need to be working before its released for testing. Any date range I give would only be a guess, they don’t put out hard release dates.
Depending on the Tolerances of your CFD analysis it seems like creating recreating the objects as simple geometry would go pretty quick. BoundingBox of similar features and shift the corners to match the shape.
A lazy and slow solution would be to use some signed-distance iso meshing. (like millipede)
You use a small distance that can close the gaps and at the end offset back the result by the same distance.
Slow, but the machine can work alone.
Nope, we wrap methods depending on a research project we have. It is simple process once you know how to do, but takes some time and experience.
To simplify c++ library linking I made a CmakeLists.txt with a superbuild pattern that helps to download and link all the 3rd party libraries of cockroach (Boost, CGAL, Eigen, Open3d, Cilantro) with only 2 bash commands.
You still would need to some work during the wrapping step, but the previous one is the most complicated, specially if you want to collaborate via github and open-source code.
The CmakeLists is under cockroach release folder. Commands are described in read me of the main repo:
It was more a general remark I saw that you have a good result. But for others users I just suggest to not forget to flatten the inputs, because with many geometries if data is on a datatree it will lead to long calculation time and bad result (many meshes).
Here a test using Dendro
First transform all geometry to mesh
then choose a size of step
I joined all meshes in one mesh. It is not a boolean just a union of closed and opened meshes.
I used one of my tool to populate this unique mesh with points.
Then Points to Volume (I choose a radius of 5 x the step size)
Then negative offset
Then healing the mesh
It is about 1 min with a step size of 1.
First time using dendro for me…
I used ExtractRenderMesh command with the taller group alone (maybe splitting the whole work in 4-5 big chunks make everything faster?..)
Joined all the meshes in rhino, to have a single mesh to load in grasshopper.