How to mesh a closed loop of 1D elements
Hello,
Few times I stumbled upon the same problem and never was able to find a general solution to it. The problem is, I have a closed loop of 1D elements and need to create a mesh of shell elements based on this loop. The origin of this loop can be different. For example, at one moment I needed to close partially meshed volume, and this loop was an edge of existing shell mesh. Below is a picture that illustrates the task.
<?xml version="1.0" encoding="UTF-8"?>
Some additional details:
1. The loop, which need to be closed, is not flat. Usually, I have a supporting surface, on which I want this mesh to be created. The said loop is placed on this surface, but usually is not on the edge of the surface.
2. The size of the loop is much bigger than the size of a single element, therefore it is not just a hole in the mesh, and different tools for closing holes are not working properly.
3. The edge elements must be preserved as they are. Nodes cannot be moved, or deleted, or merged. It is a very strict requirement - I need to close existing mesh and cannot touch it.
4. The number of edge nodes is quite big, so any method that includes manual treatment of all the nodes close to the edge is nearly impossible to use.
Please help me to find a general solution to this problem.
Thank you in advance,
Alexander
Answers
-
Why not try create a surface from these nodes ? Once surface created, you can do shell mesh there.
0 -
Altair Forum User said:
Hello,
Few times I stumbled upon the same problem and never was able to find a general solution to it. The problem is, I have a closed loop of 1D elements and need to create a mesh of shell elements based on this loop. The origin of this loop can be different. For example, at one moment I needed to close partially meshed volume, and this loop was an edge of existing shell mesh. Below is a picture that illustrates the task.
Some additional details:
1. The loop, which need to be closed, is not flat. Usually, I have a supporting surface, on which I want this mesh to be created. The said loop is placed on this surface, but usually is not on the edge of the surface.
2. The size of the loop is much bigger than the size of a single element, therefore it is not just a hole in the mesh, and different tools for closing holes are not working properly.
3. The edge elements must be preserved as they are. Nodes cannot be moved, or deleted, or merged. It is a very strict requirement - I need to close existing mesh and cannot touch it.
4. The number of edge nodes is quite big, so any method that includes manual treatment of all the nodes close to the edge is nearly impossible to use.
Please help me to find a general solution to this problem.
Thank you in advance,
Alexander
Hi,
Try 2d/spline mesh by nodes
and project new elems on the surf you need
0 -
Thank you for the answers.
Altair Forum User said:Why not try create a surface from these nodes ? Once surface created, you can do shell mesh there.
As I told in the first post, I already have a surface; it looks like this.
<?xml version="1.0" encoding="UTF-8"?>
Nodes of the edge are sitting on this surface, but they are not on the edge of the surface. I projected them (Tools -> Project -> Nodes to Surf) and also did association (Geom -> Node Edit -> Assotiate) which seems to do exactly the same, i.e. just projecting nodes to the surface. None of it helped to include these nodes into the meshing algorithm, they were just ignored.
By the way, the advise below is actually the same, because 2d/spline does exactly this - create the surface based on the nodes and meshes it. It also doesn't work (pleas read my comments below).
Altair Forum User said:Try 2d/spline mesh by nodes
and project new elems on the surf you needI tried, but there is a problem. Please, look at the picture.
<?xml version="1.0" encoding="UTF-8"?>
Here is the created mesh, and outside of it is the mesh, to which it must match. As can be seen, the nodes of the newly created mesh are not connected to the old mesh. That renders the result useless to me, for my intend was to close the hole in this mesh. Now I need to work with each node individually to move it and to connect it to the existing boundary, which is very impractical (I can easily have hundreds of nodes).
I also tried to split the existing surface with the nodes of this edge. Unfortunately, it also did not help. The splitted surface is ugly, but this is not a problem; the real problem is - the nodes of this edge still not accounted during meshing even after they were used for creating the surface meshed.
May be I miss something? Is there any way to associate nodes with a surface the way that will tell HyperMesh to use them in the meshing of this surface?0 -
Hi,
in your case, i think ruled mesh is more useful
0 -
Hi,
trim the surface 'by line' and create both meshes with automesher.
If you need the node positions, create hard points.
Regards,
Mario
0 -
Thanks again for the answers,
It partially helped, but this approach ignores the support surface that I already have. Besides, ruled surface meshing has its limitations. Sometimes the loop is not trivial in shape, and this meshing technique is not working.Altair Forum User said:in your case, i think ruled mesh is more useful
How I can trim by line if I have elements as a trimming boundary? You mean, to create line based on these nodes and then trim with it? I tried it, but it looks like a more long way to do the same as 'trim with nodes', which, as I described in the previous post, does not help, because after that meshing still ignores my existing elements and nodes.Altair Forum User said:trim the surface 'by line' and create both meshes with automesher.
If you need the node positions, create hard points.
And what you mean by 'create both meshes with automesher'? The mesh which already exist and placed on the surface is created in a specific way. I cannot touch it. I must preserve these elements, and to build the mesh based on the exact boundary of this existing mesh.
ok. Let me reformulate the problem and its limitations:
There is a support surface. It is partially meshed, which means that there are some elements on this surface. These elements must be preserved, so the problem can be formulated as how to mesh the rest of this surface when keeping these elements.
About the existing elements. They are on the surface in the sense that I projected them to the surface. After that, I also performed the operation 'associate', but it just reported that all the nodes are already associated. Anyway, it has no effect on any meshing algorithms; they all just ignore these existing mesh, and there are no options or switches to keep it.
0 -
Hi,
This approach may be which you are searching:
1) Enter Geom/Lines/Manifold,
Select your surf, and select nodes on free edges,
Activate 'Trim input surface'
Then 'Create'
This procedure will trim your surface by the nodes
2) Enter Geom/Point edit/on surfs
Select your surf, and select nodes on free edges,
Then 'Add'
This procedure will create fixed points at node positions
3)Now you can automesh your surface, and new mesh will stick to the fixed points, this fixed points are concide with given nodes
so you can equivalence them
Have a good job
0