Automatic interference treatment
Moderators: Martin, Developers
Automatic interference treatment
Dear all,
I am currently working on a project that aims to model and simulate the stiffness and strength of the representative volume element for triaxial braids.
For this project, I installed the software TexGen (really usefull by the way!) and am modeling the braid with a python script. My goal is to automate this script for any braiding angle.
I already managed to create the axial and braid yarns (sinusoidal path), nevertheless there is quite a lot of interference between those yarns.
What I'm currently trying to do is getting the interference depth for each interference point with the command "DetectInterference". I want to use the result to automatically rotate the yarn sections (depending on the depth) and so reduce the interferences.
Two questions:
- I don't understand why some interferences are occuring at positions where there's no mesh point (see the capture of TexGen).
- Knowing an interference point, is there a method to get the section to which this point belongs? I've already though about testing all sorting all the mesh points according to their section, and compare their coordinates to those of the interference point, but in vain.
For the moment I don't see any other way to automatically get the interference corrected, since the adjust command only works for small interferences.
Does anyone see another way to deal with this issue?
Thank you in advance!
Mathieu
I am currently working on a project that aims to model and simulate the stiffness and strength of the representative volume element for triaxial braids.
For this project, I installed the software TexGen (really usefull by the way!) and am modeling the braid with a python script. My goal is to automate this script for any braiding angle.
I already managed to create the axial and braid yarns (sinusoidal path), nevertheless there is quite a lot of interference between those yarns.
What I'm currently trying to do is getting the interference depth for each interference point with the command "DetectInterference". I want to use the result to automatically rotate the yarn sections (depending on the depth) and so reduce the interferences.
Two questions:
- I don't understand why some interferences are occuring at positions where there's no mesh point (see the capture of TexGen).
- Knowing an interference point, is there a method to get the section to which this point belongs? I've already though about testing all sorting all the mesh points according to their section, and compare their coordinates to those of the interference point, but in vain.
For the moment I don't see any other way to automatically get the interference corrected, since the adjust command only works for small interferences.
Does anyone see another way to deal with this issue?
Thank you in advance!
Mathieu
- Attachments
-
- Interferences in the yarns
- Interference_TexGen.jpg (76.13 KiB) Viewed 19048 times
Re: Automatic interference treatment
Hi Mathieu,
In answer to your questions:
1. The interference detection is based on surface mesh points. You have the volume mesh rendered in your image which is why they don't match.
2. You may find it helpful to look at the AdjustMeshInterference and SimulationAbaqus files. The code is quite complicated but hopefully you'll be able to see how the interference points are used. You can find the source files here http://texgen.sourceforge.net/api/_adju ... ource.html and here http://texgen.sourceforge.net/api/_simu ... ource.html
Alternatively we did some work last year on correcting interference in sheared textiles which, I think, would give similar problems to braids. I have attached a paper which describes the method we used. The functions are in the CShearedTextileWeave2D class. I think that AdjustSectionsForRotation may do something similar to what you're looking for.
Take a look at those and then feel free to ask more questions.
Best regards,
Louise
In answer to your questions:
1. The interference detection is based on surface mesh points. You have the volume mesh rendered in your image which is why they don't match.
2. You may find it helpful to look at the AdjustMeshInterference and SimulationAbaqus files. The code is quite complicated but hopefully you'll be able to see how the interference points are used. You can find the source files here http://texgen.sourceforge.net/api/_adju ... ource.html and here http://texgen.sourceforge.net/api/_simu ... ource.html
Alternatively we did some work last year on correcting interference in sheared textiles which, I think, would give similar problems to braids. I have attached a paper which describes the method we used. The functions are in the CShearedTextileWeave2D class. I think that AdjustSectionsForRotation may do something similar to what you're looking for.
Take a look at those and then feel free to ask more questions.
Best regards,
Louise
- Attachments
-
- Recent Developments in the Realistic Geometric Modelling of Textile Structures using TexGen.pdf
- (1.1 MiB) Downloaded 865 times
Re: Automatic interference treatment
Thank you for the piece of advice, I now better understand how the interferences can be treated.
I hope I'll manage to do the same for my triaxial braid.
Best regards,
Mathieu
I hope I'll manage to do the same for my triaxial braid.
Best regards,
Mathieu
Re: Automatic interference treatment
Hi Louise,
I eventually managed to create my script to automatically correct the yarn interferences. When I want to export a mesh (volume mesh) of my geometry, TexGen sometimes crashes for no apparent reason.
Is that a known issue with the software? I attached the tg3 file of my geometry to the post.
Best regards.
Mathieu
I eventually managed to create my script to automatically correct the yarn interferences. When I want to export a mesh (volume mesh) of my geometry, TexGen sometimes crashes for no apparent reason.
Is that a known issue with the software? I attached the tg3 file of my geometry to the post.
Best regards.
Mathieu
- Attachments
-
- RVE_45.0.zip
- tg3 geometry
- (4.71 KiB) Downloaded 259 times
Re: Automatic interference treatment
Hi Mathieu,
I have tried the volume mesh export with your textile. I will look into what the problem is. It doesn't crash in the debug version - just fails to output a complete mesh. I'll get back to you when I've worked out what's happening. In the meantime would using a voxel mesh work for you? Alternatively if you just want the fibres then the Export Abaqus Dry Fibre File option works fine.
Best regards,
Louise
I have tried the volume mesh export with your textile. I will look into what the problem is. It doesn't crash in the debug version - just fails to output a complete mesh. I'll get back to you when I've worked out what's happening. In the meantime would using a voxel mesh work for you? Alternatively if you just want the fibres then the Export Abaqus Dry Fibre File option works fine.
Best regards,
Louise
Re: Automatic interference treatment
Hi Louise,
I need to create a mesh of both fibers and matrix, so the Dry Fibre Export option won't be enough for my problem.
I managed to create the mesh of a 60° triax (no mesh issue like by the 45°), so I can work on this model for now.
In the future I'll need to get meshes of a large panel of textiles, it seems that only some configurations like the 45° triax don't work. I think the two parameters "seed" and "merge tolerance" have a strong effect on the possibility to create a mesh or not. I'll try to better understand how those two parameters influence the mesh.
Thanks again for your help.
Best regards,
Mathieu
I need to create a mesh of both fibers and matrix, so the Dry Fibre Export option won't be enough for my problem.
I managed to create the mesh of a 60° triax (no mesh issue like by the 45°), so I can work on this model for now.
In the future I'll need to get meshes of a large panel of textiles, it seems that only some configurations like the 45° triax don't work. I think the two parameters "seed" and "merge tolerance" have a strong effect on the possibility to create a mesh or not. I'll try to better understand how those two parameters influence the mesh.
Thanks again for your help.
Best regards,
Mathieu
Re: Automatic interference treatment
Hi Mathieu,
We tend to use voxel meshing for modelling composites and have found this to give good results.
If you're using the volume mesh option the 'seed' option gives an approximate element size for the algorithm to start with and will govern how fine your final mesh is. For example, if your domain is 1.0 long and you use a seed size of 0.1 then you will have about 10 elements along the length with side approximately 0.1 but this may be adjusted by the triangulation algorithm. The merge tolerance governs the gaps between yarns - eg, if this was set at 0.01 then any gap smaller than this between two yarns would result in the yarn meshes touching at this point, any greater than this value and there will be a matrix element introduced in-between.
I hope that helps,
Louise
We tend to use voxel meshing for modelling composites and have found this to give good results.
If you're using the volume mesh option the 'seed' option gives an approximate element size for the algorithm to start with and will govern how fine your final mesh is. For example, if your domain is 1.0 long and you use a seed size of 0.1 then you will have about 10 elements along the length with side approximately 0.1 but this may be adjusted by the triangulation algorithm. The merge tolerance governs the gaps between yarns - eg, if this was set at 0.01 then any gap smaller than this between two yarns would result in the yarn meshes touching at this point, any greater than this value and there will be a matrix element introduced in-between.
I hope that helps,
Louise
Re: Automatic interference treatment
Hi Louise,
Thanks for the piece of information, it helps quite a lot. When I refine the resolution of my model, I indeed get less issues with the mesh export.
One small question: I'm trying to calculate the fiber volume in my unit cell domain, but found until now no tool for that. All the GetVolume tools are only working with the whole textile, without taking into account the domain boundaries.
Do you know if it exists a tool that can do it?
Best regards,
Mathieu
Thanks for the piece of information, it helps quite a lot. When I refine the resolution of my model, I indeed get less issues with the mesh export.
One small question: I'm trying to calculate the fiber volume in my unit cell domain, but found until now no tool for that. All the GetVolume tools are only working with the whole textile, without taking into account the domain boundaries.
Do you know if it exists a tool that can do it?
Best regards,
Mathieu
Re: Automatic interference treatment
Hi Mathieu,
You can calculate the yarn volume in the domain in a couple of stages: Call the CTextile AddSurfaceToMesh (CMesh &Mesh, bool bTrimToDomain=false) function, sending true in the second parameter. This will create a surface mesh of the yarns contained by the domain. Then call the CMesh function CalculateVolume for this mesh.
Best regards,
Louise
You can calculate the yarn volume in the domain in a couple of stages: Call the CTextile AddSurfaceToMesh (CMesh &Mesh, bool bTrimToDomain=false) function, sending true in the second parameter. This will create a surface mesh of the yarns contained by the domain. Then call the CMesh function CalculateVolume for this mesh.
Best regards,
Louise
Re: Automatic interference treatment
Hi Louise,
I now almost succeeded to create a periodical geometry without penetrations for a braided composite. However I still have one issue, which I don't really understand.
My textile contains two yarns (55° and -55° orientation), built with 32 master nodes, which I repeat. The number of slave nodes is equal to the number of master nodes in my model. I so expected the slave nodes and the master nodes to be coincident, but this is not exactly the case and there's a small distance between them.
The problem is that the yarns - and as a consequence my mesh - are not periodical anymore.
Is there a way to modify the position of the slave nodes? I already tried to use the CSlaveNode.SetPosition(), but in vain since the model stayed unchanged.
Thanks again and best regards,
Mathieu
I now almost succeeded to create a periodical geometry without penetrations for a braided composite. However I still have one issue, which I don't really understand.
My textile contains two yarns (55° and -55° orientation), built with 32 master nodes, which I repeat. The number of slave nodes is equal to the number of master nodes in my model. I so expected the slave nodes and the master nodes to be coincident, but this is not exactly the case and there's a small distance between them.
The problem is that the yarns - and as a consequence my mesh - are not periodical anymore.
Is there a way to modify the position of the slave nodes? I already tried to use the CSlaveNode.SetPosition(), but in vain since the model stayed unchanged.
Thanks again and best regards,
Mathieu
Re: Automatic interference treatment
Hi Mathieu,
The slave nodes will be evenly distributed along the yarn, irrespective of where the master nodes are. I don't understand why, if you have specified the yarn repeats to match the repeat of the master nodes and specified the domain to match the repeat of the composite, the yarns aren't periodic. Could you send me an image so that I can see what you mean?
Best regards,
Louise
The slave nodes will be evenly distributed along the yarn, irrespective of where the master nodes are. I don't understand why, if you have specified the yarn repeats to match the repeat of the master nodes and specified the domain to match the repeat of the composite, the yarns aren't periodic. Could you send me an image so that I can see what you mean?
Best regards,
Louise
Re: Automatic interference treatment
Hi Louise,
My problem is a bit hard to describe, I was surely unclear in my last message.
Attached to this message is the last textile I created. I didn't used directly the "repeat" tool but created several yarns with an offset in the y direction. On the first picture (Biax) everything seems fine, but when I export the .iges geometry of my representative volume element (RVE), the nodes of the two faces in the x-direction are not exactly corresponding, and the RVE is not periodic in the x-direction (dy = -0.00011 and dz = 0.00002). As a consequence, the mesh is not periodical.
In the y-direction, I got no problem because I my yarn-offset was performed in this direction.
I remarked that the slave nodes of my yarns are not exactly on the master nodes (which are periodic), but very close to them. So either the slave nodes or the RVE are periodic.
Do you see a solution to this problem? Is there a way to control the slave node position (in order that they are coincident with the master nodes) or to move them?
Best regards,
Mathieu
My problem is a bit hard to describe, I was surely unclear in my last message.
Attached to this message is the last textile I created. I didn't used directly the "repeat" tool but created several yarns with an offset in the y direction. On the first picture (Biax) everything seems fine, but when I export the .iges geometry of my representative volume element (RVE), the nodes of the two faces in the x-direction are not exactly corresponding, and the RVE is not periodic in the x-direction (dy = -0.00011 and dz = 0.00002). As a consequence, the mesh is not periodical.
In the y-direction, I got no problem because I my yarn-offset was performed in this direction.
I remarked that the slave nodes of my yarns are not exactly on the master nodes (which are periodic), but very close to them. So either the slave nodes or the RVE are periodic.
Do you see a solution to this problem? Is there a way to control the slave node position (in order that they are coincident with the master nodes) or to move them?
Best regards,
Mathieu
- Attachments
-
- RVE.png (137.06 KiB) Viewed 18914 times
-
- Biax.jpg (54.34 KiB) Viewed 18914 times
Re: Automatic interference treatment
Hi Mathieu,
It's difficult to see from the figures exactly what's going on. If you've created your yarns with exactly the same repeat size (whether you've done that by offsetting yarns or using a repeat) then if your RVE size matches that everything should match up. I suppose that if you've created the yarns longer than the repeat then it's possible that the meshes won't match. Do you want to send me the tg3 file and I'll try to see what the issue is?
You can't alter the slave nodes as these are calculated automatically by TexGen depending on the interpolation.
Best regards,
Louise
It's difficult to see from the figures exactly what's going on. If you've created your yarns with exactly the same repeat size (whether you've done that by offsetting yarns or using a repeat) then if your RVE size matches that everything should match up. I suppose that if you've created the yarns longer than the repeat then it's possible that the meshes won't match. Do you want to send me the tg3 file and I'll try to see what the issue is?
You can't alter the slave nodes as these are calculated automatically by TexGen depending on the interpolation.
Best regards,
Louise
Re: Automatic interference treatment
Hi Louise,
I attached the tg3 file of my RVE to this message. This time I used the repeat option, in vain too.
As I already explained, the master nodes of my yarns are periodic, but my slave nodes are not. I'll try to find a way to change this.
Thank you for your help.
Best regards,
Mathieu
I attached the tg3 file of my RVE to this message. This time I used the repeat option, in vain too.
As I already explained, the master nodes of my yarns are periodic, but my slave nodes are not. I'll try to find a way to change this.
Thank you for your help.
Best regards,
Mathieu
- Attachments
-
- RVE_55.zip
- (2.91 KiB) Downloaded 211 times
Re: Automatic interference treatment
Hi Mathieu,
I have attached a new file which just includes a single repeat of each yarn. This looks as though the nodes are now periodic although I notice that your interpolation is not set to be periodic which could affect results. If you make the set of master nodes longer than one repeat of the yarn then the slave nodes will be spread across that entire range making it possible that they are not periodic. If you just specify one repeat of the yarn then the slave nodes will be distributed evenly across that section and should therefore be periodic.
Best regards,
Louise
I have attached a new file which just includes a single repeat of each yarn. This looks as though the nodes are now periodic although I notice that your interpolation is not set to be periodic which could affect results. If you make the set of master nodes longer than one repeat of the yarn then the slave nodes will be spread across that entire range making it possible that they are not periodic. If you just specify one repeat of the yarn then the slave nodes will be distributed evenly across that section and should therefore be periodic.
Best regards,
Louise
- Attachments
-
- RVE_55_SingleRepeat.zip
- (1.59 KiB) Downloaded 218 times