This macro stuff is very incredible like I'm able to understand the python scripting and abaqus interface much better in context of what/how is happening everything behind the scenes. I mean if youtube video gets citation, I will definitely cite this video in my upcoming article or thanks to this guy in the acknowledgement (if or since former is not possible yet (to what I know)). Thanks for this amazing "IDEA" 😊
Hola Miguel me han servido mucho tus vídeos y el curso de tecnodigitalschool, pero aún hay mucho por explorar y aprender, podrías hablar un poco sobre esto mismo, pero a nivel de los sketchs, ya que he tenido algunas inquietudes al respecto al ir tratando de hacer un modelo. Saludos y gracias
Hola Junes Precisamente tenía pensado seguir hablando sobre geometría en Abaqus a través de scripts. Así que el tema de los sketch estará incluido con total seguridad. Un saludo!
Maybe the most versatile option to make an arbitrary hole on any type of geometry (even curved faces) is to use a boolean operation between 2 instances in the assembly. You can find some examples here: ruclips.net/video/nxME6lnMFQE/видео.html
Hi, I have a question. I want to use 20 element or node labels(numbers) in the python script. I am trying to prepare a code with a loop that code checks these elements or nodes during 10 steps and when each of those nodes or elements temperatures reaches a certain amount for example 500 C, the code saves the stress and strain results related to those elements or nodes. I want to know do can I refer to element and node labels and how can write this kind of code.
You have to do this in the postprocess (in the odb file). In order to look at the results in the odb node by node (or element by element), the easiest way is to: 1) Record a macro while you extract the results from one node (for instance, temperature). I recommend to do it through: Create XY Data --> Odb field output. Select Position: Unique nodal and choose temperature. Finally, Element/Nodes: Node labels, and introduce any node number (like 1). 2) Stop the macro recording and look at the "abaqusMacros.py" file and check the python code in the macro that you have just recorded. Take the lines of code that you need (just a few lines with the function "xyDataListFromField"). 3) Finally, you have to adapt the lines to your convenience. Some tips: * Get all the node labels: for node in odb.rootAssembly.instances['PART-1'].nodes: print node.label * To read the data extracted (this is an example extracting vertical displacement of node 1): dataList = session.xyDataListFromField(odb=odb, outputPosition=NODAL, variable=(('U', NODAL, ((COMPONENT, 'U2'), )), ), nodeLabels=(('PART-1', ('1', )), )) data_points = dataList[0].data ============================= I hope you find these tips useful or at least shed some light! Best regards!
Hi, I want to apply added mass of water as per modified westergaard method, for doing this I need to know normal values at each node of dam's upstream face,please help me to find these nodal normals in abaqus ?
If the water load that you want to apply is hydrostatic or follows some analytical expression, for instance, is dependent on the Y coordinate. You can define it as a pressure following an "Analytical expression" instead of the default uniform option. If you want to define it on your own by applying arbitrary nodal forces, then I would follow these steps: 1) Read all the nodes on the surface. You can read the nodes that belong to a surface 'SURF' in the part 'p' with: p.surfaces['SURF'].nodes 2) In 2D, every element face on that surface contains two nodes. So, by using the element connectivity you can already identify which nodes are consecutive (belong to the same element face) and you will be able to compute the normal of that face. The elements of a part 'p' are obtained by p.elements, and the connectivity of element 15 is obtained with: p.elements.getFromLabel(15).connectivity 3) If you apply some sort of pressure field, you need to integrate that pressure around the node to obtain the nodal force. 4) Once you have all the nodal forces (2 components in 2D), you can introduce them in the model through the input file (keyword CLOAD). These are some recommendations on how I would approach the most general case, of course you may find some workarounds to save some steps. I hope you find it useful!
This macro stuff is very incredible like I'm able to understand the python scripting and abaqus interface much better in context of what/how is happening everything behind the scenes. I mean if youtube video gets citation, I will definitely cite this video in my upcoming article or thanks to this guy in the acknowledgement (if or since former is not possible yet (to what I know)). Thanks for this amazing "IDEA" 😊
You are welcome. I appreciate it!
Hallo MIguel! Du bist ein genie. Danke für das, was DU gemacht hast
Ich schätze es sehr.
Gern geschehen!
Very good video!!
Thank you!
thank you very much for your great works.
I am glad that you like it!
Hola Miguel me han servido mucho tus vídeos y el curso de tecnodigitalschool, pero aún hay mucho por explorar y aprender, podrías hablar un poco sobre esto mismo, pero a nivel de los sketchs, ya que he tenido algunas inquietudes al respecto al ir tratando de hacer un modelo.
Saludos y gracias
Hola Junes
Precisamente tenía pensado seguir hablando sobre geometría en Abaqus a través de scripts. Así que el tema de los sketch estará incluido con total seguridad. Un saludo!
Hello. How to réalisé a dimple in cylinder Shells with abaqus script
Maybe the most versatile option to make an arbitrary hole on any type of geometry (even curved faces) is to use a boolean operation between 2 instances in the assembly.
You can find some examples here: ruclips.net/video/nxME6lnMFQE/видео.html
Thanks but how to creat dimple imperfection in Shell cylinder
Hi,
I have a question. I want to use 20 element or node labels(numbers) in the python script. I am trying to prepare a code with a loop that code checks these elements or nodes during 10 steps and when each of those nodes or elements temperatures reaches a certain amount for example 500 C, the code saves the stress and strain results related to those elements or nodes. I want to know do can I refer to element and node labels and how can write this kind of code.
You have to do this in the postprocess (in the odb file). In order to look at the results in the odb node by node (or element by element), the easiest way is to:
1) Record a macro while you extract the results from one node (for instance, temperature). I recommend to do it through: Create XY Data --> Odb field output. Select Position: Unique nodal and choose temperature. Finally, Element/Nodes: Node labels, and introduce any node number (like 1).
2) Stop the macro recording and look at the "abaqusMacros.py" file and check the python code in the macro that you have just recorded. Take the lines of code that you need (just a few lines with the function "xyDataListFromField").
3) Finally, you have to adapt the lines to your convenience.
Some tips:
* Get all the node labels:
for node in odb.rootAssembly.instances['PART-1'].nodes:
print node.label
* To read the data extracted (this is an example extracting vertical displacement of node 1):
dataList = session.xyDataListFromField(odb=odb, outputPosition=NODAL, variable=(('U',
NODAL, ((COMPONENT, 'U2'), )), ), nodeLabels=(('PART-1', ('1', )), ))
data_points = dataList[0].data
=============================
I hope you find these tips useful or at least shed some light!
Best regards!
Hi, I want to apply added mass of water as per modified westergaard method, for doing this I need to know normal values at each node of dam's upstream face,please help me to find these nodal normals in abaqus ?
If the water load that you want to apply is hydrostatic or follows some analytical expression, for instance, is dependent on the Y coordinate. You can define it as a pressure following an "Analytical expression" instead of the default uniform option.
If you want to define it on your own by applying arbitrary nodal forces, then I would follow these steps:
1) Read all the nodes on the surface. You can read the nodes that belong to a surface 'SURF' in the part 'p' with: p.surfaces['SURF'].nodes
2) In 2D, every element face on that surface contains two nodes. So, by using the element connectivity you can already identify which nodes are consecutive (belong to the same element face) and you will be able to compute the normal of that face. The elements of a part 'p' are obtained by p.elements, and the connectivity of element 15 is obtained with: p.elements.getFromLabel(15).connectivity
3) If you apply some sort of pressure field, you need to integrate that pressure around the node to obtain the nodal force.
4) Once you have all the nodal forces (2 components in 2D), you can introduce them in the model through the input file (keyword CLOAD).
These are some recommendations on how I would approach the most general case, of course you may find some workarounds to save some steps.
I hope you find it useful!
@@tecnodigitalschool Thanks very much for your support. I will try the same.