One of the most common operations and sometimes the hardest to automate in our Python scripts is the selection of geometry. This task is essential to assign material properties, define boundary conditions, control the mesh settings, create interactions, etc. The default method recorded by Abaqus is based on masks, but it has several drawbacks (not reliable when geometry changes and non-intuitive).
In this post, I would like to show you a few other methods to automate the selection of geometry using Python in Abaqus.
Methods to select geometry
The five strategies to select geometry in Abaqus (vertices, edges, faces and cells) using Python commands are:
This is the default syntax used by Abaqus to record the selection of geometry through Python commands (getSequenceFromMask). It might be enough for geometries that do not change, but it is useless if the geometry changes.
This is one of the most powerful and versatile methods (findAt). This Python function is used to retrieve geometrical objects (e.g. cells, edges…) by means of coordinates in 3D space.
#4 Boolean operations
Boolean operations (union, difference and intersection) are supported among sets, both at the part and the assembly levels. In essence, the Python function does not return geometry, but it creates a new set (setByBoolean).
#5 Direct selection of geometry
We can filter geometry features individually based on one or multiple conditions. You can read this other blog post on how to get information from the geometry using Python.
Some of these methods are also applicable to mesh selections, such as masks and getByBounding functions.
In the following video you will see a practical demonstration on how to apply these 5 strategies in Abaqus using Python scripts.
If you are interested in Abaqus/Scripting with Python, take a look at the first and second scripts to generate the FE models shown in the video. And of course, if you have any question leave it in the comments section below.
And if you want to get started in Abaqus/Scripting with Python check out this post to learn how to create your own scripts.
I hope that you find these tips useful!