Grasshopper

algorithmic modeling for Rhino

Hi everybody,

I am trying to create a mesh for FEM shell analysis using Karamba's "Mesh Breps" component. I have a quite simple revolution surface I want to mesh, but the result I get has badyl distorted elements at the top of the dome:

is there a way (with or without Karamba) to produce a mesh that doesn't care about u-v coordinates of the brep, and results in a more FEM-friendly element geometry?

A bit like this:

Best regards

  Stefan

Views: 3961

Attachments:

Replies to This Discussion

In a first step, you can use the mesh smoothing of karamba's mesh Breps component. the vertices will stick to the surface (as opposed to the normal laplacian smoothing).

another way, which will completely ignore your uv's in the end, is kangaroo. either you build up a mesh relaxation, or use the built-in remeshing component which also supports topology changes during relaxation. this should probably come closest to your reference for the most general case of distorted uv spaces.

also, starling is quite a good remesher i think, but havent got much experience with it.

i have an adopted version of ray's periodic global parametrization meshing here for grasshopper, but this is beyond what you want to do i guess.

that's what i can think of right now.

best,

Robert

Hi Robert,

Great to hear you've done something for periodic global parametrization in grasshopper - I'd be interested to hear more!

Regarding remeshing with Kangaroo - for unstructured triangular meshes, the script I posted here:

(http://www.grasshopper3d.com/xn/detail/2985220:Comment:997587)

using Plankton is an improvement over the actual component I've currently included in Kangaroo (eventually it will replace it, but it is still a work in progress).

Hi Daniel,

When I apply the remeshing algorithm to a 3D brep, it produces faces with 0 area. In my case, there are always 3 of them at the top of the dome:

Any idea how this could be fixed?

Regards

  Stefan

Attachments:

Hi Stefan, this does sound like a bug, but it might be one of the ones Will has recently fixed. However I couldn't test your file because the internalized starting Brep isn't showing up (part of this gh bug maybe). Could you post the Rhino input geometry separately?

Anyway, as a way around this for now, you could possibly bake it into Rhino and use CullDegenerateMeshFaces and AlignMeshVertices.

here you go...

( in the attached gh file, the brep is referenced for convenience)

Attachments:

for those interested:

I took the liberty of modifying Daniel's script a wee bit, namely

  • added an input for the original brep, so the vertices are pulled to the brep and not the initial mesh, since that will be polygonal for curved surfaces
  • added inputs for curves and points to be matched: vertices that are sort of close to the curves/points are snapped to the curves/points. This is usefule FEA/FEM analysis to make sure, we have vertices at certain location where there are changes in material, thickness or supports.

Best regards

Stefan

Attachments:

This is fantastic.

I'd been thinking it would be necessary to have something inside Plankton to keep track of which edges lay on feature lines (and making sure that this is maintained during remeshing - eg when splitting an edge, the 2 new edges are also marked as features, and so on), but updating all the affected parts would be quite a bit of work.

Yours is actually a more direct solution, and seems very effective (I'd been concerned that doing a closest point on curve search for each point at every iteration would be much too slow, but it doesn't seem to be a problem.

Thank you Stefan for sharing! 

Thanks so much for sharing this modified version. Its incredibly helpful for the type of remeshing I'm working on. I'll post some results soon.

I have created another small mod to work with 2 meshes as source and pull-to target mesh, if anyone's interested.

im testing the file, but for what for are those parameters point and curve?

I think that they are used for curves that you want to have edges on them for the mesh and points that you want to be vertices of the mesh. Like the MeshMachine component has as input.

Excactly

Hi Stefan!

I have tried your script as well as Daniel's script, but when I connect it to a timer after some iterations I get an error: "Index was outside the bounds of the array (line 143)". I get the same error for Daniel's script and when using the MeshMachine component parts of the mesh disappear in every iteration until there is no mesh left. Do you have any idea why is this happening?

Thank you in advance for the help :)

Best,

Stavroula.

RSS

About

Translate

Search

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service